1、我们先通过ls命令看一下当前或指定文件的权限:[c.lpm@CentOS7 ~]$ ls -ltotal 16drwxr-xr-x. 2 c.lpm c.lpm 6 Oct 9 21:37 Desktopdrwxr-xr-x. 2 c.lpm c.lpm 6 Oct 9 21:37 Documents-rw-r--r--. 1 c.lpm c.lpm 127 Oct 12 02:20 admin.py-rw-r--r--. 1 c.lpm c.lpm 282 Oct 12 02:20 admin.pyc-rw-r--r--. 1 c.lpm c.lpm 0 Oct 11 21:02 __init__.py-rw-r--r--. 1 c.lpm c.lpm 127 Oct 11 23:52 __init__.pycdrwxrwxr-x. 2 c.lpm c.lpm 4096 Oct 12 00:35 migrations-rw-r--r--. 1 c.lpm c.lpm 614 Oct 12 00:53 models.py-rw-r--r--. 1 c.lpm c.lpm 1468 Oct 12 00:54 models.pyc-rw-rw-r--. 1 c.lpm c.lpm 0 Oct 12 01:34 run_info-rw-r--r--. 1 c.lpm c.lpm 60 Oct 11 21:02 tests.py-rw-r--r--. 1 c.lpm c.lpm 63 Oct 11 21:02 views.py每行代表一个文件或目录,D代表目录,-代表文件。后面紧跟着的是该文件或目录的权限,前三位代表的是文件拥有者的权限,中间三位代表的是文件组权限,后三位代表的是其它用户的权限。
2、首先先介绍一下通过字符标记法对用户进行授权。假如我们想把Desktop文件夹对其它用户援可读权限,可以这样操作:[c.lpm@CentOS7 ~]$ 艘早祓胂chmod -Rv o+w Desktop/mode of ‘Desktop/’ changed from 0755 (rwxr-xr-x) to 0757 (rwxr-xrwx)在这条命令中,采用了两个参数:R和v,R的作用是对该目录下所有的文件递归授权,即一次性把该目录下所有的文件都对其它用户授予可读权限。 v参数则让命令显示执行过程,即命令返回的部分。后面的o代表other,即其它用户,在这里可以有四个选择:u:user,g:group,o:other,a:all,用来指定将要给授权的用户。指定用户之后,就要进行授权了,授权有三个符号:+,-,=。在本例,用的是+,即在原来的权限基础之上添加新的权限。那么添加什么权限呢?紧根授权符号之后的,就是权限名称,本例中是W,即读权限。命令的最后,则是指定哪些文件夹要被授权。理解了命令的执行方式,就可以更加灵活的来运用了。这里再多举几个例子:[c.lpm@CentOS7 ~]$ chmod -Rv a-rwx Desktop/mode of ‘Desktop/’ changed from 0757 (rwxr-xrwx) to 0000 (---------)[c.lpm@CentOS7 ~]$ chmod -Rv a+rwx Desktop/mode of ‘Desktop/’ changed from 0000 (---------) to 0777 (rwxrwxrwx)[c.lpm@CentOS7 ~]$ chmod -Rv u=rwx,g=r,o=r Desktop/mode of ‘Desktop/’ changed from 0777 (rwxrwxrwx) to 0744 (rwxr--r--)
3、再介绍一下数字标记法,本人比较喜欢采用该方法,因为可以少输入,而且命令看起来也更简洁:[c.lpm@CentOS7 ~]$ chmod -Rv 777 Desktop/mode of ‘Desktop/’ changed from 0744 (rwxr--r--) to 0777 (rwxrwxrwx)上面的命令,如果用标记法,则是:[c.lpm@CentOS7 ~]$ chmod -Rv a=rwx Desktop/mode of ‘Desktop/’ retained as 0777 (rwxrwxrwx)来解释一下,命令中777三个数据分别代表u,g,o的权限。在本文开头也介绍了r=4,w=2,x=1。那么,rwx=4+2+1=7。如果要把其它用户的写权限去掉,则可以:[c.lpm@CentOS7 ~]$ chmod -Rv 775 Desktop/mode of ‘Desktop/’ changed from 0777 (rwxrwxrwx) to 0775 (rwxrwxr-x)看到了吗?只需要将对应的权限值减掉就OK了。
4、如果给使用chmod命令仍有疑问的话,字斤谯噌最佳的解决方法,就是读文档:[c.lpm@CentOS7 ~]$ chmod --helpUsage: chmod [OPTION]... MODE[,MODE]... FILE... or: chmod [OPTION]... OCTAL-MODE FILE... or: chmod [OPTION]... --reference=RFILE FILE...Change the mode of each FILE to MODE.With --reference, change the mode of each FILE to that of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's mode instead of MODE values -R, --recursive change files and directories recursively --help display this help and exit --version output version information and exitEach MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.GNU coreutils online help: <http://www.gnu.org/software/coreutils/>For complete documentation, run: info coreutils 'chmod invocation'刚才用的到的两个参数,文档中都给出了具体的解释。