`
wangtao576
  • 浏览: 14491 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

chmod

阅读更多
chmod


符号模式
chmod命令的一般格式为:
chmod [who] operator [permission] filename
who的含义是:
u 文件属主权限。
g 同组用户权限。
o 其他用户权限。
a 所有用户(文件属主、同组用户及其他用户)。
operator的含义:
+ 增加权限。
- 取消权限。
= 设定权限。
permission的含义:
r 读权限。
w 写权限。
x 执行权限。
s 文件属主和组set-ID。
t 粘性位*。
l 给文件加锁,使其他用户无法访问。
u,g,o 针对文件属主、同组用户及其他用户的操作。
*在列文件或目录时,有时会遇到“ t”位。“t”代表了粘性位。如果在一个目录上出现“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主同等的权限。不过有的系统在这一规则上并不十分严格。如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区(虚存)。不过由于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。
现在让我们来看一些使用chmod命令的例子。假定myfile文件最初具有这样的权限:rwx
rwx rwx :
命令结果含义
-------------------------------------------------------------
命令   结果    含义
-------------------------------------------------------------
chmod a-x myfile  rw-rw-rw-  收回所有用户的执行权限
chmod og-w myfile  rw-r--r--  收回同组用户和其他用户的写权限
chmod g+w myfile  rw-rw-r--  赋予同组用户写权限
chmod u+x myfile  rwxrw-r--  赋予文件属主执行权限
chmod go+x myfile  rwxrwxr-x  赋予同组用户和其他用户执行权限
---------------------------------------------------------------------
绝对模式
chmod命令绝对模式的一般形式为:
chmod [mode] file
其中mode是一个八进制数。
在绝对模式中,权限部分有着不同的含义。每一个权限位用一个八进制数来代表,如表
1 - 3所示。
-----------------------------------
八进制数  含义
-----------------------------------
0400  文件属主可读
0200  文件属主可写
0100  文件属主可执行
0040  同组用户可读
0020  同组用户可写
0010  同组用户可执行
0004  其他用户可读
0002  其他用户可写
0001  其他用户可执行
-----------------------------------
-rw-r--r--相应的权限表示应为644,意思是:
0400+0200(文件属主可读、写) = 0600
0040(同组用户可读)   = 0040
0004(其他用户可读)   = 0004
       0644
希望自已对文件可读、写和执行,组里用户只对该文件只读:
$ chmod 740 yoa
如果希望一次设置目录下所有文件权限,可以用:
chmod 644*
还可以通过使用-R选项连同子目录下的文件一起设置:
chmod -R 644 /usr/local/home/dave/*

chown和chgrp
当你创建一个文件时,你就是该文件的属主。一旦你拥有某个文件,就可以改变它的所
有权,把它的所有权交给另外一个/etc/passwd文件中存在的合法用户。可以使用用户名或用
户I D号来完成这一操作。在改变一个文件的所有权时,相应的s u i d也将被清除,这是出于安
全性的考虑。只有文件的属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交
给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于
系统管理员了。
chown命令的一般形式为:
chmod -R -h owner file
- R选项意味着对所有子目录下的文件也都进行同样的操作。- h选项意味着在改变符号链
接文件的属主时不影响该链接所指向的目标文件。
chown举例
这里给出几个例子:
文件SA238_SG.PDF的所有权现在由用户root交给了用户sun
# ls -l
总数 10192
-rwsr-----   1 root     root     5209147 11月 25日 20:48 SA238_SG.PDF
# chown sun:sun SA238_SG.PDF
# ls -l
总数 10192
-rwsr-----   1 sun      sun      5209147 11月 25日 20:48 SA238_SG.PDF
找出自已属于哪些用户组,用groups
unmask值
当最初登录到系统中时, umask命令确定了你创建文件的缺省模式。这一命令实际上和chmod命令正好相反。你的系统管理员必须要为你设置一个合理的umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。
在已经登录之后,可以按照个人的偏好使用umask命令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。
一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性地设置自己的umask,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。
对于文件来说,这一数字的最大值分别是6。系统不允许创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。
    umask值与权限
-------------------------------------------------------------------
umask   文件    目录
-------------------------------------------------------------------
0   6    7
1   6    6
2   4    5
3   4    4
4   2    3
5   2    2
6   0    1
7   0    0
-------------------------------------------------------------------
查看当前的umask值,可以使用umask命令:
$umask
链接文件和目录
链接文件:ln -s /export/home/sun/.profile profile
链接目录:ln -s /usr/local/export /export
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics