本文介绍如何在RedHat Linux 9.0下使用chmod和chown两个命令对文件设置权根.
指令名称: 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: 显示版本;
我们可以用Linux下的图示来进行说明:
范例:
将文件file1.txt设为所有人都可读取:
chmod ugo+r file1.txt 或 chmod a+r file1.txt
将文件file1.txt与file2.txt设为该文件所有者与其同组成员可写入,但其他的人员不能写入:
chmod ug+w,o-w file1.txt file2.txt
将sharestart.sh设定为只有该文件所有者可以执行:
chmod u+x sharestart.sh
将当前目录下的所有文件与子目录都设为任何人可读取:
chmod -R a+r *
此外chmod也可以用数字来表示权限如chmod 777 filepath
语法为:chmod abc filepath
其中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=5.
用一个表来说明可能更清楚:
|
所有者(User) |
组(Group) |
其它(Other) |
读取(r) |
4 |
4 |
4 |
写入(w) |
2 |
2 |
2 |
执行(x) |
1 |
1 |
1 |
范例:
chmod a=rwx filepath 和 chmod 777 filepath 效果相同
chmod ug=rwx,o=x filepath 和 chmod 771 filepath 效果相同
若用chmod 4755 filepath可使此程序具有root的权限
指令名称: chown
使用权限: root
使用方式: chmod [-cfhvR] [--help] [--version] user[:group] file...
说明: Linux/Unix是多人多工作业系统,所有的文件都有所有者.利用chown可以将文件的所有者加以改变.一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件所有者,也没有权限可以自己的文件所有者改设为别人.只有系统管理者(root)才有这样的权限.
参数说明:
user: 新的文件所有者的使用者ID;
group: 新的文件所有者的使用者群体(group);
-c: 若该文件所有者确实已经更改,才显示其更改动作;
-f: 若该文件所有者无法被更改也不要显示错误讯息;
-h: 只对于连结(link)进行变更,而非该 link 真正指向的文件;
-v: 显示所有者变更的详细资料;
-R: 对目前目录下的所有文件与子目录进行相同的所有者变更(即以递回的方式逐个变更);
--help: 显示辅助说明;
--version: 显示版本;
范例:
将文件file1.txt的所有者设为users群体的使用者jessie:
chown jessie:users file1.txt
将目前目录下的所有文件与子目录的所有者都设为users群体的使用者lamport:
chmod -R lamport:users *
-rw------- (600) -- 只有所有者有读写权限.
-rw-r--r-- (644) -- 只有所有者有读写权限;而属组用户和其他用户只有读权限.
-rwx------ (700) -- 只有所有者有读,写,执行权限.
-rwxr-xr-x (755) -- 所有者有读,写,执行权限;而属组用户和其他用户只有读,执行权限.
-rwx--x--x (711) -- 所有者有读,写,执行权限;而属组用户和其他用户只有执行权限.
-rw-rw-rw- (666) -- 所有用户都有文件读,写权限. 这种做法不可取.
-rwxrwxrwx (777) -- 所有用户都有读,写,执行权限. 更不可取的做法.
以下是对目录的两个普通设定:
drwx------ (700) - 只有所有者可在目录中读,写.
drwxr-xr-x (755) - 所有用户可读该目录,但只有所有者才能改变目录中的内容.