Linux中的chmod命令可以修改文件或目录的权限。
这个命令很重要,因为,你的权限如果不够~这个文件或目录,不管你是谁,你也访问不了。
这个命令其实还是挺简单的。
一:权限说明
1:查看当前目录下的所有文件
[root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt drwxrwxrwx 2 root root 4096 Sep 1 10:17 dir -rwxrwxrwx 1 root root 0 Sep 1 10:18 test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]#
dir的权限为drwxrwxrwx,权限为d开头,代表他是一个目录。
Test.sh的权限为-rwxrwxrwx,权限为-开头,代表他是一个文件
权限一共是是个字符,去除首位代表文件类型之外,剩余的9位三三为一组,r代表read(读),w代表write(写),x代表execute(执行)
2-4这三个字符代表拥有者的权限
5-7这三个字符代表所属组的权限
8-10这三个字符代表其他用户(不同用户组)的权限
为了做测试,显示的更直观,我这里给目录及文件都是所有权限。因此,你会发现,他只有目录和文件的区别。
二:修改文件/目录权限
1:文件和目录权限的区别
文件默认不需要可执行权限,目录是需要可执行权限的,否则在终端目录中无法使用cd进入目录。如果目录没有可读权限,无法使用ls查看目录下的文件。
2:修改命令,第一种写法
语法:chmod [对谁操作] [操作符] [赋予的权限] 文件名
(1):给当前文件拥有者添加写权限
chmod +w test.sh #添加写权限命令。
[root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir ---x--x--x 1 root root 0 Sep 1 10:18 test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# chmod +w test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir --wx--x--x 1 root root 0 Sep 1 10:18 test.sh
(2):给同组用户添加写权限
[root@iZuf60ynur81p6k0ysvtneZ mv]# chmod g+w test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir --wx-wx--x 1 root root 0 Sep 1 10:18 test.sh
(3):给其他用户添加写权限
[root@iZuf60ynur81p6k0ysvtneZ mv]# chmod o+w test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir --wx-wx-wx 1 root root 0 Sep 1 10:18 test.sh
(4):给所有用户增加读权限
[root@iZuf60ynur81p6k0ysvtneZ mv]# chmod a+r test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# ll -a total 12 drwxr-xr-x 3 root root 4096 Sep 1 10:18 . drwxr-xr-x. 9 root root 4096 Aug 28 11:55 .. -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir -rwxrwxrwx 1 root root 0 Sep 1 10:18 test.sh
3:修改命令,第二种写法
上边的命令其实还是很好用的,但是,我一般不怎么用。这一般都是用下边这种。
八进制数字表示权限
r w x
二进制代表 100 010 001
十进制代表 4 2 1
4+2+1 = 7
因此拥有所有权限就是7,拥有可读可执行权限就是5.
因此当前文件,所有用户都拥有所有权限的命令就是:
[root@iZuf60ynur81p6k0ysvtneZ mv]# chmod 777 test.sh [root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt d--x--x--x 2 root root 4096 Sep 1 10:17 dir -rwxrwxrwx 1 root root 0 Sep 1 10:18 test.sh
修改文件权限的时候,需要注意,如果是想递归修改,需要加参数-R(大写)
[root@iZuf60ynur81p6k0ysvtneZ mv]# chmod -R 777 dir/ [root@iZuf60ynur81p6k0ysvtneZ mv]# ll total 4 -rwx------ 1 root root 0 Aug 27 11:32 1.txt drwxrwxrwx 2 root root 4096 Sep 1 10:17 dir -rwxrwxrwx 1 root root 0 Sep 1 10:18 test.sh
以上内容基本上就是chmod的所有内容,有好的建议,请在下方输入你的评论。