(八)Linux文件权限
文件权限介绍
一、知识点:
1.1Linux每个文件都有三种给予面向用户的权限
- 所属主权限:文件的所有者。
- 所属组权限:所属组的用户。
- 来宾用户权限:其他来宾用户。
1.2 Linux下每个文件都有三种操作权限
- 读:代表 “r” 权限 、代表 “ 4 ” 权限。
- 写:代表 “w” 权限、代表 “2” 权限。
- 执行:代表 “x” 权限、代表 “1” 权限。
- 无权限:代表“-” 权限、代表 “0” 权限。
1.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”。
1.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 *