Appearance
1. rwx的含义
- r(read):读权限,可以查看文件内容或列出目录内容。
- w(write):写权限,可以修改文件内容或修改目录结构(如创建、删除、重命名文件)。
- x(execute):执行权限,可以执行文件或进入目录。
2. rwx对应的数字
- r:4
- w:2
- x:1
- 权限位的数字表示是这三个值的和。例如,
rwx
(读、写、执行)对应的数字是4+2+1=7
。
3. 授权
ugo授权
- u(user):文件或目录的属主。
- g(group):文件或目录的属组。
- o(other):其他用户。
- a(all):所有用户(u、g、o的总和)。
- 授权命令:
chmod
- 例如:
chmod ugo+x file
为属主、属组和其他用户增加执行权限。 chmod u-w file
移除属主的写权限。chmod u=rwx,g=r-x,o=r-- file
设置具体权限。
- 例如:
数字授权
- 语法格式:
chmod [数字] file
- 例如:
chmod 644 file
设置文件权限为属主读写(6=4+2),属组和其他用户只读(4)。 chmod 755 directory
设置目录权限为属主读写执行(7=4+2+1),属组和其他用户读执行(5=4+1)。
4. 解决权限决绝报错
- 文件可读写:
rw
- 文件可执行:
r-x
(对于脚本文件,最高权限是rwx
) - 目录可查看可进:
r-x
- 创建、删除、改名:
rwx
(针对目录)
5. umask
- 默认创建权限:
- 目录:
777
减去umask
值 - 文件:
666
减去umask
值(因为文件默认没有执行权限,所以最大是666而不是777)
- 目录:
- 查看
umask
值:umask
- 修改
umask
值(临时生效):umask [新值]
- 例如:
umask 022
,则新创建的目录权限为755
,文件权限为644
。
6. 隐藏权限
- 使用
chattr
和lsattr
命令管理。 - +a:只能追加内容到文件中,不能删除或修改现有内容。
- +i:文件或目录变为不可变状态,不能删除、修改、重命名。
- 例如:
chattr +a file
为文件设置追加权限;chattr +i directory
为目录设置不可变权限。
7. 特殊权限
- SUID(Set User ID):
- 给命令设置SUID权限后,所有用户执行此命令时都将拥有属主的权限。
- 例如:
chmod u+s /usr/bin/rm
使所有用户都能以root权限删除文件。
- SGID(Set Group ID):
- 类似SUID,但用户执行命令时将拥有属组的权限。
- 粘滞位(Sticky Bit):
- 通常用于
/tmp
等目录,使得只有文件的所有者或root才能删除或重命名该文件,即使其他用户有写权限。 - 例如:目录权限为
1777
(或drwxrwxrwt
)时,表示该目录具有粘滞位。
- 通常用于
8. 修改文件属主属组
chown
命令基本语法:chown 属主.属组
,用于修改文件的属主和属组。案例 1:
将1.txt
的属主和属组修改为xu
用户,命令为chown xu.xu 1.txt
,并通过ll 1.txt
查看文件权限,显示属主和属组都为xu
,权限为-rw-r--r--
。、
- 案例 2:
只修改文件的属主为root
,命令为chown root 1.txt
,再次查看文件权限,属主变为root
,属组仍为xu
。
- 案例 3:
只修改属组为www
,先将属主和属组都改为root
,然后使用chown.xu 1.txt
将属组改回xu
,查看文件权限确认修改结果。
- 案例 4:
递归修改文件的属主和属组,使用-R
(大写)选项,如chown -R xu.xu xu/
,可以修改xu
目录下所有文件和子目录的属主和属组,通过ll xu/
查看修改后的结果。