`
hunxiejun
  • 浏览: 1137597 次
文章分类
社区版块
存档分类
最新评论

Linux chmod 命令 详解

 
阅读更多

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

命令格式:

chmod[-cfvR][--help][--version]modefile...

[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设为所有人皆可读取:

chmodugo+rfile1.txt

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

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

chmodug+w,o-wfile1.txtfile2.txt

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

chmodu+xex1.py

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

chmod-Ra+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 ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。

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

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

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

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

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

4.2 使用数字赋权

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

r -->4

w-->2

x-->1

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

chmod abc filename

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

数字a 对应 24位,表示拥有者的权限。

数字b 对应 57位,表示同组用户的权限。

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

rwx 对应421. 那么只读的权限用4表示[r--],读写用64+2)表示[rw-],写加执行用74+2+1)表示[rwx] 只读加执行用54+1)表示[r-x]

示例:

chmod 755 file1

chmod 777 file1 <==> chmoda=rwxfile

chmod771file <==> chmodug=rwx,o=xfile

整理自网络

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850 DBA 超级群:63306533;

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics