Linux之特殊权限及facl

本文深入解析Linux系统的suid、sgid、sticky等特殊权限,探讨这些权限如何增强文件和目录的安全性和灵活性。同时,介绍了使用getfacl和setfacl命令进行高级权限控制的方法。

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

Linux特殊权限

Linux引入suid、sgid、sticky这三种特殊权限,能够更加方便、有效和安全地控制文件。

    当在一个目录或文件上加入suid特殊权限时,如过原来目录或文件的属主具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替x。

同样,sgid和suid相同,如过原来目录或文件的属组具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替X。

    同样,如果在一个文件或目录上加入sticky权限时,若原文件或目录的其他用户有x(可执行)权限时,就用小写t代替x;如果原文件或目录没有x权限时,就用大写T替代x权限

getfacl 文件名 查看ACL权限  (ACL权限是为了防止权限不够用的情况)
setfacl 选项 文件名 -m设定ACL权限 -x删除指定的ACL权限 -b删除所有ACL权限
-d设置默认的ACL权限 -k删除默认ACL权限 -R 递归设定ACL权限
setfacl -m u:用户名:rx [文件名] g组 setfacl -x g:txt 删除TXT组的ACL权限
mask最大权限 赋予权限与最大权限才是用户的真权限 setfacl -m m:rx 最大权限读执行
setfacl -m u:用户名:权限 -R 目录 递归目录下所有文件linux目录也是文件
setfacl -m d:u:用户名:权限 -R 文件 d默认 default 之后创建文件都有此权限
默认权限 递归都赋予目录的
SETUID 让普通用户暂时变成超级用户,执行完变回普通用户 u用户(必须二进制文件,不针对目录) 例usr/bin/passwd
chmod 4755 4 代表的是SUID 
SetGID 例/usr/bin/locate chmod 2777 2代表SGID 针对目录文件,针对目录普通必须有xr权限
Sticky BIT SBIT chmod 1777 针对目录 普通用户必须有xr权限 目的,有粘着位,普通用户只能删除自己的文件,不能删除其他用户原件 例子 ll -d /temp
chattr 文件系统属性权限 chattr [-RVf][+-=] 文件或目录 
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-V 显示指令执行过程。
-f 显示错误信息。
1、i 针对文件任何用户不能修改删除添加(包过ROOT),针对目录,可以修改目录下已有文件的数据,但不能新建或删除 目录下的子目录下可以操作。echo 123 >>/tmp/game/a1 往A1添加123 echo >/game/a1 用空白覆盖(1字节) cat /dev/null > a1(0字节) chattr +i /etc/resolv.conf


2、a (锁定现有文件)针对文件只可以用echo增加,针对目录可以新建和修改文件,但不能删除
lsattr -a 文件名 查看文件系统属性 -d 只列出目录,不列出子文件
sudo 赋予普通用户root 权限
visudo 相当于修改/etc/sudoers文件
linux ALL=(ALL) /sbin/shuadown -r now
用户 IP或主机=身份用户 重启的权限
查看sudo权限 sudo -l
执行的时候 sudo /sbin/shuadown -r now

可以chmod的字符或数字的方式修改特殊权限,下例以数字方式实现。

 # -rw-r--r-- 1 root root 0 Nov  6 07:40 test1  ugo都没执行权限 
# chmod 7644 test1                            原权限是644,都加上特殊权限 
# -rwSr-Sr-T 1 root root 0 Nov  6 07:43 test1  属主、属组、其他用户执行权限变为S、S、T. 
  
# -rwxr-xr-x 1 root root 0 Nov  6 07:43 test2  ugo都有执行权限 
# chmod 7755 test2                            原权限是655,都加上特殊权限 
# -rwsr-sr-t 1 root root 0 Nov  6 07:49 test2  属主、属组、其他用户执行权限变为s、s、t. 
  
