如果我从http://www.vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html手册http://www.vanemery.com/Linux/ACL/img1.gif中正确理解了这个图片,通过chmod设置700会使
user::rwx mask::--- other::---
(实际上是这样)。
但是,这意味着我不能创build目录和2个或更多的用户,使得ACL default ,每个用户的子目录将拥有700权限。 它遵循事实, user:some_user:...和group:someuser:...将与掩码相交(在本例中为0,结果也为0)。
我对吗?
简单的例子:MySQL为0700权限的数据库创build目录。 我想从我的用户备份(既不是mysql也不是root )。 这意味着我希望我的mysqlbackup用户获得700权限,以便在mysql目录中由mysql用户创build子目录。 MySQL在创build数据库时创build它们。
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创build的目录可以被mysqlbackup用户访问吗?
不,你不能。 使用700个权限,您正在强制一个—掩码,系统将会遵守您的指令。
您只需使用更宽松的掩码(例如:rwx),并通过ACL条目单独控制有效的访问权限。