一.普通权限
1.概述
目录
只要一个命令文件在属主权限为上的x变成s的话,那么其他用户在执行这个命令文件时,就会以该命令文件的属主用户身份去执行
(1).权限类型;
可读用r表示;
可写用w表示;
可执行用x表示;
权限的排列方式 | Linux下表示 | 二进制表示 | 八进制表示 |
---|---|---|---|
只读 | r-- | 100 | 4 |
只可写 | -w- | 010 | 2 |
只可执行 | --x | 001 | 1 |
可读可写 | rw- | 110 | 6 |
可读可执行 | r-x | 101 | 5 |
可写可执行 | -wx | 011 | 3 |
可读可写可执行 | rwx | 111 | 7 |
空权限 | --- | 000 | 0 |
(2).文件访问者的分类(4类);
u:属主,文件的所有者
g:属组,文件所有者的所属组
o:其他用户,除属主和不在属组内的用户
a:全部用户
(3).文件类型 (7类);
d:目录
-:普通文件
l:软连接(类似windows的快捷方式)
b:块设备被文件(如硬盘.光驱)
p:管道文件
c:字符设备文件(如屏幕等串口设备)
s:套接口文件
(4).文件属性信息
[root@localhost ~]# ls -ld test/ drwxr-xr-x. 2 root root 6 4月 9 16:49 test/ #文件类型 属主权限 属组权限 其他用户权限 硬链接个数 属主 属组 大小 创建日期 时间 文件名
2.普通权限管理信息
(1).chmod命令:-R,递归修改目录及子目录权限
改变文件的访问权限,+,增加权限;-删除权限;=,赋予权限;
[root@localhost zhx]# chmod u+x d1 [root@localhost zhx]# ls -l 总用量 0 drwxrw----. 3 root root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2 [root@localhost zhx]# chmod g-w d1 [root@localhost zhx]# ls -l 总用量 0 drwxr-----. 3 root root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2 [root@localhost zhx]# chmod a=rwx d1 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 root root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
[root@localhost zhx]# chmod 660 d1 [root@localhost zhx]# ls -l 总用量 0 drw-rw----. 3 root root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
(2).chown命令;-R,递归修改目录及子目录的所有权
修改文件所有者和组别
[root@localhost zhx]# chown zhx d1 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 zhx root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
[root@localhost zhx]# chown .zhx d1 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 zhx zhx 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
[root@localhost zhx]# chown root.root d1 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 root root 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2 [root@localhost zhx]# chown zhx:zhx d1 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 zhx zhx 17 4月 9 09:46 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
(3).umask命令
选项 | 作用 |
---|---|
-p | 如果省略 MDOE 模式,以可重用为输入的格式输入 |
-S | 以符号形式输出,否则以八进制数格式输出 |
查看权限掩码:umask
修改权限掩码,只是临时的,切换shell或重启系统将失效 [root@localhost zhx]# umask 0222 [root@localhost zhx]# umask 0222 [root@localhost zhx]# mkdir d3 [root@localhost zhx]# ls -l 总用量 0 drwxrwxrwx. 3 zhx zhx 27 4月 9 10:15 d1 drwxrwxr-x. 2 zhx zhx 6 4月 9 09:40 d2 dr-xr-xr-x. 2 root root 6 4月 9 10:18 d3 -rw-r--r--. 1 root root 0 4月 9 09:34 f1 -rw-rw-r--. 1 zhx zhx 0 4月 9 09:35 f2
二.特殊权限
1.概述
(1).SID权限
SUID,第三位上表现为s,对应数字4
若该属主权限为上有执行权(x),则会显示小写s
若该属主权限位上没有执行权(x),则会显示大写S
只要一个命令文件在属主权限为上的x变成s的话,那么其他用户在执行这个命令文件时,就会以该命令文件的属主用户身份去执行
SUID仅对二进制可执行程序有效,对其他文件或目录无效
应用场景:用户命令临时提权
(2).SGID权限
SGID,第六位上表现为s,对应数字2
如果该属组权限位上有执行权(x),则会显示小写s
如果该属组权限位上没有执行权(x),则会显示大写的S
SGID改变的是执行者的所属组,可以对可执行文件和目录设置。一般情况下是设置给目录使用的,通过对目录设置SGID属性,可以使得访问在该目录下创建的所有文件的所有权,都继承原目录的所有者,而非创建者。因为一旦有用户进入到该目录下,由于具有SGID权限,进入目录后的用户就会变成该目录的属组所有者,在该目录下创建的所有文件,都以该目录的所有者的身份创建。
应用场景:应用于文件共享
(3).SBIT权限
SBIT权限只对目录有效,在权限位的最低位第九位表现为t,对应数字1
如果该其他用户权限位上有执行权(x),则会显示小写t
如果该其他用户权限位上没有执行权(x),则会显示大写T
通过对目录设置SBIT权限,并且该目录的权限为777,则所有用户可以在该目录下都可以创建文件,并且文件所有者是自己。但是在SBIT权限的目录下,只有root和文件的所有者才能删除该文件,即使文件的属性为777也不能被其他用户删除。
sticky目录表现在others 的 x 位,用(小写)t 表示,没有执行权限时(大写)T,一个目录即使使得它的权限为“777” ,如果设置了粘滞位,除了目录的属主和“root”用户有权限删除,其它用户都不允许删除。
应用场景:保护文件的私有性,防止误删除
2.案例
(1).SUID权限
**如果普通用户在使用passwd命令时,是以root用户身份去执行的话,那普通用户是不是可以修改其它用户的密码?** 答:是不可以的,因为在passwd命令中,存在一种判断,此判断会在执行passwd命令时去判断执行的用户是root还是普通用户,如果是普通用户,那么只能使用passwd命令,后面不可加上参数,如果是root用户,后面才可加上其它参数(参数就是用户)。那么普通用户就无法进行修改其它用户的密码。 [root@centos7 ~]# useradd hello #创建一个用户 [root@centos7 ~]# passwd hello #设置它的密码 更改用户 hello 的密码 。 新的 密码: 重新输入新的 密码: passwd:所有的身份验证令牌已经成功更新。 [root@centos7 ~]# ll /bin/passwd #查看passwd命令权限 -rwsr-xr-x. 1 root root 27832 6月 10 2014 /bin/passwd [root@centos7 ~]# su hello #切换到hello用户 [hello@centos7 root]$ passwd #修改密码 更改用户 hello 的密码 。 为 hello 更改 STRESS 密码。 (当前)UNIX 密码: 新的 密码: 重新输入新的密码: passwd:所有的身份验证令牌已经成功更新。 #可以成功修改 [hello@centos7 root]$ su root #返回root用户 密码: [root@centos7 ~]# chmod u-s /bin/passwd #修改passwd的权限,去掉suid权限 [root@centos7 ~]# ll /bin/passwd -rwxr-xr-x. 1 root root 27832 6月 10 2014 /bin/passwd #发现s变成了x [root@centos7 ~]# su hello #再切换到hello用户 [hello@centos7 root]$ passwd #修改密码 更改用户 hello 的密码 。 为 hello 更改 STRESS 密码。 (当前)UNIX 密码: 新的 密码: 重新输入新的 密码: passwd: 鉴定令牌操作错误 #密码无法进行修改 ``` ###
(2).SGID权限
[root@centos7 opt]# mkdir ydq #创建目录 [root@centos7 opt]# ll 总用量 0 drwxr-xr-x. 2 root root 6 5月 17 00:23 ydq #查看权限 [root@centos7 opt]# chmod 777 ydq #查看权限为777 [root@centos7 opt]# ll 总用量 0 drwxrwxrwx. 2 root root 6 5月 17 00:23 ydq #权限已修改 [root@centos7 opt]# cd ydq #进入到cd目录 [root@centos7 ydq]# mkdir aaa #创建aaa文件 [root@centos7 ydq]# ll 总用量 0 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa #可以看到aaa文件的属主和数组都是root [root@centos7 ydq]# su hello #切换hello用户 [hello@centos7 ydq]$ mkdir bbb #创建bbb目录 [hello@centos7 ydq]$ ll 总用量 0 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa drwxrwxr-x. 2 hello hello 6 5月 17 00:24 bbb #可以看到bbb文件的属主和属组都是hello文件 [hello@centos7 ydq]$ exit #返回root用户 exit [root@centos7 ydq]# cd ../ #返回上一级 [root@centos7 opt]# chmod g+s ydq #将ydq目录增加sgid [root@centos7 opt]# ll 总用量 0 drwxrwsrwx. 4 root root 28 5月 17 00:24 ydq #属组的权限已增加了s [root@centos7 opt]# cd ydq #进入ydq目录 [root@centos7 ydq]# su hello #切换hello用户 [hello@centos7 ydq]$ mkdir ccc #创建目录ccc [hello@centos7 ydq]$ ll 总用量 0 drwxr-xr-x. 2 root root 6 5月 17 00:23 aaa drwxrwxr-x. 2 hello hello 6 5月 17 00:24 bbb drwxrwsr-x. 2 hello root 6 5月 17 00:25 ccc #ccc的属组用户已变为跟ydq目录一致的用户
(3).SBIT权限
[root@centos7 opt]# ll #查看权限 总用量 0 drwxrwxrwx. 2 root root 6 5月 17 09:27 yude #权限为777 [root@centos7 opt]# chmod o+t yude #增加sticky bit权限 [root@centos7 opt]# ll #查看权限 总用量 0 drwxrwxrwt. 2 root root 6 5月 17 09:27 yude #其它用户上权限多了sticky bit权限 [root@centos7 opt]# cd yude #进入到yude目录下面 [root@centos7 yude]# su hello #切换hello用户 [hello@centos7 yude]$ touch bbb #创建一个文件 [hello@centos7 yude]$ ll #查看文件,文件正常创建 总用量 0 -rw-rw-r--. 1 hello hello 0 5月 17 09:39 bbb [hello@centos7 yude]$ exit #退出当前用户 exit [root@centos7 yude]# su ydq #切换到ydq用户 [ydq@centos7 yude]$ ll 总用量 0 -rw-rw-r--. 1 hello hello 0 5月 17 09:39 bbb #可以查看到hello用户创建的文件 [ydq@centos7 yude]$ rm -rf ./bbb #进行删除bbb文件 rm: 无法删除"./bbb": 不允许的操作 #无法进行删除