提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Linux-文件权限管理
前言
`我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要
提示:以下是本篇文章正文内容,下面案例可供参考
二、权限分析
1.基本权限UGO
文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件
权限对象:
属主------->u
属组------->g
其他人------>o
基本权限类型:
可以用数字表示
读(read):r ---->4
写(write):w ---->2
执行: x(exec) ----->1
1.1.设置权限
chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问权限
chown:
chown 属主名.属组名 文件名 #修改文件的属主名和属组名
chown 属主名 文件名 #修改文件的属主
chown .属组名 文件名 #只修改属组名
chown -R 属主名.属组名 目录名 #递归修改 只针对目录
1.2.更改权限
使用符号:
chmod u+权限 文件名字 //属
主增加执行 chmod a=rwx 文件名 //所有人等于读写执行权限 chmod a- 文件名
//所有人都没有权限 chmod ug=rw,0=r //属主属组等于读写,其他人权限只有读
使用数字:
chmod 644 文件名
2.权限案例 UGO
2.1.设置权限
针对普通文件而言:
r:权限的效果类似于“cat"命令。
w:权限的效果类似于”echo“命令。
x:权限效果是,将文件的每行内容,当作命令进行执行。
案例分析:
针对hr部门的访问目录/home/hr设置权限,要求如下:
- root用户和hr组的员工可以读、写、执行
- 其他用户没有任何权限
代码如下(示例):
[root@linux-server ~]# groupadd hr //创建一个用户组
[root@linux-server ~]# useradd hr01 -G hr //创建hr01用户添加到hr组里
[root@linux-server ~]# useradd hr02 -G hr //创建hr02用户添加到hr组里
[root@linux-server ~]# mkdir /home/hr //在/home创建一个hr目录
[root@linux-server ~]# chown .hr /home/hr //将/home/hr目录的所属组设置为hr
[root@linux-server ~]# chmod 770 /home/hr //将/home/hr目录的权限设置为770
[root@linux-server ~]# ll -d /home/hr //查看/home/hr目录本身的权限
drwxrwx—. 2 root hr 6 Nov 1 17:11 /home/hr
2.2.rwx对文件的影响
[root@linux-server ~]# vim /home/file1
date
[root@linux-server ~]# ll/home/file1
-rw-r–r–. 1 root root 5 Nov 3 15:19 /home/file1
[root@linux-server ~]# su - alice #切换普通用户
[alice@linux-server ~]$ cat/home/file1 date
[alice@linux-server ~]$ /home/file1 #执行文件
-bash: /home/file1: Permission denied
[alice@linux-server ~]$ exit logout
[root@linux-server ~]# chmod o+x /home/file1
[alice@linux-server ~]$ /home/file1 Sun Nov 3 15:26:21 CST 2019
[root@linux-server ~]# chmod o+w /home/file1
[alice@linux-server ~]$vim /home/file1
date
123
ls
/home/file1相当于在home目录下的可执行文件,赋予执行权限的时候可以执行文件里的命令。
2.3.rwx对目录的影响
因为alice是属于其他用户,对dir10目录没有执行权限,所对没办法对目录里的文件进行修改和创建,但是他有读权限,可以读取目录里的文件,其他用户对文件有读取权限,所以可以读取文件里的内容。
文件的删除,跟用户对该文件有没有w权限无关,只跟该文件的上层目录是否有w权限有关。
这是一级一级递进关系。
r、w、x权限对文件和目录的意义
3.高级权限
3.1.高级权限的类型
suid ==== 4 提权 (只对二进制命令文件(ls cd cat等这三个命令能查看到的文件)生效,其他不管用)
sgid ==== 2 组继承 (只能对目录设置)
sticky == 1 (t权限) 权限控制
3.2.设置特殊权限
a、字符—语法:
chmod u+s file
chmod g+s dir
chmod o+t dirb、数字
chmod 4777 file
chmod 2770 dir
chmod 1770 dir
案例
suid 普通用户通过suid提权 <针对文件> 在进程文件(二进制,可执行的命令文件)上增加suid权限
[root@linux-server ~]# chmod u+s /usr/bin/cat [root@linux-server ~]#chmod u+s /usr/bin/rm [root@linux-server ~]# su - alice Last login:
Wed Nov 6 17:40:40 CST 2019 on pts/0 [alice@linux-server ~]$ cat /root/file1.txt
123
[alice@linux-server ~]$ rm -rf /root/file1.txt
相当于对普通用户目录bin,增加一个执行某些命令的权限,执行这些某些命令的时候相当于root用户。
3.2.取消权限
[root@linux-server ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62864 Nov 6 2016 /usr/bin/rm 此时一旦给rm加上suid权限之后,普通用户相当于root用户。(即提权)
[root@linux-server ~]# chmod u-s /usr/bin/rm
#取消提权