chmod777修改权限
在Unix
和Linux
的各种操作系统下,每个文件(文件夹也被看作是文件)都按读、写、运行设定权限。
例如我用ls -l
命令列文件表时,得到如下输出:
-rw-r--r-- 1 apple users 2254 2006-05-20 13:47 tt.htm
从第二个字符起rw-
是说用户apple
有读、写权,没有运行权,接着的r--
表示用户组users
只有读权限,没有运行权,最后的r--
指其他人 (others
)只有读权限,没有写权和运行权。这是系统默认设置,我可以改写tt.htm
,同组的人和其他人只有权读,没人有权运行,因为只是一个 html
文件,不必运行。这在Novell的directory services
之前很先进。
读、写、运行三项权限可以用数字表示,就是r=4
,w=2
,x=1
。所以,上面的例子中的rw-r--r--
用数字表示成644
。
反过来说777
就是rwxrwxrwx
,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。
再多说一句。我用chmod o-r tt.htm
命令改权限,o-r
是others
的权限中减掉读。结果是
-rw-r----- 1 bu users 2254 2006-05-20 13:47 tt.htm
如果用命令chmod 777 tt.htm
,结果是
-rwxrwxrwx 1 bu users 2254 2006-05-20 13:47 tt.htm
任何人都有读、写、运行三项权限。
指令名称 : chmod
使用权限 : 所有使用者
使用方式 :
chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix
的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod
可以藉以控制档案如何被他人所存取。
参数格式 :
mode
: 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中
u
: 表示该档案的拥有者,g
表示与该档案的拥有者属于同一个群体(group
)者,o
表示其他以外的人,a
表示这三者皆是。
+
: 表示增加权限、-
表示取消权限、=
表示唯一设定权限。
r
: 表示可读取,w
表示可写入,x
表示可执行,X
表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c
: 若该档案权限确实已经更改,才显示其更改动作
-f
: 若该档案权限无法被更改也不要显示错误讯息
-v
: 显示权限变更的详细资料
-R
: 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help
: 显示辅助说明
--version
: 显示版本
范例 :
将档案 file1.txt
设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt
设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt
与 file2.txt
设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py
设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod
也可以用数字来表示权限如 chmod 777 file
语法为:
chmod abc file
其中a
,b
,c
各为一个数字,分别表示User
、Group
、及Other
的权限。
r=4,w=2,x=1
若要rwx
属性则4+2+1=7
;
若要rw-
属性则4+2=6
;
若要r-x
属性则4+1=7
。
范例:
chmod a=rwx file 和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程式具有root的权限