Linux 文件权限
Linux下每个文件都有相关的权限,这章我会亲自重点详细介绍一下关于,linux文件权限及用户赋值文件权限的详解,有很多知识容易忽略,其实都是很重要的知识点。
文件权限介绍
知识点:
- 1、Linux每个文件都有三种给予面向用户的权限
- 所属主权限:文件的所有者。
- 所属组权限:所属组的用户。
- 来宾用户权限:其他来宾用户。
- 2、Linux下每个文件都有三种操作权限
- 读:代表 “r” 权限 、代表 “ 4 ” 权限。
- 写:代表 “w” 权限、代表 “2” 权限。
- 执行:代表 “x” 权限、代表 “1” 权限。
- 无权限:代表“-” 权限、代表 “0” 权限。
- 3、Linux下个别文件及目录有三种特殊权限
- SUID:代表 所属主“s”权限、代表第一个数字 “4” 权限。
- 效果:执行此二进制程序后,执行者将具有该程序所属主的权限。
- 说明:SUID权限仅对二进制程序有效。
- 说明:执行者需要对此程序具有x的可执行权限。
- 说明:如果所属主没有x权限,赋值小“s”则变为“S”。
- SGID:代表 所属组“s”权限、代表第一个数字 “2” 权限。
- 效果:执行此二进制程序或目录,执行者将具有该程序所属组的权限。
- 说明:SGID权限仅对二进制程序与目录有效。
- 说明:执行者需要对此程序具有x的可执行权限。
- 说明:如果所属组没有x权限,赋值小“s”则变为“S”。
- SBIT: 代表 来宾用户“t”权限、代表第一个数字 “1” 权限。
- 效果:进入被赋值目录内,执行者就算拥有组与来宾的读写权限也不可操作,只有所属主用户与root可使用。
- 说明:SBIT权限仅对目录有效。
- 说明:执行者无法在赋值目录下进行 增删改移动操作。
- 说明:如果来宾用户没有x权限,赋值小“t”则变为“T”。
- SUID:代表 所属主“s”权限、代表第一个数字 “4” 权限。
- 4、Linux文件权限后面的“.”的含义
- 含义:“.”是SELINUX的安全上下文、有“.”代表SELINUX创建了安全上下文、无“.”则没有创建安全上下文
chmod 命令
语法
chmod [-cfvR] [--help] [--version] mode file...
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
参数
-c : 若该文件权限确实已经更改,才显示其更改动作 -f : 若该文件权限无法被更改也不要显示错误讯息 -v : 显示权限变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) --help : 显示辅助说明 --version : 显示版本
案例
# 将文件 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt # 将文件 file1.txt 设为所有人皆可读取 : chmod a+r file1.txt # 将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : chmod ug+w,o-w file1.txt file2.txt # 将 ex1.py 设定为只有该文件拥有者可以执行 : chmod u+x ex1.py # 将目前目录下的所有文件与子目录皆设为任何人可读取 : chmod -R a+r * # 此外chmod也可以用数字来表示权限如 : chmod 777 file
chown 命令
修改文件的所属用户或用户组命令
语法
chown [-cfhvR] [--help] [--version] user[:group] file...
参数
user : 新的文件拥有者的使用者 ID group : 新的文件拥有者的使用者组(group) -c : 显示更改的部分的信息 -f : 忽略错误信息 -h :修复符号链接 -v : 显示详细的处理信息 -R : 处理指定目录以及其子目录下的所有文件 --help : 显示辅助说明 --version : 显示版本
实例
# 将文件 file1.txt 的拥有者设为 runoob 群体的使用者 runoobgroup : chown runoob:runoobgroup file1.txt # 将目前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup: chown -R runoob:runoobgroup *