特殊权限对可执行文件的作用: 
suid特殊权限是以可执行文件的所有者的权限来运行这一文件,不是以执行者的权限运行该命令。 
sgid特殊权限是以可执行文件的群组的权限来运行这一文件。下例说明: 
ls -l /bin/ping
-rwsr-xr-x 1 root root 35832 Apr 24  2009 /bin/ping
可见ping命令有suid特殊权限。ping可以测试网络是否连通。切换到yaoyao用户,ping一下可见网络确实连通。 
[yaoyao@localhost test2]# ping www.baidu.com -c4 
PING www.linuxidc.com (61.135.169.121) 56(84) bytes of data. 
64 bytes from 61.135.169.121: icmp_seq=1 ttl=47 time=10.0 ms 
64 bytes from 61.135.169.121: icmp_seq=2 ttl=46 time=14.3 ms 
64 bytes from 61.135.169.121: icmp_seq=3 ttl=46 time=17.7 ms 
64 bytes from 61.135.169.121: icmp_seq=4 ttl=46 time=23.9 ms 
  
--- www.linuxidc.com ping statistics --- 
4 packets transmitted, 4 received, 0% packet loss, time 3000ms 
rtt min/avg/max/mdev = 10.090/16.539/23.938/5.067 ms 
切换到root用户,用chmod命令去掉ping命令的suid权限,再切换到yaoyao用户,测试一下是否能ping通。 
# chmod u-s /bin/ping 
# ls -l /bin/ping 
# -rwxr-xr-x 1 root root 35832 Apr 24  2009 /bin/ping 
$ $ ping www.baidu.com 
  ping: icmp open socket: Operation not permitted 
这次就无法ping通,由此可见,suid特殊权限是以可执行文件的所有者的权限来运行这一文件,不是以执行者的权限运行该命令。 
  
特殊权限对目录的作用: 
在一个目录上设置了sticky特殊权限,只有文件的所有者和用户才能删除该目录的文件,而不理会属组和其他用户的写权限。 
在一个目录上设置sgid特殊权限,则只要是同组成员,都可以在此目录查看、创建、删除文件。 
经常会对目录设置sticky和suid权限以方便管理。即同组成员可以查看和写入本目录下的各个文件,却不能删除。如下: 
首先创建两个用户xiaoyao和linuxidc用于测试,再创建一个house目录。创建一个love分组,于是xiaoyao和linuxidc便相爱了...将这对恋人xiaoyao和linuxidc加入love分组,house目录属组设置为love,再给house目录设置sgid和sticky这两个特殊权限。 
  
# useradd xiaoyao 
# useradd linuxidc 
# mkdir house 
# groupadd love 
  
将xiaoyao和linuxidc加入love组内。 
# usermod -G love xiaoyao 
# usermod -G love linuxidc 
  
#id xiaoyao;id linuxidc 
 uid=503(xiaoyao) gid=504(xiaoyao) groups=504(xiaoyao),506(love) context=root:system_r:unco nfined_t:SystemLow-SystemHigh 
 uid=504(linuxidc) gid=505(linuxidc) groups=505(linuxidc),506(love) context=root:system_r:u nconfined_t:SystemLow-SystemHigh    可以看到用户xiaoyao和linuxidc都在love组内。 
  
将house目录属组改为love组 
# chown :love house 
# ls -l 
  drwxr-xr-x 2 root love 4096 Nov  6 09:34 house 
  
添加sgid和sticky特殊权限,并且属组具有写权限(属组内用户可以创建文件,否则不能)。 
# chmod 3775 house 
  drwxr-sr-t 2 root love 4096 Nov  6 09:34 house 
  
切换到用户linuxidc,并创建文件xiaoming,写入一句话"I love you"
$ echo "I love you xiaoyao." > linuxidc 
  
切换到用户xiaoyao,创建文件xiaoyao,且写入"Me too."
$ echo "Me too" > xiaoyao 
  
查看house目录内容,可发现所创建文件属组都是love。 
ls -l 
 -rw-rw-r-- 1 linuxidc love 19 Nov  6 09:40 linuxidc 
 -rw-rw-r-- 1 xiaoyao  love  6 Nov  6 09:41 xiaoyao 
  
