设置Samba上写入文件或目录的用户权限
程序员文章站
2022-05-11 17:41:31
...
Linux上开放Samba共享目录时,可以通过/etc/samba/smb.conf配置文件的guest account、create mask和directory mask属性,来设置写入共享目录中的文件或目录的用户权限。
[global]
workgroup = TUX-NET
interfaces = 127.0.0.1 eth0
bind interfaces only = true
printing = cups
printcap name = cups
load printers = yes
security = share
log file =/nbs/log/samba-log/samba.log
guest account = root
create mask = 666
directory mask = 777
#============================ Share Definitions ==============================
[BSP-DATA]
comment = BSP Data
path = /nbs/BSP-DATA
writable = yes
browseable = yes
guest ok = yes
如果samba中未设置guest account、create mask和directory mask,则samba服务会默认使用nobody用户作为写入共享目录的属主和属组。这个类似vsftpd服务使用ftp用户作为匿名用户访问的权限。
另一个问题,虽然设置了:
create mask = 666
directory mask = 777
但Linux客户端访问Samba共享目录时,写入的文件权限是rw-rw-r--,目录权限是drwxrwxr-x,other用户的权限位不充许写,与设想的不同。而Windows客户端访问时,写入的文件和目录与设想的一致,即文件权限是rw-rw-rw-,目录权限是drwxrwxrwx。
最后,在Linux客户端上设置写入samba共享目录的用户的umask为0000,可以实现预想的设置。具体Linux权限间什么机制还没搞白,先能使上。