您的位置:首页 > 运维架构 > Linux

Linux常用命令-权限管理命令 chmod

2016-11-16 21:43 357 查看
权限管理命令 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

要点:

如何判断一个用户是否有权限删除某个文件?
依据是判断用户是否对该文件的所在目录有写权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: