跳过导航链接 | |
退出打印视图 | |
![]() |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
以下任务列表列出了用于列出 UFS 文件的 ACL、更改 ACL,以及将 ACL 复制到另一个文件的过程。
|
示例 6-6 检查文件是否具有 ACL
在以下示例中,ch1.sgm 文件具有 ACL。ACL 由模式字段右侧的加号 (+) 表示。
% ls -l ch1.sgm -rwxr-----+ 1 stacey techpubs 167 Nov 11 11:13 ch1.sgm
% setfacl -s user::perms,group::perms,other:perms,mask:perms,acl-entry-list filename ...
设置文件的 ACL。如果文件已具有 ACL,则会替换该 ACL。此选项要求至少有 user::、group:: 和 other:: 项。
指定文件所有者权限。
指定组所有者权限。
为文件所有者或组成员之外的用户指定权限。
指定 ACL 掩码的权限。掩码表示允许用户(所有者除外)和组拥有的最大权限。
指定文件或目录中要为特定用户和组设置的一个或多个 ACL 项的列表。也可以设置目录的缺省 ACL 项。表 6-7 和表 6-8 显示了有效的 ACL 项。
指定要对其设置 ACL 的一个或多个文件或目录。多个 filename 由空格分隔。
![]() | 注意 - 如果该文件已存在 ACL,则 -s 选项将使用新的 ACL 替换整个 ACL。 |
有关更多信息,请参见setfacl(1) 手册页。
% getfacl filename
有关更多信息,请参见如何检查文件是否具有 ACL。
示例 6-7 设置文件的 ACL
在以下示例中,会在 ch1.sgm 文件中将文件所有者权限设置为读写、将文件组权限设置为只读,并将其他用户权限设置为无。此外,还在文件中为用户 anusha 指定读写权限。将 ACL 掩码权限设置为读写,这意味着任何用户或组都没有执行权限。
% setfacl -s user::rw-,group::r--,other:---,mask:rw-,user:anusha:rw- ch1.sgm % ls -l total 124 -rw-r-----+ 1 stacey techpubs 34816 Nov 11 14:16 ch1.sgm -rw-r--r-- 1 stacey techpubs 20167 Nov 11 14:16 ch2.sgm -rw-r--r-- 1 stacey techpubs 8192 Nov 11 14:16 notes % getfacl ch1.sgm # file: ch1.sgm # owner: stacey # group: techpubs user::rw- user:anusha:rw- #effective:rw- group::r-- #effective:r-- mask:rw- other:---
在以下示例中,会将文件所有者权限设置为读写和执行,将文件组权限设置为只读,并将其他用户权限设置为无。此外,还会在 ch2.sgm 文件中将 ACL 掩码权限设置为读。最后,将为用户 anusha 指定读写权限。但是,由于 ACL 掩码的原因,anusha 的权限为只读。
% setfacl -s u::7,g::4,o:0,m:4,u:anusha:7 ch2.sgm % getfacl ch2.sgm # file: ch2.sgm # owner: stacey # group: techpubs user::rwx user:anusha:rwx #effective:r-- group::r-- #effective:r-- mask:r-- other:---
% getfacl filename1 | setfacl -f - filename2
指定将从其中复制 ACL 的文件。
指定要对其设置所复制的 ACL 的文件。
示例 6-8 复制 ACL
在以下示例中,会将 ch2.sgm 中的 ACL 复制到 ch3.sgm。
% getfacl ch2.sgm | setfacl -f - ch3.sgm
% setfacl -m acl-entry-list filename ...
% getfacl filename
示例 6-9 修改文件的 ACL 项
在以下示例中,将用户 anusha 的权限修改为读写。
% setfacl -m user:anusha:6 ch3.sgm % getfacl ch3.sgm # file: ch3.sgm # owner: stacey # group: techpubs user::rw- user::anusha:rw- #effective:r-- group::r- #effective:r-- mask:r-- other:r-
在以下示例中,将组 staff 的缺省权限修改为对 book 目录的读取权限。此外,还将缺省 ACL 掩码权限修改为读写。
% setfacl -m default:group:staff:4,default:mask:6 book
% setfacl -d acl-entry-list filename ...
删除指定的 ACL 项。
指定文件或目录中要删除的 ACL 项(未指定权限)的列表。只能删除特定用户和组的 ACL 项和缺省 ACL 项。表 6-7 和表 6-8 显示了有效的 ACL 项。
指定一个或多个文件或目录,由空格分隔。
或者,可以使用 setfacl -s 命令删除文件的所有 ACL 项,并使用所指定的新 ACL 项替换它们。
% getfacl filename
示例 6-10 删除文件的 ACL 项
在以下示例中,将从 ch4.sgm 文件中删除用户 anusha。
% setfacl -d user:anusha ch4.sgm
% getfacl [-a | -d] filename ...
显示指定文件或目录的文件名、文件所有者、文件组和 ACL 项。
显示指定目录的文件名、文件所有者、文件组和缺省 ACL 项(如果存在)。
指定一个或多个文件或目录,由空格分隔。
如果在命令行中指定多个文件名,则会在每两个 ACL 项之间显示一个空白行。
示例 6-11 显示文件的 ACL 项
在以下示例中,将显示文件 ch1.sgm 的所有 ACL 项。用户和组项旁边的 #effective: 注释表示由 ACL 掩码修改后的权限。
% getfacl ch1.sgm # file: ch1.sgm # owner: stacey # group: techpubs user::rw- user:anusha:r- #effective:r-- group::rw- #effective:rw- mask:rw- other:---
% getfacl -d book # file: book # owner: stacey # group: techpubs user::rwx user:anusha:r-x #effective:r-x group::rwx #effective:rwx mask:rwx other:--- default:user::rw- default:user:anusha:r-- default:group::rw- default:mask:rw- default:other:---