day11-特殊权限

2019-08-08  本文已影响0人  不懂helloword

1.suid

进程能够以何种身份去查看一个文件,取决于运行这个进程的用户有没有对这个文件有没有权限

列:
用户在改密码是使用passwd改密码,指向/etc/shadow来修改密码,而shadow是一个没有权限的文件,为什么所有用户都能修改修改shadow里的密码?


shadow权限属性
*切换普通用户修改密码时,passwd
[oldboy@localhost ~]$ passwd
Changing password for user oldboy.
Changing password for oldboy.
(current) UNIX password: 

*新建一个终端查看进程中passwd是什么在运行
[root@localhost ~]# ps aux | grep "passwd"
root       7502  0.0  0.4 170712  1992 pts/0    S+   10:30   0:00 passwd
root       7556  0.0  0.2 112708   960 pts/1    S+   10:31   0:00 grep --color passwd

为什么是root用户在运行passwd,而不是oldboy?因为passwd有特殊权限

[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
*-rwsr-xr-x ----> rwx变成了rws,s就是赋予了特殊权限

PS:set uid简称suid,当我们赋予suid特殊权限,能让所有用户在运行赋予特殊权限后以属主的权限去运行。
suid == 4000
命令表达式:

chmod u+s /usr/bin/passwd
chmod 4755 /uer/bin/passwd
chmod u-s #去掉权限

suid优点:可以让普通用户执行无法执行的命令----方便
suid缺点:如果rm为suid无论谁执行该命令,都能删除系统的任何资源


2.sgid(set gid)特殊权限(RHCE考试)

将目录设置为sgid后,如果在往该目录下创建文件,都将与该目录的所属组保持一致

[root@oldboyedu ~]# groupadd devops
[root@oldboyedu ~]# useradd zhangsan -G devops
[root@oldboyedu ~]# useradd lisi -G devops
[root@oldboyedu ~]# mkdir /opt/share
[root@oldboyedu ~]# chmod 2777 share/
[root@oldboyedu ~]# chown .devops share/

使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

*测试不同的用户在该目录下创建文件,检查属主和属组
[root@localhost /opt/share]# ll
total 0
-rw-r--r--. 1 root     devops 0 Aug  8 11:27 t1
-rw-r--r--. 1 oldboy   devops 0 Aug  8 11:28 t2
-rw-rw-r--. 1 zhangsan devops 0 Aug  8 11:30 t3

3.sbit

如果一个目录设定了粘滞位,那么谁都可以在该目录下创建文件
删除文件只能是谁创建的谁删除,除此以外 root 和/tmp/的所属主都能删除该目录下的额内容.

#设定粘滞位 1000 
chmod o+t /tmp 
chmod 1777 /tmp
粘滞位使用场景

5.特殊属性 chattr lsattr

1.希望任何人都不能创建用户,应该给/etc/passwd添加什么特殊属性?

[root@localhost /opt/share]# chattr +i /etc/passwd #使文件不得变动文件或目录
[root@localhost /opt/share]# lsattr /etc/passwd #检查文件属性
----i----------- /etc/passwd
[root@localhost ~]# useradd zj
useradd: cannot open /etc/passwd

2.日志文件,希望能往里面追加内容,但不允许删除,应该添加什么特殊属性?

[root@localhost ~]# chattr +a /var/log/secure
[root@localhost ~]# lsattr /var/log/secure
-----a---------- /var/log/secure

6.umask 默认权限

  1. umask是用来控制默认创建文件或目录的权限
  2. umask设定为022,表示要减去的权限
    目录: 777 -022 =755
    文件: 666 -022 =644
  3. umask 设定为奇数 偶数 对文件和目录有什么影响?
    文件: 如果umask出现了奇数, 要在奇数位+1
    目录: 对目录毫无影响
  4. 设定umask
    umask number 临时 (当前bash窗口有效,会随着bash的关闭一
    起结束)
    vim /etc/profile /etc/login.defs # 如果修改则都为永久.
  5. 一般情况下不对umask调整,默认就是安全的权限.默认为:
    目录: 755
    文件: 644

总结

  1. 特殊权限 suid sgid sbit
    suid:让其他用使用程序时通过该文件属主来操作该文件的内容等
    sgid:设置目录sgid特殊权限,让其目录下创建的文件都有相同组,方便文件共享
    sbit:目录设定了粘滞位,那么谁都可以在该目录下创建文件

  2. 特殊属性 chattr lsattr -a(/var/log/*.log) -i (/etc/passwd)
    chattr:-a:追加文件 -i:锁定文件
    lsattr:查看文件属性

  3. umask 默认权限( 表示要减去的权限 目录:777 -umask 文件:666 - umask)。
    当我们想改变创建文件和目录时的默认访问权限,则可以通过umask命令来实现。

上一篇下一篇

猜你喜欢

热点阅读