文件权限Ⅱ

本文详细介绍了Linux系统中的高级权限,包括Set UID、Set GID和Sticky Bit,以及如何设置这些特殊权限。同时,讲解了普通用户修改密码的机制,并探讨了通过sudo和suid给普通用户提权的方法。此外,还拓展了文件属性chattr的使用和进程掩码umask对新建文件权限的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 高级权限

高级权限

suid 二进制文件(可执行文件 )提权,提权后,普通用户将拥有root权限

sgid 目录提权

sticky 目录

问题1: 为什么会失败!

[root@youngfit ~]# ll /root/file1.txt  
-rw-r--r-- 1 root root 4 7月  27 14:14 /root/file1.txt

[alice@youngfit ~]$ cat /root/file1.txt
cat: /root/file1.txt: 权限不够

分析: root /usr/bin/cat (root) /root/file1.txt OK

​ alice /usr/bin/cat (alice) /root/file1.txt

普通用户修改密码: alice /usr/bin/passwd (root) /etc/shadow

1.1.高级权限的类型

suid 4

sgid 2

sticky 1 粘滞位

1.2.设置特殊权限
a、字符
chmod u+s file   //suid

chmod g+s dir    //sgid

chmod o+t dir    //sticky
b、数字
chmod 4777 file   第一个数字为高级权限,剩下的为UID权限

chmod 7777 file 

chmod 2770 dir 

chmod 3770 dir

示例1:suid 普通用户通过suid提权 <针对文件>

在进程文件(二进制,可执行)上增加suid权限

[root@youngfit ~]# chmod u+s /usr/bin/cat

[root@youngfit ~]# chmod u+s /usr/bin/rm

[alice@youngfit ~]$ cat /root/file1.txt

首先创建一个用户组,两个用户进行这三个案例操作

Set UID

当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID。那么这个特殊权限的特殊性的作用是什么呢?
1、SUID权限仅对二进制程序(binary program)有效;
2、启动为进程之后,其进程的属主为原程序文件的属主;
3、执行者将具有该程序拥有者(owner)的权限。

案例:

[root@youngfit home]# ll /usr/bin/rm
-rwxr-xr-x. 1 root root 62864 Nov  6  2016 /usr/bin/rm
[root@youngfit home]# chmod u+s /usr/bin/rm
此时普通用户只能删除权限之内的文件
一旦给rm加上suid权限之后,普通用户相当于root用户。(即提权)
Set GID

把s放到文件的所属用户组x位置上的话,就是SGID。
那么SGID的功能是什么呢?和SUID一样,只是SGID是获得该程序所属用户组的权限。
这相SGID有几点需要我们注意:
*:SGID主要用在目录上
如果用户在此目录下具有w权限的话,若使用者在此目录下建立新文件,则新文件的群组与此目录的群组相同。

也就是继承原先目录的权限,所属用户为当前创建文件的用户。

案例:

[root@localhost ~]# mkdir /opt/dir1
[root@localhost ~]# groupadd hr
[root@localhost ~]# chmod 775 /opt/dir1/
[root@localhost ~]# ll -d /opt/dir1/
drwxrwxr-x. 2 root root 6 Jul 19 15:20 /opt/dir1/
[root@localhost ~]# chown .hr /opt/dir1/
[root@localhost ~]# chmod g+s /opt/dir1/
drwxr-sr-x. 2 cui hr 34 Dec 27 10:03 /opt/dir1/    //如果原先没有执行权限,则显示S
[root@localhost ~]# ll -d /opt/dir1/
drwxrwsr-x. 2 root root 6 Jul 19 15:20 /opt/dir1/
[root@localhost ~]# touch /opt/dir1/a.txt
-rw-rw-r--. 1 alice hr 0 Jul 19 15:23 /opt/dir1/a.txt
Sticky Bit

这个就是针对others来设置的了,和上面两个一样,只是功能不同而已。
SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。

[root@youngfit home]# cd /home/
[root@youngfit home]# mkdir dir2
[root@youngfit home]# chmod 777 dir2/				//确保其他人能操作目录
[root@youngfit home]# chmod o+t dir2/				//给予dir1目录Sticky 
[root@youngfit home]# ll -d dir1/
drwxrwxrwt 2 root root 4096 Jul 13 16:09 dir1/
[alice@youngfit dir2]$ touch  alice.txt				//用户alice在/home/dir2创建一个文件
[jack@youngfit dir2]$ touch jack.txt				//用户jack在/home/dir2创建一个文件
测试alice删除jack创建的文件,无法删除
1.3.普通用户可以修改密码:

