跳过导航链接 | |
退出打印视图 | |
系统管理指南:安全性服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
以下任务列表列出了用于列出文件权限、更改文件权限,以及使用特殊文件权限保护文件的过程。
|
使用 ls 命令显示有关目录中所有文件的信息。
示例 6-1 显示文件信息
在以下示例中,显示了 /sbin 目录中部分文件的列表。
% cd /sbin % ls -la total 13456 drwxr-xr-x 2 root sys 512 Sep 1 14:11 . drwxr-xr-x 29 root root 1024 Sep 1 15:40 .. -r-xr-xr-x 1 root bin 218188 Aug 18 15:17 autopush lrwxrwxrwx 1 root root 21 Sep 1 14:11 bpgetfile -> ... -r-xr-xr-x 1 root bin 505556 Aug 20 13:24 dhcpagent -r-xr-xr-x 1 root bin 456064 Aug 20 13:25 dhcpinfo -r-xr-xr-x 1 root bin 272360 Aug 18 15:19 fdisk -r-xr-xr-x 1 root bin 824728 Aug 20 13:29 hostconfig -r-xr-xr-x 1 root bin 603528 Aug 20 13:21 ifconfig -r-xr-xr-x 1 root sys 556008 Aug 20 13:21 init -r-xr-xr-x 2 root root 274020 Aug 18 15:28 jsh -r-xr-xr-x 1 root bin 238736 Aug 21 19:46 mount -r-xr-xr-x 1 root sys 7696 Aug 18 15:20 mountall . . .
每一行按以下顺序显示了有关文件的信息:
文件类型-例如,d。有关文件类型的列表,请参见文件和目录的所有权。
权限-例如,r-xr-xr-x。有关说明,请参见文件和目录的所有权。
硬链接数-例如,2。
文件的所有者-例如,root。
文件的组-例如,bin。
文件的大小(以字节为单位)-例如,7696。
文件创建日期或上次更改日期-例如,Aug 18 15:20。
文件名-例如,mountall。
文件所有者、 Primary Administrator(主管理员)角色或超级用户可以更改任何文件的所有权。
% ls -l example-file -rw-r--r-- 1 janedoe staff 112640 May 24 10:49 example-file
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
# chown stacey example-file
# ls -l example-file -rw-r--r-- 1 stacey staff 112640 May 26 08:50 example-file
示例 6-2 允许用户更改其自身文件的所有权
安全注意事项-您应该有合理理由将 rstchown 变量的设置更改为零。通过此设置,用户可以将其文件的所有权更改为另一用户名。
在此示例中,在 /etc/system 文件中将 rstchown 变量的值设置为零。通过此设置,文件所有者可以使用 chown 命令将文件的所有权更改为另一用户。通过此设置,文件所有者还可以使用 chgrp 命令将文件的组所有权设置为非其所在的组。重新引导系统后,更改将生效。
set rstchown = 0
有关更多信息,请参见 chown(1) 和 chgrp(1) 手册页。
此外,请注意,已挂载 NFS 的文件系统对更改所有权和组有更多限制。有关限制对已挂载 NFS 的系统的访问的更多信息,请参见《系统管理指南:网络服务》中的第 6 章 "访问网络文件系统(参考)"。
Primary Administrator(主管理员)角色拥有 Primary Administrator(主管理员)配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 "使用 Solaris Management Console(任务)"。
$ chgrp scifi example-file
有关设置组的信息,请参见《系统管理指南:基本管理》中的第 4 章 "管理用户帐户和组(概述)"。
$ ls -l example-file -rw-r--r-- 1 stacey scifi 112640 June 20 08:55 example-file
另请参见示例 6-2。
只有当前所有者或超级用户可以使用 chmod 命令更改文件或目录的文件权限。
% chmod who operator permissions filename
指定要更改其权限的用户。
指定要执行的操作。
指定要更改的权限。有关有效符号的列表,请参见表 6-5。
指定文件或目录。
% ls -l filename
示例 6-3 在符号模式下更改权限
在以下示例中,将解除其他用户的读取权限。
% chmod o-r example-file1
在以下示例中,将为用户、组和其他用户添加读和执行权限。
$ chmod a+rx example-file2
在以下示例中,将为组指定读写和执行权限。
$ chmod g=rwx example-file3
只有当前所有者或超级用户可以使用 chmod 命令更改文件或目录的文件权限。
% chmod nnn filename
按照该顺序指定将表示文件所有者、文件组和其他用户的权限的八进制值。有关有效八进制值的列表,请参见表 6-4。
指定文件或目录。
注 - 使用 chmod 命令更改具有 ACL 项的文件的文件组权限时,文件组权限和 ACL 掩码都将更改为新权限。请注意,新 ACL 掩码权限可以更改在文件中具有 ACL 项的其他用户和组的权限。使用 getfacl 命令以确保为所有 ACL 项都设置了适当的权限。有关更多信息,请参见 getfacl(1) 手册页。
% ls -l filename
示例 6-4 在绝对模式下更改权限
在以下示例中,将公共目录的权限从 744(读、写、执行;只读;只读)更改为 755(读、写、执行;读和执行;读和执行)。
# ls -ld public_dir drwxr--r-- 1 jdoe staff 6023 Aug 5 12:06 public_dir # chmod 755 public_dir # ls -ld public_dir drwxr-xr-x 1 jdoe staff 6023 Aug 5 12:06 public_dir
在以下示例中,将可执行 shell 脚本的权限从读写更改为读写和执行。
% ls -l my_script -rw------- 1 jdoe staff 6023 Aug 5 12:06 my_script % chmod 700 my_script % ls -l my_script -rwx------ 1 jdoe staff 6023 Aug 5 12:06 my_script
只有当前所有者或具有超级用户功能的用户可以使用 chmod 命令更改文件或目录的特殊权限。
% chmod nnnn filename
指定用于更改文件或目录的权限的八进制值。最左侧的八进制值设置文件的特殊权限。有关特殊权限的有效八进制值的列表,请参见表 6-6。
指定文件或目录。
注 - 使用 chmod 命令更改具有 ACL 项的文件的文件组权限时,文件组权限和 ACL 掩码都将更改为新权限。请注意,新 ACL 掩码权限可以更改在文件中具有 ACL 项的其他用户和组的权限。使用 getfacl 命令以确保为所有 ACL 项都设置了适当的权限。有关更多信息,请参见 getfacl(1) 手册页。
% ls -l filename
示例 6-5 在绝对模式下设置特殊文件权限
在以下示例中,将对 dbprog 文件设置 setuid 权限。
# chmod 4555 dbprog # ls -l dbprog -r-sr-xr-x 1 db staff 12095 May 6 09:29 dbprog
在以下示例中,将对 dbprog2 文件设置 setgid 权限。
# chmod 2551 dbprog2 # ls -l dbprog2 -r-xr-s--x 1 db staff 24576 May 6 09:30 dbprog2
在以下示例中,将对 public_dir 目录设置 sticky 位权限。
# chmod 1777 public_dir # ls -ld public_dir drwxrwxrwt 2 jdoe staff 512 May 15 15:27 public_dir