我在 Linux 机器上设置了一个正常运行的 samba 服务器,如下所示:
useradd -g users netshareuser
passwd netshareuser
smbpasswd -a netshareuser
(密码相同)
mkdir /net/share
chown -R root:users /net/share
chmod -R g+rwxs /net/share
setfacl -R -m default:user::rwx,default:group::rwx,default:mask::rwx,default:other::--- /net/share
/etc/samba/smb.conf:
[global]
workgroup = workgroup
server string = server
security = user
hosts allow = 192.168. 127.
load printers = no
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
unix extensions = no
follow symlinks = yes
wide links = yes
[share]
comment = Directory containing shared files
path = /net/share
valid users = netshareuser
read only = yes
rc.d restart samba
从 Windows (7) 计算机,“netshareuser”可以访问此共享,读取文件和目录。但是,如果我创建符号链接ln -s /some/directory/ /net/share/nameOfSymlink
,同一台 Windows 计算机甚至不会显示它。
问题:
我必须做什么才能使该共享中的 Linux 符号链接在 Windows 机器上运行,这可能吗? 更新:ultrasawblade 已经回答了这个问题!问题是权限错误
/some/directory
有没有一种使用 samba 共享文件的方法,不需要更改文件权限?我的意思是,你可以将 Linux 系统上的任何文件共享给网络上的任何人,但无需更改此文件的权限。我想要的是:将文件标记为共享给“netshareuser”,而不更改该文件的权限。
在此先感谢您的任何建议!
答案1
看起来您已将其wide links
设置为yes
,这正是我最近所得到的。
这可能是由于 的权限所致/some/directory
,如上面的例子所示。
如果您不想更改文件权限,则需要告诉 Samba 为该共享使用不同的本地用户。这实际上是您仅有的两个选择。
我认为force user
和选项就是您想要的。如果您选择force group
,您将无法获得最佳的安全状况,但这可能是您正在寻找的。force user
root