特殊权限及特殊属性

特殊权限

setuid


setuid的权限是4开头的 4xxx

权限位作用于属主的x位   可执行的权限位    执行这条命令的时候,相当于这条命令的所有者 root

使用 s 表示  

#大S 和 小s的区别  
#拥有执行权限,设置setuid之后是小s

#没有执行权限,设置setuid之后是大S

[root@zzc ~]# ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd


[root@zzc ~]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62952 Oct 31  2018 /usr/bin/rm
[root@zzc ~]# su - zzc01
Last login: Thu Jul 23 12:24:52 CST 2020 from 10.0.0.1 on pts/4
[zzc01@zzc ~]$ rm -rf /opt/
rm: cannot remove ‘/opt/’: Permission denied
[zzc01@zzc ~]$ ll -d /
dr-xr-xr-x. 17 root root 224 Jul 22 10:21 /
[zzc01@zzc ~]$ logout
[root@zzc ~]# rm -rf /opt/
[root@zzc ~]# ll /opt/
ls: cannot access /opt/: No such file or directory
[root@zzc ~]# mkdir  /opt/
[root@zzc ~]# chmod  557   /
[root@zzc ~]# ll -d /
dr-xr-xrwx. 17 root root 224 Jul 24 08:38 /
[root@zzc ~]# su - zzc01
Last login: Fri Jul 24 08:37:21 CST 2020 on pts/0
[zzc01@zzc ~]$ rm -rf /opt/
[zzc01@zzc ~]$ logout
[root@zzc ~]# chmod  -w  /
chmod: /: new permissions are r-xr-xrwx, not r-xr-xr-x
[root@zzc ~]# chmod  o-w  /
[root@zzc ~]# ll -d /
dr-xr-xr-x. 16 root root 213 Jul 24 08:39 /


