Ubuntu 中的 ACL 权限失败

Ubuntu 中的 ACL 权限失败

问题

我需要授予已格式化为 ext4 的 USB 密钥上名为“mongodb”的系统组读/写权限。该命令似乎有效,但当我尝试让系统用户写入此文件夹时,我收到权限错误:

2014-11-11T10:41:19.326-0500 [initandlisten] exception in initAndListen std::exception: boost::filesystem::status: Permission denied: "/media/me/mongotest/mongodb", terminating

这是我用来检查该组是否具有访问权限的命令:

me@medev:~$ getfacl /media/me/mongotest/mongodb/
getfacl: Removing leading '/' from absolute path names
# file: media/me/mongotest/mongodb/
# owner: root
# group: root
user::rwx
group::r-x
group:mongodb:rwx
mask::rwx
other::r-x

附加测试

为了证明它有效,我做了以下事情:

  1. 在 ubuntu 中创建一个名为“test”的新用户。
  2. 创建了一个名为 testers 的新组
  3. 向测试人员添加了测试。
  4. 将测试人员添加到 USB 上 /media/me/mongotest/mongodb 文件夹的 ACL 列表中:
 me@medev:~$ getfacl /media/me/mongotest/mongodb/
 getfacl: Removing leading '/' from absolute path names
 # file: media/me/mongotest/mongodb/
 # owner: root
 # group: root
 user::rwx
 group::r-x
 group:mongodb:rwx
 group:testers:rwx
 mask::rwx
 other::r-x
  1. 然后我将用户改为“测试”:
me@medev:~$ su test
Password:
  1. 尝试将目录更改为 USB 密钥,如下所示:
test@medev:/home/me$ cd /media/me/mongotest
bash: cd: /media/me/mongotest: Permission denied
test@medev:/home/me$ cd /media/me/mongotest/mongodb
bash: cd: /media/me/mongotest/mongodb: Permission denied
test@medev:/home/me$

因此,看起来我在创建/添加这些权限的方式上做错了什么……因为它对于用户/组来说都失败了。

答案1

我必须授予 /media/me 文件夹的 ACL 权限。“me”是我的个人资料/用户名的名称,我猜 ubuntu 默认以我的名字安装。所以这就是我所做的:

setfacl -mg:mondodb:rwx /media/me

并且它有效。

答案2

始终使用非用户挂载点。这意味着用户(mongodb)不能写入(我)其他用户文件或链接。如果您删除“我”用户,则会导致相关用户和服务错误。当您为文件夹提供超过 1 个用户时,您会创建交叉链接。切勿使用交叉链接提供服务。

***抱歉,我的语言不好。

相关内容