Linux-文件权限

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

查看权限

使用 ls -l 命令可以查看与文件权限相关的信息:

1
2
3
[root@Automation /]# ls -l
drwxr-xr-x. 9 root root 4096 107 19:28 apache-tomcat-8.0.28
-rw-r--r--. 1 root root 9708967 1119 12:17 apache-tomcat-8.0.28.zip


在Linux中第0位确定文件类型,代表这个文件是目录、文件或链接文件等等。
当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):
• 第一组字符(1-3)表示文件所有者的权限。
• 第二组字符(4-6)表示文件所属用户组的权限。
• 第三组字符(7-9)表示所有其他用户的权限。
文件和目录访问模式

更改权限

可以使用 chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。

使用符号表示权限

u, g, o来代表三种身份的权限。

  • 增加权限(+)

    1
    2
    3
    4
    5
    [root@Automation file]# ls -l
    -rw-r--r-- 1 root root 0 1126 10:35 right.txt
    [root@Automation file]# chmod g+w right.txt
    [root@Automation file]# ls -l
    -rw-rw-r-- 1 root root 0 1126 10:35 right.txt
  • 删除权限(-)

    1
    2
    3
    4
    [root@Automation file]# chmod u-w right.txt
    [root@Automation file]# ls -l
    drwxr-xr-x. 2 root root 4096 1119 13:27 a
    -r--rw-r-- 1 root root 0 1126 10:35 right.txt
  • 指定权限(=)

    1
    2
    3
    [root@Automation file]# chmod o=rwx right.txt
    [root@Automation file]# ls -l
    -r--rw-rwx 1 root root 0 1126 10:35 right.txt

使用数字表示权限

用数字来代表各个权限,各权限的分数对照表如下:
r: 4
w: 2
x: 1

1
2
3
4
[root@Automation file]# chmod 755 right.txt
[root@Automation file]# ls -l
drwxr-xr-x. 2 root root 4096 1119 13:27 a
-rwxr-xr-x 1 root root 0 1126 10:35 right.txt

更改所有者和组

chown来改变文件的所有者

chown 命令是”change owner”的缩写。

1
2
3
[root@Automation file]# chown yhu right.txt
[root@Automation file]# ls -l
-rwxr-xr-x 1 yhu root 0 1126 10:35 right.txt

chgrp:来改变文件所在的群组

chgrp 命令是”change group”的缩写。

1
2
3
[root@Automation file]# chgrp rzhang right.txt
[root@Automation file]# ls -l
-rwxr-xr-x 1 yhu rzhang 0 1126 10:35 right.txt

Notes:超级用户 root 可以不受限制的更改文件的所有者和用户组,但是普通用户只能更改所有者是自己的文件或目录。

了解一下umask

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。默认情况下的umask值是022(可以用umask命令查看),此时缺省创建的文件不能有x权限的。
umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。

换算:

1
2
3
4
5
6
7
[root@Automation file]# umask
0022
[root@Automation file]# umask 077
[root@Automation file]# touch a.txt
[root@Automation file]# ls -l
-rw------- 1 root root 0 1126 11:18 a.txt
-rwxr-xr-x 1 yhu rzhang 0 1126 10:35 right.txt

后话

Linux玩的就是权限,但请记住,权限并不是越大越好。一定要多加练习,弄明白权限这块,为以后更好的使用Linux打下基础。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!