[root@zzc ~]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62952 Oct 31  2018 /usr/bin/rm
[root@zzc ~]# chmod u+s  /usr/bin/rm
[root@zzc ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62952 Oct 31  2018 /usr/bin/rm
[root@zzc ~]# mkdir  /opt
[root@zzc ~]# su -  zzc01
Last login: Fri Jul 24 08:39:42 CST 2020 on pts/0
[zzc01@zzc ~]$ rm -rf /opt/
[zzc01@zzc ~]$ logout
[root@zzc ~]# mkdir  /opt

[root@zzc ~]# chmod u-s  /usr/bin/rm


#普通用户不能使用yum,命令,即使添加了setuid的权限也不行
[root@zzc ~]# ll /usr/bin/yum 
-rwxr-xr-x. 1 root root 801 Nov  5  2018 /usr/bin/yum
[root@zzc ~]# su - zzc01
Last login: Fri Jul 24 08:42:10 CST 2020 on pts/0
[zzc01@zzc ~]$ yum install -y  sl
Loaded plugins: fastestmirror
You need to be root to perform this command.
[zzc01@zzc ~]$ yum install -y  mysql-server
Loaded plugins: fastestmirror
You need to be root to perform this command.
[zzc01@zzc ~]$ logout
[root@zzc ~]# ll /usr/bin/yum 
-rwxr-xr-x. 1 root root 801 Nov  5  2018 /usr/bin/yum
[root@zzc ~]# chmod u+s  /usr/bin/yum
[root@zzc ~]# ll /usr/bin/yum 
-rwsr-xr-x. 1 root root 801 Nov  5  2018 /usr/bin/yum
[root@zzc ~]# su - zzc01
Last login: Fri Jul 24 08:45:28 CST 2020 on pts/0
[zzc01@zzc ~]$ yum install -y  mysql-server
Loaded plugins: fastestmirror
You need to be root to perform this command.
#此权限不能乱给

[root@zzc ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
[root@zzc ~]# stat  /usr/bin/cat
  File: ‘/usr/bin/cat’
  Size: 54160     	Blocks: 112        IO Block: 4096   regular file
Device: 803h/2051d	Inode: 201349408   Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-24 08:52:48.370831557 +0800
Modify: 2018-10-31 03:16:01.000000000 +0800
Change: 2020-07-24 08:52:58.961832157 +0800
 Birth: -
[root@zzc ~]# stat /usr/bin/passwd
  File: ‘/usr/bin/passwd’
  Size: 27832     	Blocks: 56         IO Block: 4096   regular file
Device: 803h/2051d	Inode: 201636086   Links: 1
Access: (4755/-rwsr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-23 09:58:46.365163401 +0800
Modify: 2014-06-10 14:27:56.000000000 +0800
Change: 2020-07-06 02:14:21.159994247 +0800
 Birth: -



[root@zzc ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
[root@zzc ~]# chmod  -x  /usr/bin/cat
[root@zzc ~]# ll /usr/bin/cat
-rw-r--r--. 1 root root 54160 Oct 31  2018 /usr/bin/cat
[root@zzc ~]# chmod u+s /usr/bin/cat
[root@zzc ~]# ll /usr/bin/cat
-rwSr--r--. 1 root root 54160 Oct 31  2018 /usr/bin/cat
[root@zzc ~]# chmod +x /usr/bin/cat
[root@zzc ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54160 Oct 31  2018 /usr/bin/cat
[root@zzc ~]# chmod u-s /usr/bin/cat
[root@zzc ~]# 



setgid

	
setgid的权限是2开头的 2xxx

权限为作用在属组的x位    使用 s表示   有大S 和小s  

#大S 和 小s的区别  
#拥有执行权限,设置setgid之后是小s

#没有执行权限,设置setgid之后是大S

用户在某个目录下新创建的目录或者文件,默认的所属组是自己的基本组

当设置setgid之后,用户新创建的目录或者文件的默认所属组不在是自己的组了

默认的组就是这个目录的所属组       让多个用户能够共享一个目录  



[root@zzc ~]# mkdir  /data
[root@zzc ~]# ll -d /data
drwxr-xr-x 2 root root 6 Jul 24 09:06 /data
[root@zzc ~]# chmod  770  /data
[root@zzc ~]# ll -d /data
drwxrwx--- 2 root root 6 Jul 24 09:06 /data


[root@zzc ~]# groupadd   ops_group
[root@zzc ~]# chgrp   ops_group  /data/
[root@zzc ~]# ll -d /data/
drwxrwx--- 2 root ops_group 6 Jul 24 09:06 /data/
[root@zzc ~]# useradd  ops01
[root@zzc ~]# useradd  ops02
[root@zzc ~]# useradd  ops03
[root@zzc ~]# id ops03
uid=1046(ops03) gid=1048(ops03) groups=1048(ops03)

[root@zzc ~]# usermod   -aG  ops_group   ops01
[root@zzc ~]# usermod   -aG  ops_group   ops02
[root@zzc ~]# usermod   -aG  ops_group   ops03



[root@zzc ~]# su -  ops01
[ops01@zzc ~]$ touch  /data/ops01.txt
[ops01@zzc ~]$ ll /data/ops01.txt
-rw-rw-r-- 1 ops01 ops01 0 Jul 24 09:10 /data/ops01.txt
[ops01@zzc ~]$ logout
[root@zzc ~]# su -  ops02
[ops02@zzc ~]$ touch  /data/ops02.txt
[ops02@zzc ~]$ ll /data/ops02.txt
-rw-rw-r-- 1 ops02 ops02 0 Jul 24 09:11 /data/ops02.txt
[ops02@zzc ~]$ logout
[root@zzc ~]# su -  ops03
[ops03@zzc ~]$ touch  /data/ops03.txt
[ops03@zzc ~]$ ll /data/ops03.txt
-rw-rw-r-- 1 ops03 ops03 0 Jul 24 09:11 /data/ops03.txt
[ops03@zzc ~]$ logout
[root@zzc ~]# ll /data/
total 0
-rw-rw-r-- 1 ops01 ops01 0 Jul 24 09:10 ops01.txt
-rw-rw-r-- 1 ops02 ops02 0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03 0 Jul 24 09:11 ops03.txt


[root@zzc ~]# chmod g+s  /data/
[root@zzc ~]# ll -d /data/
drwxrws--- 2 root ops_group 57 Jul 24 09:11 /data/
[root@zzc ~]# stat /data/
  File: ‘/data/’
  Size: 57        	Blocks: 0          IO Block: 4096   directory
Device: 803h/2051d	Inode: 818813      Links: 2
Access: (2770/drwxrws---)  Uid: (    0/    root)   Gid: ( 1045/ops_group)
Access: 2020-07-24 09:11:26.981894897 +0800
Modify: 2020-07-24 09:11:17.173894341 +0800
Change: 2020-07-24 09:13:03.894900384 +0800
 Birth: -
[root@zzc ~]# ll /data/
total 0
-rw-rw-r-- 1 ops01 ops01 0 Jul 24 09:10 ops01.txt
-rw-rw-r-- 1 ops02 ops02 0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03 0 Jul 24 09:11 ops03.txt


[root@zzc ~]# echo "root" >  /data/root.log
[root@zzc ~]# ll /data/
total 4
-rw-rw-r-- 1 ops01 ops01     0 Jul 24 09:10 ops01.txt
-rw-rw-r-- 1 ops02 ops02     0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03     0 Jul 24 09:11 ops03.txt
-rw-r--r-- 1 root  ops_group 5 Jul 24 09:14 root.log
[root@zzc ~]# su  -  ops01
Last login: Fri Jul 24 09:10:22 CST 2020 on pts/0
[ops01@zzc ~]$ echo "ops01" > /data/ops01.log
[ops01@zzc ~]$ logout
[root@zzc ~]# su  -  ops02
Last login: Fri Jul 24 09:10:52 CST 2020 on pts/0
[ops02@zzc ~]$ echo "ops02" > /data/ops02.log
[ops02@zzc ~]$ ll /data/
total 12
-rw-rw-r-- 1 ops01 ops_group 6 Jul 24 09:15 ops01.log
-rw-rw-r-- 1 ops01 ops01     0 Jul 24 09:10 ops01.txt
-rw-rw-r-- 1 ops02 ops_group 6 Jul 24 09:15 ops02.log
-rw-rw-r-- 1 ops02 ops02     0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03     0 Jul 24 09:11 ops03.txt
-rw-r--r-- 1 root  ops_group 5 Jul 24 09:14 root.log
[ops02@zzc ~]$ vim /data/ops01.log
[ops02@zzc ~]$ cat /data/ops01.log
ops01
ops02
[ops02@zzc ~]$ umask 
0002


[ops02@zzc ~]$ ll /data/
total 12
-rw-rw-r-- 1 ops01 ops_group 12 Jul 24 09:16 ops01.log
-rw-rw-r-- 1 ops01 ops01      0 Jul 24 09:10 ops01.txt
-rw-rw-r-- 1 ops02 ops_group  6 Jul 24 09:15 ops02.log
-rw-rw-r-- 1 ops02 ops02      0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03      0 Jul 24 09:11 ops03.txt
-rw-r--r-- 1 root  ops_group  5 Jul 24 09:14 root.log
[ops02@zzc ~]$ rm -f /data/ops01.txt

[ops02@zzc ~]$ ll -d  /data/
drwxrws--- 2 root ops_group 90 Jul 24 09:20 /data/
[ops02@zzc ~]$ mkdir  /data/test
[ops02@zzc ~]$ ll /data/test
total 0
[ops02@zzc ~]$ ll /data/
total 12
-rw-rw-r-- 1 ops01 ops_group 12 Jul 24 09:16 ops01.log
-rw-rw-r-- 1 ops02 ops_group  6 Jul 24 09:15 ops02.log
-rw-rw-r-- 1 ops02 ops02      0 Jul 24 09:11 ops02.txt
-rw-rw-r-- 1 ops03 ops03      0 Jul 24 09:11 ops03.txt
-rw-r--r-- 1 root  ops_group  5 Jul 24 09:14 root.log
drwxrwsr-x 2 ops02 ops_group  6 Jul 24 09:21 test

sticky 粘滞位

     
sticky的权限是1开头的 1xxx

权限作用于 others 的x位    使用 t  表示    小t   大T 

#大T 和 小t的区别  
#拥有执行权限,设置sticky之后是小t

#没有执行权限,设置sticky之后是大T

给目录设置,  一个目录所有用户都拥有管理的权限   777    针对此目录设置一个粘滞位  
  
所有用户都可以在这个目录进行创建、删除文件的权利  但是只能管理自己的文件 或者管理员拥有管理所有文件的权限 root  


[root@zzc ~]# ll -d  /tmp/
drwxrwxrwt. 15 root root 4096 Jul 24 09:02 /tmp/
[root@zzc ~]# stat /tmp/
  File: ‘/tmp/’
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 803h/2051d	Inode: 67108936    Links: 15
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-24 09:49:40.026024737 +0800
Modify: 2020-07-24 09:02:34.229864730 +0800
Change: 2020-07-24 09:02:34.229864730 +0800
 Birth: -


[root@zzc ~]# mkdir   /test
[root@zzc ~]# chmod  777  /test
[root@zzc ~]# ll  -d /test
drwxrwxrwx 2 root root 6 Jul 24 09:50 /test


[root@zzc ~]# echo  "root"  /test/root.txt
root /test/root.txt
[root@zzc ~]# echo  "root" > /test/root.txt
[root@zzc ~]# su - ops01
Last login: Fri Jul 24 09:14:53 CST 2020 on pts/0
[ops01@zzc ~]$ echo "ops01" > /test/ops01.txt
[ops01@zzc ~]$ logout
[root@zzc ~]# su - dev01
Last login: Wed Jul 22 10:49:56 CST 2020 from 10.0.0.1 on pts/1
[dev01@zzc ~]$ echo "dev01" > /test/dev01.txt
[dev01@zzc ~]$ logout
[root@zzc ~]# ll /test/
total 12
-rw-rw-r-- 1 dev01 dev01 6 Jul 24 09:52 dev01.txt
-rw-rw-r-- 1 ops01 ops01 6 Jul 24 09:51 ops01.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt


[root@zzc ~]# su -  dev01 
Last login: Fri Jul 24 09:51:51 CST 2020 on pts/0
[dev01@zzc ~]$ ll /test/
total 12
-rw-rw-r-- 1 dev01 dev01 6 Jul 24 09:52 dev01.txt
-rw-rw-r-- 1 ops01 ops01 6 Jul 24 09:51 ops01.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt
[dev01@zzc ~]$ rm -f /test/ops01.txt 
[dev01@zzc ~]$ ll /test/
total 8
-rw-rw-r-- 1 dev01 dev01 6 Jul 24 09:52 dev01.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt


[root@zzc ~]# chmod o+t  /test/
[root@zzc ~]# stat /test/
  File: ‘/test/’
  Size: 39        	Blocks: 0          IO Block: 4096   directory
Device: 803h/2051d	Inode: 67588796    Links: 2
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-24 09:53:31.177037826 +0800
Modify: 2020-07-24 09:53:25.993037532 +0800
Change: 2020-07-24 09:55:02.412042992 +0800
 Birth: -


[root@zzc ~]# su - ops01
Last login: Fri Jul 24 09:51:32 CST 2020 on pts/0
[ops01@zzc ~]$ echo  "ops01"  > /test/ops.txt
[ops01@zzc ~]$ ll /test/
total 12
-rw-rw-r-- 1 dev01 dev01 6 Jul 24 09:52 dev01.txt
-rw-rw-r-- 1 ops01 ops01 6 Jul 24 09:55 ops.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt


[root@zzc ~]# su - dev01
Last login: Fri Jul 24 09:52:59 CST 2020 on pts/0
[dev01@zzc ~]$ ll /test/
total 12
-rw-rw-r-- 1 dev01 dev01 6 Jul 24 09:52 dev01.txt
-rw-rw-r-- 1 ops01 ops01 6 Jul 24 09:55 ops.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt
[dev01@zzc ~]$ rm -f /test/ops.txt 
rm: cannot remove ‘/test/ops.txt’: Operation not permitted
[dev01@zzc ~]$ rm -f /test/dev01.txt 
[dev01@zzc ~]$ ll /test/
total 8
-rw-rw-r-- 1 ops01 ops01 6 Jul 24 09:55 ops.txt
-rw-r--r-- 1 root  root  5 Jul 24 09:51 root.txt
[dev01@zzc ~]$ logout
[root@zzc ~]# rm -f  /test/ops.txt 
[root@zzc ~]# 


特殊属性



特殊属性不受普通权限的限制  


lsattr		#显示特殊属性


chattr		#设置特殊属性 


a			#这个文件只能追加内容和查看   别的什么都做不了  删除  移动  复制可以 

i			#什么都操作不了 

[root@zzc ~]# touch  test.txt
[root@zzc ~]# touch  test.log
[root@zzc ~]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 24 10:08 test.log
-rw-r--r-- 1 root root 0 Jul 24 10:08 test.txt

[root@zzc ~]# lsattr  test.log 
---------------- test.log
[root@zzc ~]# lsattr  test.txt
---------------- test.txt

[root@zzc ~]# echo  "test" > test.log
[root@zzc ~]# echo  "test" > test.txt
[root@zzc ~]# ll
total 8
-rw-r--r-- 1 root root 5 Jul 24 10:09 test.log
-rw-r--r-- 1 root root 5 Jul 24 10:09 test.txt


[root@zzc ~]# chattr   +a test.log
[root@zzc ~]# ll test.log
-rw-r--r-- 1 root root 5 Jul 24 10:09 test.log
[root@zzc ~]# lsattr  test.log
-----a---------- test.log
[root@zzc ~]# cat test.log
test
[root@zzc ~]# vim test.log
[root@zzc ~]# vim test.log
[root@zzc ~]# echo "hello" > test.log
-bash: test.log: Operation not permitted
[root@zzc ~]# echo "hello" >> test.log
[root@zzc ~]# cat test.log
test
hello
[root@zzc ~]# rm -f test.log
rm: cannot remove ‘test.log’: Operation not permitted
[root@zzc ~]# mv test.log /tmp/
mv: cannot move ‘test.log’ to ‘/tmp/test.log’: Operation not permitted
[root@zzc ~]# cp test.log  /tmp/



[root@zzc ~]# chattr +i  test.txt 
[root@zzc ~]# lsattr  test.txt
----i----------- test.txt
[root@zzc ~]# cat test.txt
test
[root@zzc ~]# rm -f test.txt
rm: cannot remove ‘test.txt’: Operation not permitted
[root@zzc ~]# mv test.txt /tmp/
mv: cannot move ‘test.txt’ to ‘/tmp/test.txt’: Operation not permitted
[root@zzc ~]# cp test.txt  /tmp/
[root@zzc ~]# echo "hello" > test.txt 
-bash: test.txt: Permission denied
[root@zzc ~]# echo "hello" >> test.txt 
-bash: test.txt: Permission denied


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值