Linux用户及组管理三

Chown属主及属组

修改某个用户、组对文件夹的属主及属组,用命令chown实现,案例演示如下:

  • 修改jfedu.net文件夹所属的用户为root,其中-R参数表示递归处理所有的文件及子目录。
chown -R root jfedu.net
  • 修改jfedu.net文件夹所属的组为root。
chown -R :root jfedu.net或者chgrp –R root jfedu.net
  • 修改jfedu.net文件夹所属的用户为root,组也为root。
chown -R root:root jfedu.net
Chmod用户及组权限

修改某个用户、组对文件夹的权限,用命令chmod实现,其中以代指ugo,、-、=代表加入、删除和等于对应权限,具体案例如下:

  • 授予用户对jfedu.net目录拥有rwx权限
chmod –R u+rwx jfedu.net
  • 授予组对jfedu.net目录拥有rwx权限
chmod –R g+rwx jfedu.net
  • 授予用户、组、其他人对jfedu.net目录拥有rwx权限
chmod –R u+rwx,g+rwx,o+rwx jfedu.net
  • 撤销用户对jfedu.net目录拥有w权限
chmod –R u-w jfedu.net
  • 撤销用户、组、其他人对jfedu.net目录拥有x权限
chmod –R u-x,g-x,o-x jfedu.net
  • 授予用户、组、其他人对jfedu.net目录只有rx权限
chmod –R u=rx,g=rx,o=rx jfedu.net

Chmod二进制权限

Linux权限默认使用rwx来表示,为了更简化在系统中对权限进行配置和修改,Linux权限引入二进制表示方法,如下代码:

Linux权限可以将rwx用二进制来表示,其中有权限用1表示,没有权限用0表示;

Linux权限用二进制显示如下:

rwx=111

r-x=101

rw-=110

r–=100

依次类推,转化为十进制,对应十进制结果显示如下:

rwx=111=4+2+1=7

r-x=101=4+0+1=5

rw-=110=4+4+0=6

r–=100=4+0+0=4

得出结论,用r=4,w=2,x=1来表示权限。

使用二进制方式来修改权限案例演示如下,其中默认jfedu.net目录权限为755:

  • 授予用户对jfedu.net目录拥有rwx权限
chmod –R 755 jfedu.net
  • 授予组对jfedu.net目录拥有rwx权限
chmod –R 775 jfedu.net
  • 授予用户、组、其他人对jfedu.net目录拥有rwx权限
chmod –R 777 jfedu.net
  • 撤销用户对jfedu.net目录拥有w权限
chmod –R 555 jfedu.net
  • 撤销用户、组、其他人对jfedu.net目录拥有x权限
chmod –R 644 jfedu.net
  • 授予用户、组、其他人对jfedu.net目录只有rx权限
chmod –R 555 jfedu.net
Linux特殊权限及掩码

Linux权限除了常见的rwx权限之外,还有很多特殊的权限,细心的读者会发现,为什么Linux目录默认权限755,而文件默认权限为644呢,这是因为Linux权限掩码umask导致。

每个Linux终端都拥有一个umask属性,umask熟悉可以用来确定新建文件、目录的默认权限,默认系统权限掩码为022。在系统中每创建一个文件或者目录,文件默认权限是666,而目录权限则为777,权限对外开放比较大,所以设置了权限掩码之后,默认的文件和目录权限减去umask值才是真实的文件和目录的权限。

  • 对应目录权限为:777-022=755;
  • 对应文件权限为:666-022=644;
  • 执行umask命令可以查看当前默认的掩码,umask -S 023可以设置默认的权限掩码。

在Linux权限中,除了普通权限外,还有如下表5-2所示,三个特殊权限:

权限 对文件的影响 对目录的影响
Suid 以文件的所属用户身份执行,而非执行文件的用户
sgid 以文件所属组身份去执行 在该目录中创建任意新文件的所属组与该目录的所属组相同
sticky 对目录拥有写入权限的用户仅可以删除其拥有的文件,无法删除其他用户所拥有的文件

表5-2 Linux三种特殊权限

Linux中设置特殊权限方法如下:

  • 设置suid:         chmod u+s jfedu.net
  • 设置sgid:         chmod g+s jfedu.net
  • 设置sticky:     chmod o+t jfedu.net

特殊权限与设置普通权限一样,可以使用数字方式表示:

  • SUID     =     4
  • SGID     =     2
  • Sticky     =     1

可以通过chmod 4755 jfedu.net对该目录授予特殊权限为s的权限,Linux系统中s权限的应用常见包括:su、passwd、sudo,如图5-2所示:

图5-2 Linux特殊权限s应用