Linux 文件权限

Posted 项思凯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 文件权限相关的知识,希望对你有一定的参考价值。

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”。
  • 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 *
常用操作

指定用户文件访问:https://www.cnblogs.com/xiangsikai/p/10701101.html

以上是关于Linux 文件权限的主要内容,如果未能解决你的问题,请参考以下文章

***Linux chmod命令修改文件与文件夹权限命令代码

linux和unix系统日志文件一般设置的访问权限为

避免让 subversion 修改 Linux 文件权限。

教程4 - 验证和权限

gitlab 权限说明

[linux][c/c++]代码片段01