Linux基础之权限体系
Linux权限体系:rwx,通过这三种权限控制与保护系统,组成9为权限;
Linux权限体系中还有3位特殊权限,组合起来就是12位权限体系;
Linux折简单的rwx控制着整个Linux系统的安全,权限与用户共同组成Linux系统的安全防护体系.
r:读,数字4;
w:写,数字2;
x:执行,数字0;
Linux下面任何一个文件/目录与用户关系有三种:
所有者;
所属组;
其他;
如何快速查看文件/目录的所有者情况?ll
[root@web01 ~]# ll
-rw-------. 1 root root 1297 Dec 6 10:25 anaconda-ks.cfg
解读:第一个rwx,就属主权限;
中间的rwx,数组权限;
最后的rwx,其他权限;
如果没有对应的权限,就用-代替,数字0;
修改权限命令
chmod:change mode,可以用数字或者字母形式修改,常用数字;
chown:change owner,修改所有者,用户组;
案例:
修改mclind.txt权限为755;
修改mclind.txt所有者和用户组为mc1;
[root@web01 mclind]# ll mclind.txt
-rw-r--r--. 1 root root 875 Dec 7 17:10 mclind.txt
[root@web01 mclind]# chmod 755 mclind.txt
[root@web01 mclind]# ll mclind.txt
-rwxr-xr-x. 1 root root 875 Dec 7 17:10 mclind.txt
[root@web01 mclind]# chown mc1.mc1 mclind.txt
[root@web01 mclind]# ll mclind.txt
-rwxr-xr-x. 1 mc1 mc1 875 Dec 7 17:10 mclind.txt
chmod还可以基于字符形式的权限设置
chmod u+x
chmod u-r
chmod u=rw-
chmod a=rwx
chmod u=rw-,g=rw-
chmod ugo+x
注意:递归修改权限的参数:-R,这个选项慎用!!chmod/chown都有这个选项;
文件的rwx权限
r:是否可读文件;
w:是否可写,一般需要r权限配合;
x:是否可执行,一般需要r权限配合;
目录的rwx权限
r:是否可以读取目录内容,需要配合执行权限;
w:是否可以在目录中创建,删除,重命名文件权限,需要配合执行权限;
x:是否可以进入目录,是否可以访问目录下文件属性;
Linux默认的权限
Linux通过umask命令控制
文件:666
目录:777
减去umask的值,文件umask如果某一位是奇数,需要减去umask后这一位上还要+1
[root@web01 mclind]# umask
0022
设置umask的值,直接修改即可,但是没事别改
[root@web01 mclind]# umask 021
综上,可以用umask来控制Linux的默认权限;
特殊权限:先看示例(工作中基本不用)
[root@web01 ~]# ll -d /bin/passwd /tmp/ /bin/ssh-agent /bin/ls
-rwxr-xr-x. 1 root root 117608 8月 20 2019 /bin/ls
-rwsr-xr-x. 1 root root 27856 4月 1 2020 /bin/passwd
---x--s--x. 1 root nobody 382216 8月 9 2019 /bin/ssh-agent
drwxrwxrwt. 17 root root 4096 12月 10 19:56 /tmp/
特殊权限之set uid ===suid 4:运行这个命令相当于是这个命令的所有都的权限。例子passwd命令;
特殊权限之sticky(粘滞位)1:对于包含sticky权限的目录,每个用户都可以在目录下面创建内容,但是每个用户只能管理自己的文件;
特殊权限之set gid===sgid 2:运行这个命令时候相当于是这个命令的用户组的权限;
set uid === suid,命令的U的位置上有个s或S,对应数字是4;
sticky,目录的O的位置上有个t,对应数字是1;
set gid===sgid,命令g的位置上有个s或S,对应数字2;
添加权限举例:
[root@web01 ~]# chmod u+s /mclind/mclind.txt
[root@web01 ~]# ll /mclind/mclind.txt
-rwSr--r--. 1 root root 0 12月 10 20:18 /mclind/mclind.txt
[root@web01 ~]# chmod 6644 /mclind/mclind.txt
[root@web01 ~]# ll /mclind/mclind.txt
-rwSr-Sr--. 1 root root 0 12月 10 20:18 /mclind/mclind.txt
[root@web01 ~]# stat /mclind/mclind.txt
Linux特殊属性
目的:预防重要文件或命令被修改;
lsattr:查看这种特殊属性
chattr:修改这种特殊属性
a属性 append只能追加
i属性 immutable 不朽的,无法被毁灭的
chattr +a mclind.txt
chattr +i mclind.txt
[root@web01 ~]# lsattr /mclind/mclind.txt
---------------- /mclind/mclind.txt
[root@web01 ~]# chattr +i /mclind/mclind.txt
[root@web01 ~]# lsattr /mclind/mclind.txt
----i----------- /mclind/mclind.txt