
linux 权限
一、权限结构解析
1. 字符表示法
-rw------- 由 10 个字符组成:
第 1 位:文件类型(- 表示普通文件,d 为目录,l 为符号链接)。
第 2-4 位:所有者权限(rw- 表示可读、可写、不可执行)。
第 5-7 位:所属组权限(--- 表示无任何权限)。
第 8-10 位:其他用户权限(--- 表示无任何权限)。
2 权限转换方式
读 r =》二进制=》十进制 =4
写 w =》二进制=》十进制 =2
执行x =》二进制=》十进制 =1
--举例--
drwxr--r--
d 文件
rwx =7
r-- =4
r-- =4
所以 drwxr--r--
就表示 该目录所有者 拥有读写执行权限 所属组拥有读的权限 其他人 拥有读的权限
二 权限相关命令汇总
1. 查看文件权限
ls -l 或 ls -ld
- 功能:
ls -l用于列出文件的详细信息,包括权限、所有者、所属组、文件大小等;对于目录,ls -ld专门显示目录本身的详细权限信息(而非目录下的文件)。 - 示例:
# 查看普通文件权限
ls -l example.txt
# 查看目录权限
ls -ld my_directory
- 输出解析:输出结果如
-rw-r--r-- 1 user group 1024 Aug 15 10:00 example.txt,其中-rw-r--r--是权限位,第一个字符-表示这是文件(d表示目录),接下来三组字符分别对应所有者、所属组、其他用户的权限,r代表读权限,w代表写权限,x代表执行权限;user是所有者,group是所属组。
2. 修改文件权限
- 功能:用于改变文件或目录的访问权限。有两种使用方式,分别是符号模式和数字模式。
- 符号模式示例:
# 给文件所有者添加执行权限
chmod u+x example.txt
# 给所属组去掉写权限
chmod g-w example.txt
# 给其他用户赋予读和执行权限
chmod o+rx example.txt
- 数字模式示例:
# 将文件权限设置为所有者有读写执行权限,所属组和其他用户只有读权限
chmod 744 example.txt
- 数字含义:
r对应 4,w对应 2,x对应 1,通过相加得到对应的数字,如rwx就是 4 + 2 + 1 = 7。
3. 修改文件所有者和所属组
- 功能:用于更改文件或目录的所有者和所属组。
- 示例:
# 只修改所有者为 new_user
chown new_user example.txt
# 同时修改所有者为 new_user,所属组为 new_group
chown new_user:new_group example.txt
# 递归修改目录及其子目录、文件的所有者和所属组
chown -R new_user:new_group my_directory
4. 更改文件所属组
- 功能:专门用于改变文件或目录的所属组。
- 示例:
# 将文件所属组改为 new_group
chgrp new_group example.txt
# 递归修改目录及其子目录、文件的所属组
chgrp -R new_group my_directory
5. 查看和设置 ACL(访问控制列表)权限
getfacl 和 setfacl
getfacl功能及示例:用于查看文件或目录的 ACL 权限设置。
getfacl example.txt
setfacl功能及示例:用于设置文件或目录的 ACL 权限,可针对特定用户或组设置精细的权限。
# 给 user1 设置对文件的读权限
setfacl -m u:user1:r example.txt
# 删除针对 user1 的ACL权限设置
setfacl -x u:user1 example.txt
6. 更改文件的特殊权限
- 设置 SUID(Set User ID):让普通用户执行该程序时,临时拥有文件所有者的权限。
chmod u+s 可执行文件名
- 设置 SGID(Set Group ID):对于目录,设置后新创建的文件所属组继承该目录的所属组;对于可执行文件,普通用户执行时临时拥有文件所属组的权限。
chmod g+s 目录名或可执行文件名
- 设置 Sticky Bit(粘滞位):一般用于公共目录(如
/tmp),设置后,只有文件所有者、目录所有者或 root 用户才能删除该目录下的文件。
chmod o+t 目录名
3979

被折叠的 条评论
为什么被折叠?