用户xiaoyao尝试删除house目录下的linuxidc,这时提示不允许,但可以写入,这就是共享信息吧。 
[xiaoyao@localhost house]$ rm linuxidc 
rm: cannot remove `linuxidc': Operation not permitted 
$ echo "Baby." >> linuxidc 
$ cat linuxidc 
  Me too. 
  Baby.

facl

 facl基于文件的访问控制列表 优先级比ugo高

想要使用fac首先需要检测文件系统(分区)是否支持facl
tune2fs -l /dev/sda3 | grep acl
Default mount options:    user_xattr acl

让不支持acl的分区支持
mount -o remount,acl /boot/

查看文件是否设置有facl
ll
总用量 16
-rw-rw-rw-+ 1 user1 user1 4 11月  4 16:54 1.txt

上例中如果有+号表示设置了facl

查看文件是否设置了facl
getfacl  a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
        -m 修改facl
        -x 删除某条facl
        -b 删除所有的facl
        -d 设置目录默认的facl
        -R 表示递归设置

设置facl 针对a.txt文件为redhat用户设置特殊的权限
setfacl  -m u:redhat:rwx a.txt

getfacl  a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
user:redhat:rwx
group::r--
mask::rwx
other::r--

setfacl  -m u:user1:r-x a.txt

取消user1的facl
setfacl  -x u:user1 a.txt

取消所有用户的facl
setfacl -b  a.txt

基于组的设置
setfacl  -m g:IT:rwx a.txt

目录的facl
目录的default facl针对目录有效  此设置对目录本身无意义  其它人在此目录下创建的文
件都继承用户对目录设置的facl

设置目录的facl
setfacl  -m d:u:redhat:rwx  test/

effective 最终效果

设置掩码
setfac -m m::rw  /tmp/test/1.txt

 

<think>好的,我现在需要帮用户推荐适合油性皮肤的防晒霜。首先,我得确认用户的需求。用户提到“油皮”,所以重点应该放在控油、清爽不黏腻的防晒产品上。可能还需要考虑是否容易导致痘痘,因为油皮容易长痘。 接下来,我需要回想一下常见的适合油皮的防晒霜成分和品牌。化学防晒通常比较清爽,但有些可能含有酒精,可能会刺激皮肤。物理防晒虽然温和,但可能会有泛白的问题,不过现在有些产品改进了质地。物化结合的防晒可能是一个平衡的选择。 然后,用户可能对防晒指数有要求,比如SPF和PA值。一般日常使用SPF30+到50+,PA+++或更高比较合适。另外,是否需要防水防汗,如果用户经常出汗或者进行户外活动,这点也很重要。 还要注意用户的肤质是否敏感,如果敏感的话,可能需要无香料、无酒精的配方。但用户只提到油皮,没有提到敏感,所以可能不需要特别强调这点,但最好还是提一下,让用户自己判断。 接下来,整理一些常见推荐的产品。比如,资生堂的蓝胖子可能适合户外,控油效果好;安热沙的小金瓶也是经典,但有些人觉得有点油,可能更适合混合肌?或者新版有没有改进?碧柔的清爽型防晒,价格亲民,适合日常使用。理肤泉的绿标适合油痘肌,可能含有控油成分。还有像Elta MD的物理防晒,适合敏感油皮。 然后,需要考虑使用防晒霜的正确方法。比如,用量要足够,一枚硬币大小,涂抹均匀,需要补涂,尤其是出汗或游泳后。卸妆的问题,有些防晒霜需要卸妆产品才能彻底清洁,避免堵塞毛孔,引发痘痘。 另外,用户可能有其他需求,比如是否需要润色效果,或者是否可以当作妆前乳使用。这些可能不是主要需求,但可以稍微提一下,供用户参考。 可能还需要提醒用户,即使防晒霜控油,日常的护肤步骤也要注意,比如使用清爽的保湿产品,避免过度清洁,以免刺激皮肤分泌更多油脂。 最后,要确保推荐的产品尽量涵盖不同价位,满足不同预算的用户需求。同时,建议用户先做皮肤测试,特别是如果容易长痘的话,可以在耳后或手腕内侧试用,确认不会引起过敏或堵塞毛孔。 总结一下,推荐的产品应该具备:清爽质地、控油成分、适合的防晒指数、不易致痘,并且使用后不泛白或黏腻。同时,正确的使用方法和护肤步骤也很重要,帮助用户维持皮肤健康。</think>为油性皮肤选择防晒霜时,需重点关注**清爽控油、不黏腻、不易致痘**的特性。以下是具体推荐及使用建议: --- ### **一、防晒霜推荐清单** #### 1. **化学防晒类(质地轻薄)** - **资生堂蓝胖子(新艳阳夏臻效水动力防晒乳)** $$ SPF50+ \quad PA++++ $$ 特点:遇水增强技术,防水防汗,含酒精(敏感肌慎用),成膜快,控油效果显著,适合户外活动。 - **Biore碧柔清爽水感防晒霜** $$ SPF50+ \quad PA++++ $$ 特点:含酒精与吸油粉末,水感啫喱质地,平价适合日常通勤,但防水性较弱。 #### 2. **物理/物化结合类(温和低刺激)** - **Elta MD UV Clear 无油防晒霜** $$ SPF46 \quad PA+++ $$ 特点:含氧化锌+透明质酸,无油配方,轻微润色,适合油痘肌,敏感肌友好。 - **FANCL芳珂物理防晒霜** $$ SPF50+ \quad PA++++ $$ 特点:纯物理防晒(氧化锌+二氧化钛),无酒精香料,泛白较明显,需少量多次涂抹。 #### 3. **控油抗痘类** - **理肤泉绿标防晒(特护清莹防晒乳)** $$ SPF50+ \quad PA++++ $$ 特点:含神经酰胺与控油成分,哑光质地,适合油痘肌,防水性强。 - **ISDIN怡思丁抗老防晒水** $$ SPF50 \quad PA+++ $$ 特点:无酒精,含玻尿酸与抗氧化成分,水感乳液质地,适合日常抗光老化。 --- ### **二、油皮防晒关键指标** 1. **质地**:优先选择“Gel-Cream(啫喱霜)”“Fluid(水感)”或“Matte(哑光)”标识。 2. **成分**:含**硅石、氧化锌、酒精(非敏感肌)**帮助吸附油脂;避免**矿油、羊毛脂**等封闭性成分。 3. **防晒剂类型**: - 化学防晒:更轻薄,但需注意刺激性。 - 物理防晒:温和但可能泛白,需选择纳米级氧化锌改良款。 --- ### **三、使用技巧** 1. **用量**:全脸约**1元硬币大小(1~1.2ml)**,分两次涂抹减少黏腻感。 2. **成膜前**:避免立刻上妆,等待**3~5分钟**。 3. **补涂**:每**2~3小时**用防晒喷雾或轻拍防晒乳补涂,避免破坏妆面。 4. **清洁**:防水型防晒需用**卸妆油/膏**彻底清洁,避免残留致痘。 --- ### **四、油皮护肤搭配建议** - **晨间步骤**:清水洁面 → 清爽控油精华(如含烟酰胺、PCA锌) → 防晒霜。 - **夜间修复**:使用含**水杨酸**或**壬二酸**的护肤品,疏通毛孔,预防防晒闷痘。 --- ### **五、避雷提醒** - 避免含**高浓度酒精**的防晒(如部分日系产品),长期使用可能破坏屏障。 - 慎选“滋润型”或“保湿型”防晒,易加重油光。 --- **试用建议**:先在耳后或下颌线试用,观察是否引发闭口或过敏。若有化妆需求,可选择带润色效果的防晒(如Elta MD或DR.G绿色款),简化护肤步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值