日期:2014-05-16 浏览次数:20899 次
在终端输入命令:ls -l untitled.txt?
就会显示文件的详细信息:
-rw-r--r--@ 1 user ?staff ?34416 ?6 11 15:23 untitled.txt。
-rw-r--r--代表该文件或目录的读写执行权限,第一位表示该文件类型(7种)
d 目录 l 符号链接(指向另一个文件) s 套接字文件 b 块设备文件
c 字符设备文件 p 命名管道文件 - 普通文件
?
?
?
一共有10位数,其中:
最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
?
现在该说说修改文件权限了
在终端输入:chmod o+w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
?
?
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
?
?
?
chmod命令:分为符号模式和绝对模式两种:
符号模式格式:
chmod [who] operator [permission] filename
who含义:
u 文件属主权限 g 同组用户权限 o 其他用户权限 a 所有用户
operarot含义:
+ 增加权限 - 取消权限 = 设定权限
permission含义:
r 读权限 w 写权限 x 执行权限 s 文件属主和组set-ID
t 粘性位 l 给文件加锁,使其他用户无法访问
如果在一个目录上出现"t"位,就表示该目录中的文件只有其属主才可以删除,即使同组用户或赋予和属主同等权限;如果在文件上出现"t"位,就表示该脚本或程序在执行时会被放在交换区(虚存)
例: chmod u+x filename 表示属主增加写权限
chmod u+x o-w filename 如果原来的权限是 -rw-r--rw- ,改变后为 -rwxr--r--
绝对模式:
chmod [mode] filename mode有3个8进制数字组成,比如chmod 777 filename
参数R: 比如 chmod -R 644 /usr/* 表示一次将/usr目录下的文件连同子目录的文件改变成644
目录权限覆盖文件权限,意思如果文件可写,但是其目录不能写,那么仍然不能写此文件
?
?
suid/guid命令:
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。
如何设置suid/guid(sgid)呢?
(1)如果希望设置suid,那么就将相应的权限位之前那一位设置为4
(2)如果希望设置guid,那么就将相应的权限位之前那一位设置为2
(3)如果希望两者都置位,那么就将相应的权限位之前的那一位设置为6
设置方法: (使用 ls -l |grep '^...s' 查看suid权限的文件)
(1)chmod 4711 结果 rws--x--x 使用4来设置suid
(2)chmod 6711 结果 rws--s--x 使用4+2来设置suid和guid
(3)chmod 2711 结果 rwx--s--x 使用2来设置guid
也可以使用 chmod u+s filename 来设置,如果看到是S,则表示该权限位未被设置,没有实际意义
chown/chgrp命令:
chown -R -h owner[:group] filename
改变文件属主,-R表示所有目录,-h表示改变符号链接文件不影响其目标文件
chgrp -R -h group filename 用于改变文件属组
id [user] , group [user] 显示user所属组,如不加则是查看自己
?
?
?
参考:http://www.599cn.com/dispbbs.asp?boardid=26&id=145671