CIFS 挂载权限

CIFS 挂载权限

我有一个问题,正在苦苦思索,希望你能帮助我。

设置:

服务器 1 (CIFS 客户端) - CentOS 6.3 AD 集成使用 Samba/Winbind 和 idmap_ad 服务器 2 (CIFS 服务器) - CentOS 6.3 AD 集成使用 Samba/Winbind 和 idmap_ad

所有用户(root 除外)都经过 AD 身份验证,并且包括群组等都可以顺利运行。

正在起作用的是:

我在服务器 2 上创建了一个共享:

[share2]
   path = /srv/samba/share2
   writeable = yes

共享的权限:

drwxrwx---. 2 root domain users 4096 Oct 12 09:21 share2

我可以以用户 5(域用户成员)的身份登录 Windows 机器,并且一切都正常运行,例如:如果我创建一个文件,它会在 MS 和 Linux 端显示正确的权限和属性。

我跌倒的地方:

我使用以下命令在服务器 1 上安装共享:

# mount //server2/share2 /mnt/share2/ -o username=cifsmount,password=blah,domain=blah

或者使用 fstab:

//server2/share2     /mnt/share2            cifs    credentials=/blah/.creds        0 0

这安装得很好,但是......

如果我以普通用户(例如 user5)身份登录到服务器 1 并尝试创建一个文件,我会得到:

#touch test
touch test
touch: cannot touch `test': Permission denied

然后,如果我检查该文件夹,则会发现该文件是以 cifsmount 用户身份创建的:

-rw-r--r--. 1 cifsmount domain users    0 Oct 12 09:21 test

我可以以用户 5 的身份重命名、删除、移动或复制内容,但我无法创建任何东西,我做错了什么?

我猜这与挂载操作有关,因为当我以用户 5 身份登录到服务器 2 并在本地访问该文件夹时,一切都正常。

有人能给我指出正确的方向吗?

答案1

查看“noperm”安装选项。此外,您可能还想考虑查看服务器上的“unix extensions”选项。

答案2

来自mount.cifs手册页:

setuids
       If the CIFS Unix extensions are negotiated with the server the client will attempt to set the effective uid and gid of the local process on newly created files,
       directories, and devices (create, mkdir, mknod). If the CIFS Unix Extensions are not negotiated, for newly created files and directories instead of using the
       default uid and gid specified on the the mount, cache the new file´s uid and gid locally which means that the uid for the file can change when the inode is
       reloaded (or the user remounts the share).

请将此选项添加到您的fstab。如果仍然不起作用,我会假设 UNIX 扩展在您的设置中不起作用。

相关内容