文件/目录权限设置命令:chmod

文件/目录权限设置命令:chmod

 

这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法:

 

用包含字母和操作符表达式的文字设定法

 

其语法格式为:chmod [who] [opt] [mode] 文件/目录名

 

其中who表示对象,是以下字母中的一个或组合:

 

u:表示文件所有者

g:表示同组用户

o:表示其它用户

a:表示所有用户

opt则是代表操作,可以为:

+:添加某个权限

-:取消某个权限

=:赋予给定的权限,并取消原有的权限

mode则代表权限:

r:可读

w:可写

x:可执行

 

例如:为同组用户增加对文件a.txt的读写权限:

 

chmod g+rw a.txt

 

用数字设定法

 

而数字设定法则更为简单:chmod [mode] 文件名

 

关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:

 

111 101 100

 

再将其每三位转换成为一个十进制数,就是754

 

例如,我们想让a.txt这个文件的权限为:

 

自己 同组用户 其他用户

可读

可写 可执行

 

那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:

 

chmod 664 a.txt

 

 

 

作为Linux命令

 

  可以使用命令chmod来为文件或目录赋予权限。Linux/Unix 档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。

  使用权限:所有使用者

  格式:chmod [-cfvR] [--help] [--version] mode file...

  参数说明:

  mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

  -s :在文件执行时把进程的属主或组ID置为该文件的文件属主。

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

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

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

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

  --help : 显示辅助说明

--version : 显示版本

 

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 *

  当其他用户执行oraclesqlplus这个程序时,他的身份因这个程序暂时变成oracle

  chmod u+s sqlplus

  此外,chmod也可以用数字来表示权限如 chmod 777 file

  语法为:chmod abc file

  其中a,b,c各为一个数字,分别表示UserGroup、及Other的权限。

  r=4w=2x=1

  若要rwx属性则4+2+1=7

  若要rw-属性则4+2=6

  若要r-x属性则4+1=5

  范例二

  chmod a=rwx file

  和

  chmod 777 file

  效果相同

  chmod ug=rwx,o=x file

  和

  chmod 771 file

  效果相同

  若用chmod 4755 filename可使此程式具有root的权限

  如果是管理员也就是常说的ROOT用户的话,基本上有可以查看所有文件的权力.



        chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。

        例如:root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin。

        但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网。

        这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。



 

posted on 2012-01-12 13:50 DHC 阅读(1605) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

THE TRUTH IS OUT THERE.
本博客纯属摘录
若有雷同
实属正常
只为记录
不为其它
望原创作者见谅

常用链接

留言簿

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