chgrp
几乎在每种Linux系统中,当你创建一个新的文件(或目录)时,默认的拥有者和用户组就是你自己。例如,假设你要新写一个能在系统上运行的脚本文件。
$ touch new_script.sh
$ ls -l
-rw-r--r-- 1 scott scott ... script.sh
说明 这台计算机中的用户名和用户组正好都是“scott”,但并不是每台计算机都必须这样。在创建文件时,用户的UID(User ID号)成为文件的拥有者,而用户的GID(Group ID号)则成为文件的用户组。
但如果你是系统中admins用户组中的一员,想让该组的其他成员也能够使用你的脚本,并能够运行它,该怎么办呢?在这种情况下,就需要使用chgrp命令将用户组从scott修改为admins。
$ chgrp admins new_script.sh
$ ls -l
-rw-r--r-- 1 scott admins ... script.sh
说明 这个脚本现在仍然不能运行,因为它不是可执行文件。
关于chgrp命令,需要记住两点。当运行chgrp命令时,可以使用用户组的名称或数字ID。但是如何找到与某个用户组相关的数字ID呢?最简单的方法就是对/etc/group使用cat命令,这个文件保存了计算机中各个用户组的信息,结果如下所示:
$ cat /etc/group
bind:x:118:
scott:x:1001:
admins:x:1002:scott,alice,bob
[list truncated for length]
关于chgrp命令的另外一点与安全有关:只有用户组的成员,才能够修改这个组的权限。换句话说,Scott、Alice或Bob可以使用chgrp命令让文件或者目录的用户组成为admins,但Carol不可以,因为她不是admins组的成员。