Linux chmod 命令 详解

Linuxchmod命令详解

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

命令格式:

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

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

Usage:chmod[OPTION]...MODE[,MODE]...FILE...

or:chmod[OPTION]...OCTAL-MODEFILE...

or:chmod[OPTION]...--reference=RFILEFILE...

ChangethemodeofeachFILEtoMODE.

-c,--changeslikeverbosebutreportonlywhenachangeismade

--no-preserve-rootdonottreat`/'specially(thedefault)

--preserve-rootfailtooperaterecursivelyon`/'

-f,--silent,--quietsuppressmosterrormessages

-v,--verboseoutputadiagnosticforeveryfileprocessed

--reference=RFILEuseRFILE'smodeinsteadofMODEvalues

-R,--recursivechangefilesanddirectoriesrecursively

--helpdisplaythishelpandexit

--versionoutputversioninformationandexit

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

Reportbugsto<[email protected]>.

[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给文件加锁,使其它用户无法访问

如:chmoda+x

3.示例:

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

chmodugo+rfile1.txt

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

chmoda+rfile1.txt

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

chmodug+w,o-wfile1.txtfile2.txt

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

chmodu+xex1.py

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

chmod-Ra+r*

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

chmoda-xfile1

4.使用数字来赋权

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

[root@qs-wg-db2scripts]#ll

total20

-rw-r--r--1oracleoinstall0Feb2400:00alertlogbyday.log

-rwxr-xr-x1oracleoinstall430Feb2001:10alertlogbyday.sh

-rwxr-xr-x1oracleoinstall7Feb2405:00del_st_arch.log

-rwxr-xr-x1oracleoinstall648Feb1900:51del_st_archive.sh

-rwxr-xr-x1oracleoinstall9Feb2405:00max_sn.log

drwxr-xr-x3rootroot4096Feb2323:40pymonitor

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

第一栏[文件属性]

第二栏[文件数]

第三栏[拥有者]

第四栏[所有者群组]

第五栏[大小]

第六栏[建档日期]

第七栏[档名]

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

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

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

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

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

(2)[-]则是文件;

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

(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

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

chmodabcfilename

其中的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]。

示例:

chmod755file1

chmod777file1<==>chmoda=rwxfile

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

相关推荐