Linux之chmod

Posted program_Li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之chmod相关的知识,希望对你有一定的参考价值。

命令功能:

chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

命令格式:

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

第一种:使用符号模式,例如:chmod a+x file,此处的a代表所有用户,+代表添加权限,x代表执行权限

第二种:使用绝对模式,例如:chmod 777 file,表示为所有用户添加可读可写可执行权限,三个数值分别对应三种用户类型

命令参数:

-c,--changes
只输出被改变文件的信息
-f,--silent,--quiet
当chmod不能改变文件模式时,不通知文件的用户
--help
输出帮助信息。
-R,--recursive
可递归遍历子目录,把修改应到目录下所有文件和子目录
--reference=filename
参照filename的权限来设置权限
-v,--verbose
无论修改是否成功,输出每个文件的信息
--version
输出版本信息。
--reference=<目录或者文件> 设置成具有指定目录或者文件具有相同的权限
--version 显示版本信息

命令实例:

假设目录下文件信息为:

[email protected]:~/test$ ll
total 8
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:42 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 a.txt
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
1.对a.txt增加文件所有用户组可执行权限(都是基于原始状态)
[email protected]:~/test$ chmod a+x a.txt
[email protected]:~/test$ ll
total 8
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:42 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rwxrwxr-x 1 vbird vbird    0 9月   8 16:42 a.txt*
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
2.对a.txt同时修改不同用户权限,文件所有者可读可写可执行、用户组只读、其他人不可读不可写不可执行。(都是基于原始状态)
第一种方法:
[email protected]:~/test$ chmod u=rwx a.txt [email protected]:~/test$ chmod g=r a.txt [email protected]:~/test$ chmod o= a.txt [email protected]:~/test$ ll total 8 drwxrwxr-x 2 vbird vbird 4096 9月 8 16:42 ./ drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../ -rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt* -rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt
第二种方法:

  [email protected]:~/test$ chmod 740 a.txt
  [email protected]:~/test$ ll
  total 8
  drwxrwxr-x 2 vbird vbird 4096 9月 8 16:42 ./
  drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../
  -rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt*
  -rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt

3.根据目录下的b.txt的权限设置a.txt的权限

 假设目录下文件信息为:

[email protected]:~/test$ ll
total 12
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/

解决方法:

[email protected]:~/test$ chmod --reference=b.txt a.txt
[email protected]:~/test$ ll
total 12
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 a.txt
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
4.对一个目录及其子目录所有文件添加权限,允许其他人可读可进去目录,但是目录下的文件只有只读权限。

假设目录下文件信息为:

[email protected]:~/test$ ll
total 12
drwxrwxr-x 3 vbird vbird 4096 9月 8 16:52 ./
drwxr-xr-x 4 vbird vbird 4096 9月 8 16:42 ../
-rwxr----- 1 vbird vbird 0 9月 8 16:42 a.txt*
-rw-rw-r-- 1 vbird vbird 0 9月 8 16:42 b.txt
drwxrwx--- 2 vbird vbird 4096 9月 8 16:53 dir/

[email protected]:~/test$ ll dir
total 8
drwxrwxr-x 2 vbird vbird 4096 9月 8 16:53 ./
drwxrwxr-x 3 vbird vbird 4096 9月 8 16:52 ../
-rw-rw---- 1 vbird vbird 0 9月 8 16:53 c.txt
-rw-rw---- 1 vbird vbird 0 9月 8 16:53 d.txt

解决方法:
[email protected]:~/test$ chmod -R o+rx dir
[email protected]:~/test$ ll
total 12
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
[email protected]:~/test$ ll dir
total 8
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 ./
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ../
-rw-rw-r-x 1 vbird vbird    0 9月   8 16:53 c.txt*
-rw-rw-r-x 1 vbird vbird    0 9月   8 16:53 d.txt*
[email protected]:~/test$ chmod o-x dir/c.txt dir/d.txt
[email protected]:~/test$ ll
total 12
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ./
drwxr-xr-x 4 vbird vbird 4096 9月   8 16:42 ../
-rwxr----- 1 vbird vbird    0 9月   8 16:42 a.txt*
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:42 b.txt
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 dir/
[email protected]:~/test$ ll dir
total 8
drwxrwxr-x 2 vbird vbird 4096 9月   8 16:53 ./
drwxrwxr-x 3 vbird vbird 4096 9月   8 16:52 ../
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:53 c.txt
-rw-rw-r-- 1 vbird vbird    0 9月   8 16:53 d.txt

 

 
 




















以上是关于Linux之chmod的主要内容,如果未能解决你的问题,请参考以下文章

Linux之chmod使用

Linux命令之修改文件权限chmod

linux命令之——权限管理命令

Linux下权限控制之chmod与chown命令 𗏆

Linux学习笔记之Linux常用命令剖析-cat/chmod/cd

linux基础命令之权限管理命令