权限管理二

Posted 晴笙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限管理二相关的知识,希望对你有一定的参考价值。

特殊权限

特殊权限介绍

基本权限
rwx:r读 w写 x执行
特殊权限
[root@ yjc ~ ] # ll /bin/passwd
-rwsr-xr-x. 1 root root 27856 Apr 1 2020 /bin/passwd

[root@ yjc ~ ] # ll /bin/write
-rwxr-sr-x. 1 root tty 19544 Oct 1 2020 /bin/writ

出现的小s我们称作SetUID权限,也叫做SUID的特殊权限

[root@ yjc ~ ] # ll /tmp/ -d
drwxrwxrwt. 13 root root 4096 Apr 13 02:38 /tmp

特殊权限1:SetUID

我们先了解下面几个问题

1.普通用户可不可以修改密码?
可以,修改自己的密码
2./etc/shadow文件的作用?
存储用户密码的文件
3./etc/shadow文件的权限?
[root@localhost ~]# ll /etc/shadow
---------- 1 root root 16404 Apr 8 11:41 /etc/shadow
4.普通用户,是否可以修改/etc/shadow文件?
不可以,/etc/shadow文件,对于普通用户没有任何权限,所以不能读取,也不能写入内容
5.那么普通用户,为什么可以修改密码?
1)因为使用了passwd这个命令
2)passwd命令在属主权限位上,原本是x权限,变成了s权限
3)s权限在属主权限位,又叫做SetUID权限,SUID
4)作用:普通用户在使用有SUID权限的文件或命令时,会以该文件的属主身份去执行该命令

总结:普通用户以passwd命令的属主(root)身份执行该命令,该命令拥有特殊权限,SetUID,也就是我们看到的s,在属主的权限位的执行权限上是 s,root可以往/etc/shadow文件中写入内容,所以普通用户也可以

SetUID特性

# 1.原本属主位上如果有x权限,则SetUID为 s
# 2.原本属主位上如果没有x权限,则SetUID为 S
# 3.授权方式
- chmod u+s 文件名
- chmod 4xxx 文件名
# 4.SetUID权限的数字是4000

特殊权限2:SetGID

属组权限位上的s我们称作SetGID
[root@ yjc ~ ] # ll /bin/write
-rwxr-sr-x. 1 root tty 19544 Oct 1 2020 /bin/write
# 创建一个目录
[root@ yjc ~ ] # mkdir /tmp/test
# 赋予gid s权限
[root@ yjc ~ ] # chomod g+s /tmp/test/
# 查看目录权限
[root@ yjc ~ ] # ll /tmp/test/ -d
drwxr-sr-x 2 root root 6 Apr 13 03:11 /tmp/test/
# 使用root用户创建文件
[root@ yjc ~ ] # touch /tmp/test/root_file
# 查看文件
[root@ yjc ~ ] # ll /tmp/test/
-rw-r--r-- 1 root root 0 Apr 13 03:17 root_file
# 切换用户
[root@ yjc ~ ] # su - jc
# 创建文件
[jc@yjc ~]$ touch /tmp/test/lamp_file
touch: cannot touch ‘/tmp/test/lamp_file’: Permission denied
# 切回root赋予目录777权限
[root@ yjc ~ ] # chmod 777 /tmp/test/
# 查看目录权限
[root@ yjc ~ ] # ll -d /tmp/test/
drwxrwsrwx 2 root root 23 Apr 13 03:17 /tmp/test/
# 切换至普通用户
[root@ yjc ~ ] # su - jc、
# 创建文件
[jc@yjc ~]$ touch /tmp/test/jc_file
# 查看文件权限
[jc@yjc ~]$ ll /tmp/test/jc_file
-rw-rw-r-- 1 jc root 0 Apr 13 03:24 /tmp/test/jc_file
# 讲test目录属主和属组改为oldboy
[root@ yjc ~ ] # chown oldboy.oldboy /tmp/test/
# 查看权限
[root@ yjc ~ ] # ll -d /tmp/test/
drwxrwsrwx 2 oldboy oldboy 4096 23 Apr 13 03:21 /tmp/test/
# 切换用户
[root@ yjc ~ ] # su - jc
# 创建文件
[jc@yjc ~]$ touch /tmp/test/jc_file1
# 查看文件权限
[jc@yjc ~]$ ll /tmp/test/jc_file1
-rw-rw-r-- 1 lamp oldboy 0 6 Apr 13 03:27 /tmp/test/lamp_file1

SetGID特性

# 1.原本属组位上如果有x权限,则SetGID为 s
# 2.原本属组位上如果没有x权限,则SetGID为 S
# 3.授权方式
- chmod g+s 文件名
- chmod 2xxx 文件名
# 4.SetGID权限的数字是2000

# 主要应用场景:文件共享,以后工作中,如果遇到root用户修改不了的文件,第一反应 特殊权限

特殊权限3:SBIT

[jc@yjc ~]$ ll /tmp -d
drwxrwxrwt. 14 root root 4096 Apr 13 03:29 /tm

粘滞位权限作用特性

# 1.带有粘滞位权限的目录下的所有文件,谁都可以读、写
# 2.带有粘滞位权限的目录下的文件只有属主能删除自己的文件,其他用户无法删除
# 3.带有粘滞位权限的目录,只有root能删除
# 4.授权方式
- chmod o+t 文件名
- chmod 1xxx 文件名
# 5.SBIT权限的数字是1000
# 6.其他用户权限位上有x权限:t 没有x权限 T

*注意:/tmp目录是粘滞位目录,其他用户也有写权限

大于root的权限

# 设置这个权限
chattr
i:只能查看文件内容,无法编辑
a:只能查看和追加文件内容,无法修改或覆盖源文件内容
+:设置,增加该权限
-:取消该权限
# 查看这个权限
lsattr 文件名

umask

当我们登录系统之后,创建出的文件总是有一个默认权限就是说umask设置了用户创建文件的默认权限

# 查看当前系统默认的umask
[root@localhost ~]# umask
0022
# 修改系统默认的umask
[root@localhost ~]# umask 025
计算方法:
目录使用777 - umask
文件使用666 - umask
如果umask的位数上有奇数
文件使用666 - umask 在奇数位上加1

以上是关于权限管理二的主要内容,如果未能解决你的问题,请参考以下文章

bash作用之权限管理

linux-改变文件属主权限-chown

文件权限及管理

用户的权限管理

Linux用户组和权限管理

Linux用户组的权限管理