0


Linux-文件权限管理

目录

前言

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

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


Linux用户权限解析

1.基本权限UGO

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

图示:

权限对象:属主--->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:

例如:

[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 运维 服务器

本文转载自: https://blog.csdn.net/weixin_64502313/article/details/140618825
版权归原作者 蜡笔晴天 所有, 如有侵权,请联系我们删除。

“Linux-文件权限管理”的评论:

还没有评论