所有者(属主):默认情况下,文件的创建者为所有者 所属组(属组):文件所有者所属的组,默认情况下,文件创建者的主要组为文件的所有组 其他用户:指文件所有组和所属组,以及root之外的所有用户
4读r:读取文件内容或者查看目录
2写w:修改文件内容或者创建,删除文件
1执行x:执行文件或者允许使用cd命令进入目录
通过ls -l
查看
drwxr-xr-x | 1 | zxp | zxp | 8980 | 7月14 21:11 | a.desktop |
---|---|---|---|---|---|---|
文件权限 | 链接 | 所有者 | 所属组 | 容量 | 修改日期 | 文件名 |
d | rwx | r-x | r-x |
---|---|---|---|
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
d
目录
-
文件
l
软连接
b
块设备
c
字符设备文件
权限 | 十进制 |
---|---|
--- | 0 |
--x | 1 |
-w- | 2 |
-wx | 3 |
r-- | 4 |
r-x | 5 |
rw- | 6 |
rwx | 7 |
bashchmod u+x,g+x,o=rw- [文件名]
chmod 776 right [文件名]
chown [选项][新所有者] 文件列表
-R
:递归处理指定目录
chown [选项][新所有者]:[新的所有组] 文件列表
chmod [选项] 模式 文件
-R
递归处理指定目录及其子目录下的所有文件
模式 文件权限的表达式,有字符和数字两种表达方式
[选项]
+
增加权限
-
撤销权限
=
赋予给定权限并取消其他所有权限
u
表示所有者
g
表示同组用户
o
表示其他用户
a
表示所有用户,为系统默认值
[模式]
r
可读
w
可写
x
可执行
s
在文件执行时把进进程的属主或组ID置为该文件的属主
t
防止用户任意删除或修改别人的文件,可以对目录设置sticky权限
创建目录和创建文件时,创建出来的目录和文件都有默认权限,默认权限通过umask掩码计算出,umask值使用4个数字表示权限
计算默认权限,方法: 最大权限 - umask值后三位 目录最大权限777 文件最大权限666(文件创建时不能具有执行权限) 例如
bashumask 0002
mkdir new_dir #创建目录权限为 777-002=775
touch test.txt #创建文件权限为 666-002=664
情景:普通用户想改自己密码,不想用也不必用root权限,使用特殊文件权限来达到此目的
bashmomen@localhost:~$ ls -l /usr/bin/passwd
-rwsr-xr-x. 1 momen momen 55544 Mar 14 2022 /usr/bin/passwd
momen@localhost:~$
特殊权限表示时,替换掉x
umask值的第一位表示特殊权限,特殊权限有三种:suid,sgid,sticky
suid 和 sgid 用字符表示,为s,在文件属性中表示这些特殊权限,将在执行权x标志位上替换掉显示 例如 -rwsr-xr-x
在权限组中增加suid/sgid位,设置有suid位的文件被执行时,自动获得文件所有者的UID,设置有sgid位的文件被执行时,自动获得文件所属组的GID
suid和sgid权限使用八进制数字分别表示为4和2
用4个数位表示文件权限,在3位基础上左侧增加一位 例如:6644表示文件权限 特殊权限(suid+sgid)用户权限(读+写),组权限和其他权限为 只读
suid 权限使用的前提: 1.只对二进制可执行文件有效 2.使用者对该二进制可执行文件有可执行权限x 3.以文件拥有者的身份只在执行二进制文件的过程中有效 例:
bashchmod u+s main #加suid
chmod u-s main #撤销suid
chmod 4775 main #加suid
chmod 775 main #撤销suid
场景:为防止其他用户任意删除或修改别人文件,可以对目录设置sticky权限,只有文件所有者才能移动,删除和修改文件
sticky权限只对目录有效,使用ls -l
命令可以查看一个目录是否有sticky权限
sticky 权限用字符表示t,用八进制数字表示为1
sudo chmod +t [目录]
sudo chmod 1777 [目录]
本文作者:墨洺的文档
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!