Linux命令 chmod

1.简介

  在Linux中,一个文件或目录拥有很多权限,而最基本的权限就有九个,分别是拥有者用户组其他人三个对象的读,写,执行的权限。

  而chmod命令就是用来改变文件/目录的权限。改变文件的权限有两种方法:1.使用数字 2.使用符号

2.  具体方法

   所有的方法都遵循此模式:   chmod  [options]  [ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+  filename

 options:

   (1)   -c ,--changes    在改变文件的权限的时候成功的时候,会打印一行内容报告改变权限的内容

root@localhost:~/c# chmod -c u+x a.c
mode of 'a.c' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)

  注意:上面的0644的0代表的是‘-’ ,表示文件,数字代号是"0";

      还有 符号连接的权限

  (2)  -f, --silent, --quit   保持沉默

  (3)  -v , --verbose  总是会提醒你和 -c 很相似  所以是冗杂的,繁多的

  (4)  -R   最常用的一个选项,递归改变文件和目录的权限

 数字类型:

   对于一个文件的每个对象都有三种权限,读,写和执行的权限,每个权限都对应这一个分数。

  r : 4  w:2  x:1

  每个身份的权限的值都是累加的,比如 :

root@localhost:~/c# chmod 764 a.c
root@localhost:~/c# ls -l a.c
-rwxrw-r-- 1 root root 58 Aug 30 07:45 a.c

  在这个实例中,拥有者的权限是7,就是 r+w+x =4+2+1=7,用户组的权限就是6  r+w=4+2=6 ,而其他人就是4了 r=4.

 字符类型:

  用字符改变文件权限    chmod [augo] [+-=] [rwx] filename/dirname;

  a: all 包括所有的对象  u:user,只改变拥有者的权限  g:group,只改变用户组的权限  o:others,只改变其他人的权限

  +:添加权限  -:删除权限  =:设置权限

  比如:

root@localhost:~# ls -l .bash_history 
-rw------- 1 root root 26291 Aug 27 09:54 .bash_history
root@localhost:~# chmod u=rwx,go+w .bash
.bash_history  .bashrc        
root@localhost:~# chmod u=rwx,go+w .bash_history 
root@localhost:~# ls -l .bash_history 
-rwx-w--w- 1 root root 26291 Aug 27 09:54 .bash_history

刚开始只有拥有者可以读和写,  u=rwx 给拥有者设置为所有权限, go+w 给 用户组和其他人加上了 w的权限。

原文地址:https://www.cnblogs.com/Triomphe/p/7451046.html