Linux chmod 命令 详解

 chmod命令用的很多,但是对这个命令却不是很了解。 在网上搜了一下。 整理如下。

 

命令格式:

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

[root@qs-wg-db2 ~]# chmod --help

Usage: 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.

 

 -c, --changes          like verbose but report only when a change is made

     --no-preserve-root do not treat `/' specially (the default)

     --preserve-root    fail to operate recursively on `/'

 -f, --silent, --quiet  suppress most error messages

 -v, --verbose          output a diagnostic for every file processed

     --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 exit

 

Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.

 

Report bugs to <bug-coreutils@gnu.org>.

[root@qs-wg-db2 ~]#

 

 

参数说明:

1. -cfvR部分

      -c : 若该档案权限确实已经更改,才显示其更改动作

      -f : 若该档案权限无法被更改也不要显示错误讯息

      -v : 显示权限变更的详细资料

      -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更),这个-R用的还是很多的。

 

2. Mode部分

这部分可以分成如下3块: [who] operator [permission]

                                                `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.

 

who的含义是:

      u文件属主权限

      g同组用户权限

      o其它用户权限

      a所有用户(包括以上三种)

operator的含义:

      +增加权限

      -取消权限

      =  唯一设定权限

permission的含义:

      r读权限

      w写权限

      x执行权限

      X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

      s文件属主和组id

      l给文件加锁,使其它用户无法访问

 

如: chmod a+x

 

3.示例:

(1)将档案 file1.txt 设为所有人皆可读取 :

      chmod ugo+r file1.txt 

(2)将档案 file1.txt 设为所有人皆可读取 :

      chmod a+r file1.txt 
(3)将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

      chmod ug+w,o-w file1.txt file2.txt 

(4)将 ex1.py 设定为只有该档案拥有者可以执行 :

      chmod u+x ex1.py 

(5)将目前目录下的所有档案与子目录皆设为任何人可读取 :

      chmod -R a+r * 

(6)收回所有用户的对file1的执行权限

      chmod a-x file1

 

4.使用数字来赋权

 

4.1先看一下文件的权限格式

 

[root@qs-wg-db2 scripts]# ll

total 20

-rw-r--r-- 1 oracle oinstall   0 Feb 24 00:00 alertlogbyday.log

-rwxr-xr-x 1 oracle oinstall 430 Feb 20 01:10 alertlogbyday.sh

-rwxr-xr-x 1 oracle oinstall   7 Feb 24 05:00 del_st_arch.log

-rwxr-xr-x 1 oracle oinstall 648 Feb 19 00:51 del_st_archive.sh

-rwxr-xr-x 1 oracle oinstall   9 Feb 24 05:00 max_sn.log

drwxr-xr-x 3 root  root    4096 Feb 23 23:40 pymonitor

 

ll的结果返回七列,分别表示如下含义:

第一栏  [文件属性]

第二栏  [文件数]

第三栏  [拥有者]

第四栏  [所有者群组]

第五栏  [大小]

第六栏  [建档日期]

第七栏  [档名]

 

我们设置文件的权限就是这是第一栏里的文件属性。

 

文件属性这块共有十个字段,如:drwxr-xr-x

 

我们把这10个列分成4块:[d] [rwx] [r-x] [r-x]

第一块:也就是第一列,用来表示这个文件的类型,有如下值:

      (1)[ d ]则是目录,我这里的是d,表示的是一个目录

      (2)[ - ]则是文件;

      (3)[ l ]则表示为连结档(link file);

      (4)[ b ]则表示为装置文件里面的可供储存的接口设备;

      (5)[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。

第二块:第 2到4列,表示文件拥有者的权限。

第三块:第5到7列,表示拥有者同组人的权限。

第四块:第8到10列,表示是非拥有者组人的权限。

 

      这些权限均有[rwx]三个参数表示,而且分别对应不同的位置。每块由3个列组成,每列对应一个值。[ r ]代表可读、[ w ]代表可写、[ x ]代表可执行。

      举例:如果拥有者只有只读的权限,那么第2到4列就是[r--],有读写的权限就是[rw-],有读写和执行的权利就是[rwx].

 

4.2使用数字赋权

在4.1中了解准备知识之后,就可以使用数字赋权了。每块用户有3个权限[rwx].他们对应数字:

      r -->4

      w-->2

      x-->1

 

使用数字赋权的命令格式如下:

      chmod abc filename

其中的abc分别代表3个数字,并且分别对应问个不同的属组。即:

      数字a对应第2到4位,表示拥有者的权限。

      数字b对应第5到7位,表示同组用户的权限。

      数字c对应第8到10位,表示其他组的权限。

 

      rwx对应4,2,1.那么只读的权限用4表示[r--],读写用6(4+2)表示[rw-],写加执行用7(4+2+1)表示[rwx]。只读加执行用5(4+1)表示[r-x]。

 

示例:

      chmod 755 file1

      chmod 777 file1 <==> chmod a=rwx file 

      chmod 771 file  <==> chmod ug=rwx,o=x file 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
chmod命令Linux系统中用来更改文件或目录的权限的命令。该命令格式为:chmod [选项] 权限 文件名。 权限可以是数字或字母,分别表示文件所有者、用户组和其他用户的读、写和执行权限。 数字表示权限的方法: - 数字0表示无权限; - 数字4表示读权限; - 数字2表示写权限; - 数字1表示执行权限; - 数字7表示读、写、执行权限。 字母表示权限的方法: - u表示文件所有者; - g表示用户组; - o表示其他用户; - a表示所有用户; - +表示增加权限; - -表示减少权限; - =表示设置权限。 如: chmod 755 test.txt 表示文件所有者有rwx权限,用户组和其他用户有rx权限 常用选项: - -R:递归处理,将权限更改应用到目录中的所有文件和子目录。 - -v:显示详细信息。 常用权限设置: - chmod 755 filename 表示文件所有者有rwx权限,用户组和其他用户有rx权限 - chmod 600 filename 表示文件所有者有rw权限,用户组和其他用户无权限 - chmod 777 filename 表示所有用户有rwx权限 - chmod +x filename 表示增加文件的执行权限 - chmod -x filename 表示减少文件的执行权限 总之,chmod命令是用来更改文件或目录的权限的命令,可以使用数字或字母表示权限,并可以指定文件所有者、用户组和其他用户的读、写和执行权限。使用-R选项可以递归地更改目录中的所有文件和子目录的权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值