Linux文件权限管理全指南

一,管理目录和文件属性

 1、查看文件属性 ls -l

例:drwxr-xr-x.  3  root   root   16 May 28 09:28   home
d:文件类型
rwx:所有者的权限
r-x:所属组的权限
r-x:其他用户的权限
3:引用计数
root:所有者
root:所属组
16:大小,单位为字节B
May 28 09:28  创建时间
home    目录或者文件名

 2、文件权限 


                     读     写      执行
    字符表示    r       w       x        
    数字表示    4       2        1

  3、设置修改文件权限

             chmod命令
格式:chmod [对象][操作][权限] 文件名 或 chmod 数字 文件名
# 符号方式:给所有者添加执行权限,移除其他人的写权限
chmod u+x,o-w file.txt  

# 数字方式:设置权限为rwxr-xr--(所有者7,组5,其他人4)
chmod 754 file.txt  

# 对目录递归设置权限(所有子文件/目录继承)
chmod -R 750 /data  

            3.1 使用数值改变文件的权限
                chmod  777  test1   ---给test1文件的所有者、所属组、其他用户全部给与读写执行的权限。
            3.2 使用字母来改变文件的权限
                    -----参数设置
                a 所有用户
                u 创建者
                g 同组用户
                o 除去创建者和同组用户之外的用户
                + 增加权限 
                -  清除权限 
                = 设置唯一权限 
                     -----常用设置
                g+w -- 增加组用户的写权限 
                o-rwx -- 清除其他用户的全部访问权限 
                u+x -- 允许文件属主执行文件 
                a+rw -- 允许所有用户读和写文件 
                ug+r -- 允许文件属主和属组用户读文件 
                g=rx -- 设置属组用户只能读和执行文件(不可写)
                通过增加 -R 参数,可以改变整个目录树的权限。
                chmod o+w test2     ---给test2文件的其他用户添加写的权限
                chmod go-rw test3   ---给test3文件的所属组和其他用户移除读写权限
                chmod a-rw test4     ---给test4文件所有的用户移除读写权限
                chmod -R  g+w /home/test5/
                    给home目录下面的test5目录下所有的文件和目录的所属组添加写的权限

  4、修改目录或文件的所有者或者所属组


            chown 设置文件或者目录的所有者
            chgrp   设置文件或者目录的所属组
                -R:递归
                chown 【所有者】 【文件】
                chown  【所有者】:【所属组】  【文件】
            例子:chown linux     /home/test6
                      chown linux:linux  /home/test7
                      chgrp  linux   /home/test8
                      chgrp  -R linux   /home/test9/

5. 特殊权限


1.suid(u+s)  应用于二进制文件,调用二进制文件的所有者的身份来执行
  • 原理:当一个可执行文件设置 SUID 后,普通用户执行该文件时,会临时获得文件所有者的权限(而非执行者自身权限)。

  • 典型场景passwd命令(路径/usr/bin/passwd),其所有者是 root,且设置了 SUID。普通用户执行passwd时,会临时获得 root 权限,从而修改/etc/passwd(仅 root 可写的文件)。

# 符号方式:给文件添加SUID
chmod u+s /usr/bin/myprogram  

# 数字方式:SUID对应数字4,权限格式为4位(4xxx)
chmod 4755 /usr/bin/myprogram  # 4(SUID)+ 755(基础权限)
  • 注意

    • 仅对可执行文件有效(对目录无效)。
    • 危险操作:避免对rmbash等命令设置 SUID,可能导致权限滥用。
2. SGID(Set Group ID,g+s
  • 原理

    • 可执行文件:执行时临时获得文件所属组的权限。
    • 目录:在该目录下新创建的文件 / 目录,会继承目录的所属组(而非创建者的主组),适合团队共享目录(确保组内成员可访问新文件)。
  • 典型场景:团队共享目录/project,设置 SGID 后,无论谁在该目录创建文件,所属组都是project_team,避免组权限混乱。

  • 配置方法

# 符号方式:给目录添加SGID
chmod g+s /project  

# 数字方式:SGID对应数字2,权限格式为4位(2xxx)
chmod 2775 /project  # 2(SGID)+ 775(基础权限)
3. Sticky Bit(o+t
  • 原理:仅对目录有效,设置后,目录中的文件仅能被所有者root删除,其他用户即使有写权限也无法删除不属于自己的文件。

  • 典型场景:公共临时目录/tmp,所有用户可读写,但不能删除他人文件(默认已设置 Sticky Bit)。

  • 配置方法

# 符号方式:给目录添加Sticky Bit
chmod o+t /public  

# 数字方式:Sticky Bit对应数字1,权限格式为4位(1xxx)
chmod 1777 /public  # 1(Sticky)+ 777(基础权限)
特殊权限的查看

ls -l的权限字符串中,特殊权限显示在基础权限的对应位置:

 
  • SUID:所有者的执行位显示s(若原无 x 权限则显示S)。
  • SGID:组的执行位显示s(若原无 x 权限则显示S)。
  • Sticky Bit:其他人的执行位显示t(若原无 x 权限则显示T)。
 

示例:

 
  • rwsr-xr-x:文件设置了 SUID(所有者执行位为s)。
  • rwxr-sr-x:目录设置了 SGID(组执行位为s)。
  • rwxrwxrwt:目录设置了 Sticky Bit(其他人执行位为t
默认情况下,root用户新建一个新的目录,该目录默认的访问权限为755
root用户新建一个文件,该文件默认的访问权限为644
普通用户新建一个新的目录,该目录默认的访问权限为775
普通用户新建一个文件,该文件默认的访问权限为664
root用户的默认umask值为0022
普通用户默认的umask值为0002

ACL权限
给特定的用户或组对特定的文件或者目录赋予特定的权限
只允许admin用户对文件a有读写权限
setfacl -m u:admin:rw  a
只允许lisi组对文件a有读写权限
setfacl -m g:lisi:rw  a
只允许admin用户对目录b/有读写权限
setfacl -m u:admin:rwx  b/
只允许lisi组队目录b/有读写权限
setfacl -m g:lisi:rwx  b/
只允许admin用户对目录b/有读写权限,且在目录b/下新建的文件或目录
继承目录b/的权限
setfacl -m u:admin:rwx b/
setfacl -m d:u:admin:rwx b/
删除目录b/的default权限(删除继承)
setfacl  -k  b/
删除文件a的acl权限
setfacl -b  a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值