linux命令:chmod改变文件权限

作者:彼岸花开 | 创建时间: 2023-05-02
chmod命令可以按照指定的模式来设置文件的权限,指定的模式有两种:字符标记法和数字标记法。字符标记就是通常看到的r,w,x,而数字标记法就是1、2、4。其对应关系是r=4,w=2,x=1。chmod命令就是通过这两种方式改变文件权限的。...
linux命令:chmod改变文件权限

操作方法

我们先通过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代表目录,-代表文件。后面紧跟着的是该文件或目录的权限,前三位代表的是文件拥有者的权限,中间三位代表的是文件组权限,后三位代表的是其它用户的权限。

首先先介绍一下通过字符标记法对用户进行授权。假如我们想把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--)

再介绍一下数字标记法,本人比较喜欢采用该方法,因为可以少输入,而且命令看起来也更简洁: [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了。

如果给使用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' 刚才用的到的两个参数,文档中都给出了具体的解释。

点击展开全文

更多推荐