Linux-文件权限管理

目录

目录

前言

Linux用户权限解析

1.基本权限UGO

1.1 设置权限:

 2.高级权限

 2.1 suid

2.2  sgid

2.3 sbit

2.4 sudo给普通用户提权

3.特殊权限

4.隐藏权限

总结

前言

linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要。

文件权限大致分为基本权限、高级权限、特殊权限和隐藏权限,下面依次从这四个方面介绍。


Linux用户权限解析

1.基本权限UGO

文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件

图示:

Linux-文件权限管理_第1张图片

 权限对象:属主--->u;属组--->g; 其他人--->o;

权限类型:r(读)、w(写)、x(执行)

例如:

r w x        rw-        r--       alice   hr    file1.txt

前面三个“rwx”表示属主权限,随后的“rw-”表示属组权限,最后的“r--”表示其他人权限。

alice表示属主,hr是属组,file1.txt是文件名。

1.1 设置权限:

chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问权限

更改文件的属主(拥有者)、属组 (所属组)

chown

[root@linux-server ~]# chown alice.hr file1.txt  #修改属主、属组
[root@linux-server ~]# chown tom  file1.txt  #修改属主
[root@linux-server ~]# chown .it file1.txt   #只改属组
[root@linux-server ~]# chown -R alice.hr dir1 #递归修改---针对目录

 更改权限

使用符号:

chmod:

Linux-文件权限管理_第2张图片

例如: 

[root@linux-server ~]# chmod u+x file1.txt     #属主增加执行权
[root@linux-server ~]# chmod a=rwx file1.txt   #所有人等于读写执行
[root@linux-server ~]# chmod a=- file1.txt     #所有人都没有权限
[root@linux-server ~]# chmod ug=rw,o=r file1.txt  #属主属组等于读写,其他人只读

 使用数字:

 r--->4;w--->2;x--->1;

例如:

[root@linux-server ~]# chmod 644 file1.txt     #给file1.txt文件rw,r,r权限,使用数字时只能三个权限一起赋,不存在chmod  6  file1.txt。

 2.高级权限

 2.1 suid

给命令加权,使普通用户也可像root用户一样使用该命令。

用法:

1.使用which命令查看命令位置,如cat命令:which   cat,查出cat位置为:/usr/bin/cat

2.chmod  u+s  /usr/bin/cat,执行后普通用户也可执行cat命令。

取消提权:

chmod u-s /usr/bin/cat

2.2  sgid

给目录授权让在该目录下创建的文件自动继承该目录的属组。

[root@linux-server ~]# mkdir /opt/dir1  #创建目录
[root@linux-server ~]# groupadd hr  #创建一个组
[root@linux-server ~]# chmod 775 /opt/dir1/  #设置权限
[root@linux-server ~]# ll -d /opt/dir1/    #查看权限
drwxrwxr-x. 2 root root 6 Nov  6 21:26 /opt/dir1/
[root@linux-server ~]# chown .hr /opt/dir1/  #设置属组
[root@linux-server ~]# chmod g+s /opt/dir1/  #设置sgid
[root@linux-server ~]# ll -d /opt/dir1/
drwxrwsr-x. 2 root hr 6 Nov  6 21:26 /opt/dir1/
[root@linux-server ~]# touch /opt/dir1/a.txt
[root@linux-server ~]# ll /opt/dir1/a.txt
-rw-r--r--. 1 root hr 0 Nov  6 21:33 /opt/dir1/a.txt    #继承了/opt/dir1目录的属组

2.3 sbit

SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。

用法:chmod o+t 目录名

案例:

[root@linux-server ~]# cd /home/
[root@linux-server home]# mkdir dir2
[root@linux-server home]# chmod 757 dir2/
[root@linux-server home]# chmod o+t dir2/
[root@linux-server home]# ll -d dir2/
drwxr-xrwt. 2 root root 52 Oct 31 16:49 dir2/
[root@linux-server home]# useradd jack  #创建用户
[root@linux-server home]# su - alice 
Last login: Wed Nov  6 21:48:12 CST 2019 on pts/2
[alice@linux-server ~]$ touch /home/dir2/alice.txt  #用户alice创建文件
[alice@linux-server ~]$ exit
logout
[root@linux-server home]# su - jack 
Last login: Wed Nov  6 21:48:36 CST 2019 on pts/2
[jack@linux-server ~]$ touch /home/dir2/jack.txt   #用户jack创建文件
[jack@linux-server ~]$ rm -rf /home/dir2/alice.txt 
rm: cannot remove ‘/home/dir2/alice.txt’: Operation not permitted
测试jack删除alice创建的文件,无法删除

2.4 sudo给普通用户提权

用法:使用visudo或vim /etc/sudoers打开系统文件,使用vim编辑该文件,在root  ALL=(ALL)  ALL下面按照该格式把要提权的用户写入文件,如:“Jack  ALL=(ALL) ALL”,若实现无密码登入,则“Jack  ALL=(ALL) NOPASSWD:ALL”,使用“visudo  -c” 检查语法是否正确,然后输入sudo提权,执行后Jack用户便可像root一样使用命令。

目前给普通用户提权的手段:

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时,都是以root身份在执行。
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。

3.特殊权限

查看 a.txt 权限:getfacl  a.txt

setfacl :针对个人设置权限,给一个人查看一个文件的权限

如:setfacl -m  u:xiaoming:rwx  /tmp/a.txt   #给xiaoming用户对 /tmp/a.txt 文件的读写执行权限

回收权限:

1.setfacl -m  u:xiaoming:r--  /tmp/a.txt   #重新赋权

2.setfacl -b a.txt   #回收所有特殊权限

3.setfacl -x u:xiaoming a.txt

4.setfacl -m : :  rwx  a.txt

4.隐藏权限

查看隐藏权限:lsattr  文件名

用法:

chattr +a file1  #不允许修改文件内容,只允许追加内容

chattr +i file2  #不允许做任何操作

chattr +A file3  #不修改文件的最后访问时间

查看文件的最近访问、最近更改、最近改动时间:stat  文件名


总结

本文简单介绍了在Linux中,用户的基本权限,高级权限,特殊权限和隐藏权限的相关用法.

你可能感兴趣的:(linux,运维,服务器)