我有 2 台 ubuntu 机器(ubuntu1 和 ubuntu2)。Ubuntu1 共享文件夹 /opt/share,我创建了测试用户具体到rwx:
setfacl -Rm u:testuser:rwx .
Ubuntu2 将其安装在 /mnt/ubuntu1 上
mount -t cifs -o user=testuser,password=thepassword //ubuntu1/share1 /mnt/ubuntu1
我可以看到 Ubuntu2 上的共享文件夹并列出文件 init
ls -lh
drwxrwxr-x+ 2 root root 0 Nov 3 00:31 aginova
drwxrwxr-x+ 2 root root 0 Nov 3 00:31 brother
drwxrwxr-x+ 2 root root 0 Nov 3 00:31 dizcoisas
drwxrwxr-x+ 2 root root 0 Nov 3 00:31 equipamentos
这就是开始令人困惑的地方:在 Windows 机器上测试共享,我使用 testuser 和密码进行身份验证,并且能够进行 rwx,但在 Ubuntu2 机器上,虽然共享是用同一个用户安装的,但我在尝试写入时收到“权限被拒绝”提示。
查看访问列表,我可以看到另一个用户对该文件夹拥有我从未设置的权限(???)
root@ubuntu2:/mnt/share1# getfacl .
# file: .
# owner: root
# group: root
user::rwx
user:siemens:rwx
group::r-x
mask::rwx
other::r-x
如果我尝试像在 ubuntu2 中那样设置 facl,它会返回一个错误,基本上说 testuser 不存在或“权限被拒绝”。
root@ubuntu2:/mnt/ubuntu1# sudo setfacl -bR .
setfacl: .: Permission denied
setfacl: ./aginova: Permission denied
setfacl: ./equipamentos: Permission denied
setfacl: ./dizcoisas: Permission denied
setfacl: ./brother: Permission denied
root@ubuntu2:/mnt/ubuntu# getfacl .
# file: .
# owner: root
# group: root
user::rwx
user:siemens:rwx
group::r-x
mask::rwx
other::r-x
root@ubuntu2:/mtn/ubuntu1# sudo setfacl -Rm u:testuser:rwx /mnt/ubuntu1/setfacl: Option -m: Invalid argument near character 3
那么,为什么共享挂载在 Windows 中可以使用 rwx 但在 ubuntu2 中只能使用 r-- 呢?
答案1
我让它工作的唯一方法是在机器 ubuntu1 上应用它
chmod -R 777 /opt/share
然后在 /etc/samba/smb.conf 中像这样设置“有效用户”
[share]
...
valid users = testuser
这样,只有指定的用户才能访问共享,因此在这种情况下无需设置 ACL,因为用户无论如何都应该具有 rwx 权限