对您的问题的简短回答是:不需要脚本,只需:
ls -al /home
这将为您列出所有用户以及每个用户主目录的相应权限。 Linux 文件权限由10 bits 控制,代表谁 具有访问权限以及什么(如果有)与给定文件相关联的特殊权限。权限位通常表示为drwxrwxrwx 以供讨论。第一个或特殊的位含义如下:
_: (unset) indicates a regular file with no special properties
d: directory,
l: link,
s: the directory is setuid/setgid
t: sticky bit
接下来的九位rwxrwxrwx(3 组rwx)控制owner group world 对相关文件的访问。那么所有者 组或世界是谁?我们来看一个来自ls -al /home的例子:
drwxr-xr-x 15 deborah users 4096 Mar 11 2011 deborah
查看信息我们可以将10位和信息分开如下:
d rwx r-x r-x .. deborah users ..... deborah
| | | \ \ \
owner | world owner group filename
group
特殊权限位上方是d,表示文件名(在最右侧deborah)是一个目录。第一组 3 位指定 所有者 (deborah) 对文件具有 read、write 和 execute 权限。同样,下一组 3 个指定 组(用户) 具有 read 和 execute 权限,但没有 write 权限。 NOTE: with a directory, the execute bit also control whether the (owner, group or world) can descend into the directory。同样,world (everybody) 与 group (users) 具有相同的权限。
要操作位,请使用chmod(更改模式)命令。要操作用户或组,请使用chown(更改所有者)命令。 chown 命令有简单的基本用法,只需指定新的owner 和group,用冒号分隔:。例如,要将上面显示的文件更改为用户 david 和组 samba 拥有,命令将是 chown david:samba filename
有两种方法可以使用chmod 更改权限或(模式)。您可以同时指定特殊位的八进制等效位和 3 组所有者、组和世界位的数字。示例:要为 user 和 group 创建目录 rwx,您可以发出以下命令:
chmod 0775 filename # to set all permissions as desired at once
0 只是说明目录没有特殊位设置,第一个 7 表示 用户 的二进制 111(或 rwx),第二个 7 group 和最后的 5 表示相同,表示 world 应该具有(二进制 101)r_x 权限。虽然并不总是需要,但建议提供前导 0,即使不会更改特殊权限位以消除任何歧义。
您还可以将 chmod 与 +/-/= r、w、x(对应的 rwx 位)用于u、g 或ouser、group 或owner 权限(您可以使用a 来表示all)。要将它们放在一起并使用八进制位设置与上面相同的模式,您只需执行以下操作:
chmod g+w filename # to add the single write bit to group 'users'
使用此方法,您可能需要多次调用chmod 才能根据需要设置所有权限,但与使用八进制权限相比,您可以在一次调用中设置所有权限字段.
显然,它的功能远不止于此,但为了进行良好的介绍,这应该足以让您开始管理权限和所有权。 (显然,这篇文章的发布时间也比最初预期的要长,请欣赏)。