chmod是change mode前缀的组合,直译是更改模式,在这里它的作用是改变用户对文件的操作权限。
在Linux哲学里,一切皆文件是一种思想,所以不管是文件,文件夹,或者其它都当作文件来处理。
duskawn@debian:~$ id
uid=1001(duskawn) gid=1001(duskawn) groups=1001(duskawn),27(sudo)
-----------------------------------------------------------------
duskawn@debian:~$ ls -lh
drwxr-xr-x 3 duskawn duskawn 4.0K Apr 20 20:45 Documents
--------------------------------------------------------
操作文件的对象包括文件所有者(user),文件所有者所在组(group),其它用户(other)。
第一个“duskawn”是文件所有者,第二个“duskawn”是文件所有者所在的用户组。
文件的操作权限包括读(read),写(write),执行(execute),-代表没权限。
d代表当前文件是目录,rwx是文件所有者的权限,中间的r-x是文件所有者的权限,末r-x是其它用户的权限。
权限操作有加权限(+),去除权限(-),重新赋予权限(=)
现在使用chmod u+x file ,chmod g+rw file,chmod go+w file,chmod ug-x file,chmod uo=w file等等就可以给相对应文件赋予用户权限,chmod a+x和chmod ugo+x是一样的效果,a(all)代表所有用户。
chmod操作的是单个文件,如果想要当前目录下所有文件的权限,需要添加递归参数 -R
由于读写执行占用三位,而且rwx的位置也不会改变,所以可以用一个八进制数来表达,可读(4),可写(2),可执行(1)。拥有rwx时是7,r–则是4,—则是0,-w-则是2,-wx则是3。
chmod 755 file等同于chmod a+rx,u+w file
此外,我们还可以改变文件的所有者以及所有者所在的群组。
改变文件所有者:
root@debian:/home/duskawn# ls -l
total 32
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Desktop
drwxr-xr-x 3 root duskawn 4096 Apr 20 20:45 Documents
-----------------------------------------------------
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Downloads
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Music
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Pictures
改变文件所有者所在所在的群组:
root@debian:/home/duskawn# chgrp root Documents
root@debian:/home/duskawn# ls -l
total 32
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Desktop
drwxr-xr-x 3 root root 4096 Apr 20 20:45 Documents
--------------------------------------------------
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Downloads
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Music
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Pictures
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Public
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Templates
drwxr-xr-x 2 duskawn duskawn 4096 Apr 20 19:47 Videos