权限管理命令 chmod
命令名称:chmod
命令所在路径:/bin/chmod
执行权限:所有用户
功能描述:改变文件或目录的权限
操作对象:文件或目录
基本语法:chmod [选项] 文件或目录
某个文件的权限只有两个人能够进行更改,即文件的所有者和超级用户root。
一般来说,权限的种类分为以下三种:
- r(4):读权限。对于文件来说,r代表可以查看文件的内容;对于目录来说,r代表可以查看目录中的内容。
- w(2):写权限。对于文件来说,w代表可以修改文件的内容;对于目录来说,w代表可以在目录中创建或删除文件(或文件夹)。
- x(1):执行权限。对于文件来说,x代表可以执行该文件;对于目录来说,x代表可以用cd命令进入该目录。
权限管理中,用户的种类有四类,分别是:
- a(all):所有用户
- u(user):文件的所有者
- g(group):组用户
- o(other):其他用户
1. 文件的权限设置
先在 /tmp 目录中,创建一个文件a.txt,看看它的默认权限。
[root@localhost ~]# touch /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rw-r--r--. 1 root root 0 11月 15 06:15 /tmp/a.txt
可以发现,新建一个文件时,文件的权限为rw-r–r–,也就是文件的所有者有读和写的权限,所属组和其他人只有读的权限。
给文件的所有者加上执行(x)的权限。如下:
[root@localhost ~]# chmod u+x /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rwxr--r--. 1 root root 0 11月 15 06:15 /tmp/a.txt
给文件的所属组加上写权限,并除去其他人的读权限。如下:
[root@localhost ~]# chmod g+w,o-r /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rwxrw----. 1 root root 0 11月 15 06:15 /tmp/a.txt
直接将文件的所有者的权限设置为rw。如下:
[root@localhost ~]# chmod u=rw /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rw-rw----. 1 root root 0 11月 15 06:15 /tmp/a.txt
给文件的其他人添加读和写的权限。如下:
[root@localhost ~]# chmod o+r+w /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rw-rw-rw-. 1 root root 0 11月 15 06:15 /tmp/a.txt
其实,在linux中,更常见的设置文件权限的方式是通过数字来设置,4代表读权限,2代表写权限,1代表执行权限,7代表读、写和执行的权限,0代表没有权限。
将文件的权限设置为rw-r—–。如下:
[root@localhost ~]# chmod 640 /tmp/a.txt
[root@localhost ~]# ll /tmp/a.txt
-rw-r-----. 1 root root 0 11月 15 06:15 /tmp/a.txt
将文件的权限设置为rwxrwxrwx。如下:
chmod 777 /tmp/a.txt
等同于
chmod a=rwx /tmp/a.txt
等同于
chmod a+r+w+x /tmp/a.txt
2. 目录的权限设置
现在,我们在 /tmp 目录中创建一个多级空目录,/tmp/a/b,并查看目录的默认权限。
[root@localhost ~]# mkdir -p /tmp/a/b
[root@localhost ~]# ll -d /tmp/a
drwxr-xr-x. 3 root root 4096 11月 15 16:13 /tmp/a
[root@localhost ~]# ll -d /tmp/a/b
drwxr-xr-x. 2 root root 4096 11月 15 16:13 /tmp/a/b
可以发现,新建一个目录时,目录的权限为rwxr-xr-x。
将目录 /tmp/a 的权限更改为rwxrwxrwx,并且递归修改目录中所有文件和子目录的权限。如下:
[root@localhost ~]# chmod -R 777 /tmp/a
[root@localhost ~]# ll -d /tmp/a
drwxrwxrwx. 3 root root 4096 11月 15 16:24 /tmp/a
[root@localhost ~]# ll -d /tmp/a/b
drwxrwxrwx. 2 root root 4096 11月 15 16:13 /tmp/a/b
一般来说,我们更改目录的权限时,往往希望同时更改目录中所有内容的权限。这时,必须用 chmod -R 。
要点:
如何判断一个用户是否有权限删除某个文件?
依据是判断用户是否对该文件的所在目录有写权限。