Linux 文件/目录权限命令:chmod
2017-07-31 本文已影响64人
倔强的潇洒小姐
chmod:用于改变文件或目录的访问权限
当我们在主机上首次运行用户创建的文件时,可能会收到错误提示信息“拒绝访问”。
如 ls的示例所示,可以用于检查文件的权限。
[root@izwz94jtz9hbdq165vpxpxz ~]# vi test.txt
-rw-r--r-- 1 root root 12 Aug 16 10:48 test.txt
这表明您没有权限(没有“x”)来执行文件,我们可通过 chmod 来修改权限。
该命令有两种用法:
1、用包含字母和操作符表达式的文字设定法

以 app1/www 目录下的123.txt 文本文件为例说明:
[root@izwz94jtz9hbdq165vpxpxz ~]# cd /app1/www
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
-rw-r--r-- 1 root root 161 Jul 16 22:48 123.txt
温馨提示:对象+操作+权限,中间无空格
1)给所有用户增加可执行权限:chmod +x 123.txt
以上命令等同于chmod a+x 123.txt,对象a可省略,即表示所有用户
[root@izwz94jtz9hbdq165vpxpxz www]# chmod +x 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
-rwxr-xr-x 1 root root 161 Jul 16 22:48 123.txt
2)给其他用户增加可写权限:chmod o+w 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]#chmod o+w 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
-rwxr-xrwx 1 root root 161 Jul 16 22:48 123.txt
3)给所属组用户删除可读权限:chmod g-r 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]#chmod o+w 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
-rwx--xrwx 1 root root 161 Jul 16 22:48 123.txt //第2个r已没有了
4)同时给不同对象设置不同权限:chmod u=w,g+rw,o-x 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
-r-x--xrwx 1 root root 161 Jul 16 22:48 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# chmod u=w,g+rw,o-x 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l //查看修改后的文件权限
--w-rwxrw- 1 root root 161 Jul 16 22:48 123.txt
5)递归地给某个目录下所有文件和子目录的属组分配写的权限
chmod -R g+w a2
//修改前查看a2目录及子目录下的文件权限
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l
drwxr-xr-x 3 root root 4096 Jul 31 21:25 a2
[root@izwz94jtz9hbdq165vpxpxz www]# cd a2
[root@izwz94jtz9hbdq165vpxpxz a2]# ls -l
-rw-r--r-- 1 root root 6 Jul 31 21:52 hello.txt
drwxr-xr-x 2 root root 4096 Jul 24 21:38 test
-rw-r--r-- 1 root root 0 Jul 31 21:25 test1
-rw-r--r-- 1 root root 0 Jul 31 21:25 test2
[root@izwz94jtz9hbdq165vpxpxz a2]# cd test
[root@izwz94jtz9hbdq165vpxpxz test]# ls -l
-rw-r--r-- 1 root root 7 Jul 31 21:53 hello1.txt
-rw-r--r-- 1 root root 7 Jul 31 21:53 hello2.txt
执行命令后,查看修改后的权限
[root@izwz94jtz9hbdq165vpxpxz test]# cd ../.. //需返回a2的上级目录
[root@izwz94jtz9hbdq165vpxpxz www]# chmod -R g+w a2 //修改权限
drwxrwxr-x 3 root root 4096 Jul 31 21:52 a2 //修改前权限是 r-x
-rw-rw-r-- 1 root root 6 Jul 31 21:52 hello.txt //修改前权限是 r--
drwxrwxr-x 2 root root 4096 Jul 31 21:53 test //修改前权限是 r-x
-rw-rw-r-- 1 root root 0 Jul 31 21:25 test1 //修改前权限是 r--
-rw-rw-r-- 1 root root 0 Jul 31 21:25 test2 //修改前权限是 r--
-rw-rw-r-- 1 root root 7 Jul 31 21:53 hello1.txt //修改前权限是 r--
-rw-rw-r-- 1 root root 7 Jul 31 21:53 hello2.txt //修改前权限是 r--
2、用数字修改权限 : chmod 501 123.txt
r、w、x 分别对应数字 4、2、1
举例说明:
5=4+1,即文件拥有者有 rx 权限,0表示文件所属组用户无权限,1表示其他用户有 x 权限
[root@izwz94jtz9hbdq165vpxpxz www]# ls -l //查看修改后的文件权限
--w-rwxrw- 1 root root 161 Jul 16 22:48 123.txt
[root@izwz94jtz9hbdq165vpxpxz www]# chmod 501 123.txt
-r-x-----x 1 root root 161 Jul 16 22:48 123.txt