每天一个Linux命令(23)chmod命令

Posted MenAngel

tags:

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

    chmod命令用来变更文件或目录的权限。

    在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

     

    (1)用法:

    用法:  chmod  [选项]     [mode] 模式  文件

         或 chmod  [-cfvR] [--help] [--version] mode file

    命令有两种用法:一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

 

    (2)功能:

    功能:用于改变文件或目录的访问权限,用它控制文件或目录的访问权限。

 

    (3)参数详解:

      1) -R    ——recursive:              递归处理,将指令目录下的所有文件及子目录一并处理

      2) -v    ——verbose :               显示指令执行过程

      3) --reference=<参考文件或目录>:          把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同

      4) <权限范围>+<权限设置>:           开启权限范围的文件或目录的该选项权限设置

          <权限范围> -<权限设置>:                               关闭权限范围的文件或目录的该选项权限设置

          <权限范围>=<权限设置>:                               指定权限范围的文件或目录的该选项权限设置

 

    (4)权限范围的表示法:
      1) u         User    即文件或目录的拥有者

      2) g         Group     即文件或目录的所属群组

      3) o         Other         除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围

      4) a         All      即全部的用户,包含拥有者,所属群组以及其他用户

      5) r                          读取权限,数字代号为“4”

      6) w           写入权限,数字代号为“2”

      7) x                          执行或切换权限,数字代号为“1”

      8) -                          不具任何权限,数字代号为“0”

      9) s                          特殊功能说明:变更文件或目录的权限

 

    (5)实例:

      1)[[email protected] Documents]# chmod a+x core.log          为所有用户组添加可执行权限

[[email protected] Documents]# ll -al core.log         //ll -al 文件名与 ls -l 文件名貌似没啥区别
-rw-r--r--. 1 root root 27 5月  19 04:21 core.log
[[email protected] Documents]# ls -l core.log
-rw-r--r--. 1 root root 27 5月  19 04:21 core.log
[[email protected] Documents]# chmod a+x core.log     
[[email protected] Documents]# ll -al core.log
-rwxr-xr-x. 1 root root 27 5月  19 04:21 core.log

      2)[[email protected] Documents]# chmod ug+w,o-x core.log       同时为不同用户添加或删除权限

[[email protected] Documents]# ll -al core.log
-rwxr-xr-x. 1 root root 27 5月  19 04:21 core.log
[[email protected] Documents]# chmod ug+w,o-x core.log
[[email protected] Documents]# ll -l core.log
-rwxrwxr--. 1 root root 27 5月  19 04:21 core.log

      3)[[email protected] Documents]# chmod g=x,o=rwx core.log        设置文件的u,g,o的三个权限。这里是设置文件所有者权限为可执行,其他用户可以读写执行,组用户权限不变

[[email protected] Documents]# ll -l core.log
-rwxrwxr--. 1 root root 27 5月  19 04:21 core.log
[[email protected] Documents]# chmod g=x,o=rwx core.log
[[email protected] Documents]# ls -l core.log
-rwx--xrwx. 1 root root 27 5月  19 04:21 core.log

      4)[[email protected] Documents]# chmod -R o=--- findDir      递归的设置findDir文件夹下的文件及文件夹的其他用户权限为不具备任何权限

[[email protected] Documents]# chmod -R o=--- findDir
[[email protected] Documents]# find . -name "Dir" -print
./Dir
[[email protected] Documents]# find . -name "Dir" -exec ls -l {} \;
总用量 12
--w-------. 1 root root 664 5月   9 07:59 head_text
--w-------. 1 root root  45 5月   9 08:15 less1
--w-------. 1 root root  57 5月   9 08:16 less2
[[email protected] Documents]# ls -l Dir
总用量 12
--w-------. 1 root root 664 5月   9 07:59 head_text
--w-------. 1 root root  45 5月   9 08:15 less1
--w-------. 1 root root  57 5月   9 08:16 less2

      5)[[email protected] Documents]# chmod -R u=r,g=r,o=r findDir 与  [[email protected] Documents]# chmod -R =rx Dir    等价地给ugo的用户设置权限

[[email protected] Documents]# chmod -R u=r,g=r,o=r findDir
[[email protected] Documents]# ls -l findDir
总用量 0
-r--r--r--. 1 root root 0 5月  17 04:18 p1.pdf
-r--r--r--. 1 root root 0 5月  17 04:18 p2.pdf
-r--r--r--. 1 root root 0 5月  17 03:50 t1.txt
-r--r--r--. 1 root root 0 5月  17 04:02 T1.txt
-r--r--r--. 1 root root 0 5月  19 04:58 t2.txt
-r--r--r--. 1 root root 0 5月  17 04:02 T2.txt
[[email protected] Documents]# ls -l Dir
总用量 12
--w-------. 1 root root 664 5月   9 07:59 head_text
--w-------. 1 root root  45 5月   9 08:15 less1
--w-------. 1 root root  57 5月   9 08:16 less2
[[email protected] Documents]# chmod -R =rx Dir           //设置所有组用户权限为rw之后,以前的所有者的w权限就没了
[[email protected] Documents]# ls -l Dir
总用量 12
-r-xr-xr-x. 1 root root 664 5月   9 07:59 head_text
-r-xr-xr-x. 1 root root  45 5月   9 08:15 less1
-r-xr-xr-x. 1 root root  57 5月   9 08:16 less2

      6)[[email protected] Documents]# chmod 444 find        用数字给文件设置权限

[[email protected] Documents]# chmod 444 find
[[email protected] Documents]# ls -l find
-r--r--r--. 1 root root 0 5月  19 04:16 find
[[email protected] Documents]# chmod =r newlocate                //两种方法等价,但同时都会将原有的权限清除
[[email protected] Documents]# ls -l newlocate
-r--r--r--. 1 root root 0 5月  15 18:21 newlocate

 

    (6)其他:

      Linux用户分为:拥有者、组群(Group)、其他(other)。

      Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

以上是关于每天一个Linux命令(23)chmod命令的主要内容,如果未能解决你的问题,请参考以下文章

每天一个linux命令(29)--Linux chmod命令

每天一个linux命令(21):chgrp,chown,chmod

每周一个linux命令之---uptime详解

每天一个linux命令chown

每天一个linux命令(cp)

每天一个linux命令(mv)