符号模式
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