【Linux】系统文件的权限管理
1.系统权限的详解
1.1查看系统权限
使用ls -l 文件 查看文件权限;ls -l 目录 查看目录里文件权限
使用ls -ld 目录 查看目录权限
1.2系统权限构成
系统权限由r,w,x三类权限构成
w权限在创建目录时要与x权限一起用才能运行
------------------------------------------------------------------------------------------------
系统权限面向三种对象
user:文件拥有者,缩写u
group:文件拥有组,缩写g
other:其他用户,缩写o
------------------------------------------------------------------------------------------------
系统权限组成分析
1.3文件属性
文件的属性被称为元数据,一种元数据用1个byte记录内容
1.4修改文件或目录的所有者和属组归
chown username file //更改文件拥有者
chgrp groupname file //更改文件拥有组
chown username:groupname file //同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir //更改目录本身及目录中内容的拥有者或者拥有组--递归
1.5设定文件或目录权限
chmod //设定文件权限
chmod --reference=file dir/file2
chmod -R --reference=file dir/
--------------------------------------------------------------------------------------------------------------------------
ugoa:表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即
u+g+o)
+或-或=:表示设置权限的操作动作,+代表添加;-代表取消;=表示只赋予给定的权限,并取消原
有的权限。
nnn:用数字表示权限
2.特殊权限
在Linux系统中,用户对文件或目录的访问权限除了r、w、x三种一般权限外,还有SET
UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。
2.1SUID(Set UID)
suid仅对二进制文件有效,在执行过程中,调用者会暂时获得该文件的所有者权限.
该权限只在程序执行的过程中有效
chmod u+s /bin/cat 或 chmod 4770 /bin/cat
2.2SGID(Set GID)
文件: 如果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将会变成该程序文件的所属组。
目录:如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的所属组, 将会是此 A
目录的所属组
chmod g+s /sc 或 chmod 2770 /sc
把SGID设置在A目录上
把SGID设置在二文件上
2.3Sticky Bit粘制位
它限制了用户对目录中文件的删除 和重命名操作,只有满足特定条件的用户才能执行这些操作。
在 具 有 SBit 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件
或目录时, 只有文件拥有者与 root 才有权力删除。
chmod o+t dir 或 chmod 1777 dir //设置粘制位权限
2.4设置特殊权限
为文件或目录添加三种特殊权限同样可以通过chmod命令来实施,使用“u±s”、“g±s”、“o±t”的字符权
限模式分别用于添加和移除SUID、GUID、sticky权限。
若使用数字形式的权限模式,可采用“nnnn”格式的四位八进制数字表示,其中:后面三位是一般权限
的数字表示,前面第一位则是特殊权限的标志数字:
0—表示不设置特殊权限
1—表示只设置sticky
2—表示只设置GUID权限
3—表示只设置SGID和sticky权限
4—表示只设置SUID权限
5—表示只设置SUID和sticky权限
6—表示只设置SUID和SGID
7—表示同时设置SUID、GUID、sticky3种权限
3.ACL权限列表
通过 ACL,可以针对单个用户或组设置独立的读、写、执行权限,从而实现更精细的访问控制。
3.1查看ACL权限
getfacl 文件
3.2设定ACL权限
setfacl -参数 文件名
-m:设定 ACL 权限--也是开启ACL功能
给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
-x:删除列表中的用户
-b:关闭
3.3ACL的开启标识
3.4ACL列表的默认权限
setfacl -Rm u:admin:rwx 目录 //-Rm参数 递归目录中的文件或目录都开启acl
setfacl -m d:u:admin:rwx 目录 //d 目录中创建新文件或目录都会开启acl,复制default权限到文件或目录中
4.attr权限
attr 权限,即文件属性权限,是 Linux 系统中一种对文件或目录赋予额外属性的机制。它能进一步增强 对文件访问和操作的控制,提供了比传统 r(读)、w(写)、x(执行)权限更细致的管控维度。这些属性可以限制文件的某些操作,如防止文件被删除、修改,或者使其只能追加写入等。
lsattr 目录或文件 //查看attr权限
chattr //设定attr权限
i //不能做任何的更改
a //能添加不能删除
chattr +i/-i 目录或文件
chattr +a/-a 目录或文件
5.系统默认权限设定
umask //保留权利
系统本身存在的意义共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高
既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放把不安全的权力默认保留
#文件默认权限 = 777-umask-111
#目录默认权限 = 777-umask
#umask值越大系统安全性越高
4.1临时设置保留权力
4.2永久设置保留权力
以上两个配置文件都要修改
修改后重新查看umask就变了