chmod
时间:2008-04-23 来源:peitomb
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
相关阅读 更多 +