如果我理解正确的话这张图片http://www.vanemery.com/Linux/ACL/img1.gif来自本手册http://www.vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html通过 chmod设置700
将使
user::rwx
mask::---
other::---
(事实上也确实如此)。
但这意味着我无法创建目录和 2 个或更多用户,使得子目录700
对 ACL 中的每个用户都具有权限default
。事实上,user:some_user:...
和group:someuser:...
将与掩码相交(在这种情况下为 0,结果也将为 0)。
我对吗?
简单示例:MySQL 为具有权限的数据库创建目录0700
。我想从我的用户(既不是mysql
也不是root
)进行备份。这意味着我想为我的用户获取用户在 MySQL 目录中创建的子目录的700
权限。MySQL 在创建数据库时创建它们。mysqlbackup
mysql
root@248261c6cbcc:/var/lib/mysql# getfacl .
# file: .
# owner: mysql
# group: mysql
user::rwx
user:mysqlbackup:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:mysqlbackup:rwx
default:group::---
default:mask::rwx
default:other::---
root@248261c6cbcc:/var/lib/mysql# sudo -u mysql -H mkdir -m 700 it_must_be_database_dir
root@248261c6cbcc:/var/lib/mysql# getfacl it_must_be_database_dir/
# file: it_must_be_database_dir/
# owner: mysql
# group: mysql
user::rwx
user:mysqlbackup:rwx #effective:---
group::---
group:mysqlbackup:rwx #effective:---
mask::---
other::---
default:user::rwx
default:user:mysqlbackup:rwx
default:group::---
default:group:mysqlbackup:rwx
default:mask::rwx
default:other::---
正如你所见,有效权利---
什么都不是。
那么,我可以以某种方式设置 ACL,以便用户700
可以访问所创建的目录mysqlbackup
吗?
答案1
不可以。使用 700 权限,您正在强制使用 --- 掩码,系统会遵守您的指令。
您只需使用更宽松的掩码(例如:rwx)并仅通过 ACL 条目控制有效访问权限。