文件权限
# 创建一个文件和文件夹
$ touch A.txt
$ mkdir dic# 通过 ll 命令查看详细信息
$ ll
-rw-r--r-- 1 root root 0 Oct 14 13:33 A.txt
drwxr-xr-x 2 root root 4096 Oct 14 13:33 dic
注意文件与文件夹的第一段信息:
-rw-r--r--
drwxr-xr-x
这其中就包含了文件类型与文件权限。总计有10位:- --- --- ---
,下面进行一下拆分:
- 第一位:文件夹为
d
,文件为-
- [2-4]位:文件拥有者的权限
- [5-7]位:文件拥有者的同组用户的权限
- [8-10]位:其他用户的权限
- [2-10]位:所有用户的权限
那么权限都有哪些类别?
- 读:
r
- 写:
w
- 执行:
x
- 无权限:
-
chmod 命令
用于改变文件目录或文件的权限。有两种使用方法:
- 包含字母和操作符的文字设定法
- 包含数字的数字设定法
文字设定法
语法:chmod [who] [+ | - | =] [mode] 文件名
who:
u
:用户(user),即文件或目录的所有者。g
:同组(group)用户,即与文件属主有相同组ID的所有用户。o
:其他(others)用户。a
:所有(all)用户。它是系统默认值。
操作符:
+
:添加某个权限。-
:取消某个权限。=
:赋予给定权限并取消其他所有权限(如果有的话)
mode:
r
: 可读(常用)。w
: 可写(常用)。x
: 可执行(常用)。X
: 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。s
: 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。t
: 保存程序的文本到交换设备上。u
: 与文件属主拥有一样的权限。g
: 与和文件属主同组的用户拥有一样的权限。o
: 与其他用户拥有一样的权限。
栗子:
$ chmod a+r A.txt
$ ll
-r--r--r-- 1 root root 0 Oct 14 13:33 A.txt# 多种赋权使用逗号分隔
$ chmod u=rwx,g=rx,o=rx A.txt
$ ll
-rwxr-xr-x 1 root root 0 Oct 14 13:33 A.txt$ chmod a+rwx A.txt; chmod g-w,o-w A.txt
$ ll
-rwxr-xr-x 1 root root 0 Oct 14 13:33 A.txt$ chmod g+u,o+u A.txt
$ ll
-rwxrwxrwx 1 root root 0 Oct 14 13:33 A.txt
数字设定法
语法:chmod [mode] 文件名
mode:
- 0:没有权限
- 1:执行权限
- 2:写权限
- 4:读权限
相比较文字设定法,少了 who 与 操作符的部分。其实并没有少,只是隐式存在了命令参数中。例:
chmod 755 fileName
其中7
表示所有者的权限:1 + 2 + 4,即读写执行。
第一个5
表示同组用户权限:1 + 4,读执行。
第二个5
表示其他用户权限:1 + 4,读执行。