alice /usr/bin/passwd /etc/shadow

[alice@youngfit ~]$ ll /etc/shadow
 ---------- 1 root root 1487 6月   4 13:43 /etc/shadow  
 
[alice@youngfit ~]$ ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 2月  17 2012 /usr/bin/passwd

[alice@youngfit ~]$ passwd

更改用户 alice 的密码 。

为 alice 更改 STRESS 密码。

(当前)UNIX 密码:

[root@youngfit ~]# ps aux |grep passwd root 3674 0.0 0.0 165764 1884 pts/1 S+ 14:34 0:00 passwd

=======================================================

1.4.目前两种给普通用户提权手段:

sudo: 了解,有针对性,例如针对某个用户以能够以root的身份执行某些命令。

vim /etc/sudoers

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YhbntNst-1584535330701)(C:\Users\崔成jie\AppData\Roaming\Typora\typora-user-images\image-20191227112202708.png)]

suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。

提权,以root身份在执行

====================================================

小知识:注意以下目录的正确权限,否则会导致程序不能正常运行

[root@wangcy ~]# ll -d /tmp /var/tmp/

drwxrwxrwt 14 root root 4096 07-26 10:15 /tmp drwxrwxrwt 2 root root 4096 07-24 19:02 /var/tmp/HTML>

====================================================

二.文件属性 chattr【拓展】

文件权限管理之: 文件属性

2.1. 文件属性添加与查看

注:设置文件属性(权限),针对所有用户,包括root

[root@youngfit ~]# touch file100 file200 

[root@youngfit ~]# lsattr file100 file200 

-------------e- file100

-------------e- file200

-------------e- file300

[root@youngfit ~]# man chattr

[root@youngfit ~]# chattr +a file100 		//不允许修改》,只允许追加》》
[root@youngfit ~]# chattr +i file200 		//不允许做任何操作


[root@youngfit ~]# lsattr file100 file200 

  -----a-------e- file100

 ----i--------e- file200



[root@youngfit ~]# echo 111 > file100			     //以覆盖的方式写入

bash: file100: Operation not permitted
[root@youngfit ~]# rm -rf file100 
rm: cannot remove `file100': Operation not permitted
[root@youngfit ~]# echo 111 >> file100			    //以追加的方式写入,例如日志文件

[root@youngfit ~]# echo 111 > file200
bash: file200: Permission denied
[root@instructor ~]# echo 111 >> file200
bash: file200: Permission denied
[root@youngfit ~]# rm -rf file200 
rm: cannot remove `file200': Operation not permitted

[root@youngfit ~]# chattr -a file100
[root@youngfit ~]# chattr -i file200


=====================================================

三.进程掩码umask[拓展]

文件权限管理之: 进程umask

进程 新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限

shell (vim,touch) =umask> 新文件或目录权限 vsftpd =umask> 新文件或目录权限 samba =umask> 新文件或目录权限 useradd =umask> 用户HOME

用处:临时限制或者增加用户的权限

目录777-0022 文件666-0022

示例1: 在shell进程中创建文件

[root@youngfit ~]# umask 			                        //查看当前用户的umask权限
0022
[root@youngfit ~]# touch file800
[root@youngfit ~]# mkdir dir800
[root@youngfit ~]# ll -d dir800 file800 
drwxr-xr-x. 2 root root 4096 3月  11 19:40 dir800
-rw-r--r--. 1 root root    0 3月  11 19:40 file800

示例2:修改shell umask值(临时)

[root@youngfit ~]# umask 000					//将umask修改为000
[root@youngfit ~]# mkdir dir900
[root@youngfit ~]# touch file900
[root@youngfit ~]# ll -d dir900 file900 
drwxrwxrwx. 2 root root 4096 3月  11 19:44 dir900
-rw-rw-rw-. 1 root root    0 3月  11 19:44 file900

示例3:修改shell umask值(永久 建议不要)
[root@youngfit ~]# vim /etc/profile   				//vim打开/etc/profile文件,永久修改
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002     
else
    umask 022
fi
[root@youngfit ~]# source /etc/profile       //立即在当前shell中生效

示例4:通过umask决定新建用户HOME目录的权限

[root@youngfit ~]# vim /etc/login.defs 	//vim打开此文件。修改用户家目录默认权限
UMASK           077
[root@youngfit ~]# useradd gougou
[root@youngfit ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月  11 19:50 /home/gougou/

[root@youngfit ~]# vim /etc/login.defs
UMASK           000
[root@youngfit ~]# useradd yangyang
[root@youngfit ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月  11 19:53 /home/yangyang/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值