在正常操作中,当在 Samba 服务器上启用 unix 扩展时,允许服务器遵循共享路径之外的符号链接的选项宽链接会自动禁用。这样做是出于安全目的,以防止 UNIX 客户端创建指向管理员不希望导出的服务器文件系统区域的符号链接。
将允许不安全的宽链接设置为 true 会禁用这两个参数之间的链接,从而删除此保护并允许站点将服务器配置为遵循符号链接(通过将宽链接设置为“true”)即使打开了 unix 扩展。
根据手动设置allow insecure wide links = yes
应该足以允许共享路径之外的符号链接,但是除非我设置,否则它对我来说不起作用unix extensions = no
。
testparm
甚至没有显示这个变量?!
# testparm -s
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
[global]
workgroup = test
server string = SambaBox
syslog = 0
log file = /var/log/samba/smb.log
max log size = 50
smb ports = 139
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
load printers = No
printcap name = /dev/null
disable spoolss = Yes
show add printer wizard = No
idmap config * : backend = tdb
[Public]
comment = Public
path = /data/Public
valid users = smbguest
create mask = 0644
force create mode = 0644
force directory mode = 0755
map archive = No
wide links = Yes
答案1
如果您启用了宽链接支持但它不起作用,那么 SELINUX 可能阻止了您。
尝试发出setenforce 0
并重新测试您的配置。如果成功,则您已找到问题的根源。
如果这不起作用,请在[global]部分添加:
- 宽链接 = 是
- 允许不安全的宽链接 = 是
- unix 扩展 = 无
然后重新启动 samba 并重新尝试您的测试用例。
答案2
我想我知道你的问题是什么。
allow insecure wide links
是全局设置,而非按份额设置。它允许您使用wide links = yes
按份额设置(否则,在 时将被忽略unix extensions = yes
)。
所以您的错误可能是您试图设置allow insecure wide links = yes
一个共享,因此您没有在testparm
输出中看到它,它被忽略了。
放置在您的共享部分allow insecure wide links = yes
下[global]
并设置。wide links = yes