如何在 cifs 挂载点 (samba/fstab) 上对新创建的文件设置组写权限

use*_*721 5 permissions fstab samba cifs

我尝试使用 cifs 挂载 samba 共享,并在默认文件/目录创建掩码上设置对组的写权限。
经过几个小时的网络搜索和尝试,我无法让它工作,我所有的文件都是用“rw-r--r--”创建的,我想要“rw-rw----”

我的 serverur 是 Cubieboard (Cubian r4) 上的 Debian
所有用户的所有 umask 都使用 /etc/pam.d/common-session 文件和“session optional pam_umask.so umask=002”设置为 002
这很好用。

我的客户端是 Ubuntu 桌面 64 位 13.10。
使用带有 umask 002 的 /etc/bash.bashrc 文件将所有用户的所有 umask 设置为 002(因为 pam_umask.so 在客户端上不起作用)。
这也很好用。

客户端和服务器上都存在用户“bertrand”和组“nas”。
在服务器上,用户“bertrand”只有一组“nas”。
在客户端,用户“bertrand”将“nas”作为辅助组。
用户 bertrand 在客户端、服务器和 samba 服务器上具有相同的密码。

=> 服务器上的 /etc/samba/smb.conf :

[global]
server string = %h
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
name resolve order = lmhosts host wins bcast
dns proxy = No
wins support = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb

[NAS]
comment = NAS drive
path = /media/usbnas
valid users = @nas
force group = nas
read only = No
create mask = 0660
directory mask = 0771
Run Code Online (Sandbox Code Playgroud)

=>/etc/fstab在客户端:

//smbserver/nas /media/nas      cifs    uid=bertrand,gid=nas,credentials=/root/.smbcredentials     0     0
Run Code Online (Sandbox Code Playgroud)

其中.smbcredentials包含:

username=bertrand
password=********
Run Code Online (Sandbox Code Playgroud)

挂载点适用于我的客户端,我可以浏览我的 nas、创建、删除、修改文件和目录,但所有新文件和所有新目录始终具有组的只读权限。

默认情况下如何给组写权限?

谢谢。

小智 8

你可以尝试添加安装选项file_mode=0770dir_mode=0770

  1. 尝试修改/etc/fstab文件:

    //smbserver/nas /media/nas      cifs    uid=bertrand,gid=nas,credentials=/root/.smbcredentials,file_mode=0770,dir_mode=0770     0     0
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或者,mount命令

    sudo mount -t cifs //smbserver/nas /media/nas -o uid=bertrand,gid=nas,rw,credentials=/root/.smbcredentials,file_mode=0770,dir_mode=0770
    
    Run Code Online (Sandbox Code Playgroud)

我的测试环境:

OS version: Ubuntu 10.04.4 LTS
kernel version: 2.6.35-25
mount.cifs version: 1.12-3.4.7
samba version: Version 3.4.7
Run Code Online (Sandbox Code Playgroud)