一 文件安全和权限

1 文件类型
d 目录
l 符号链接
s 套接字文件
b 块设备文件
c 字符设备文件
p 命名管道文件
- 普通文件

2 对于文件属主来说,在只有读权限位被置位的情况下,仍然可以通过文件重定向的方法向该文件写入。

3 改变权限位
a 符号模式
chmod [who] operator [permission] filename

who:
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户

operator
+ 增加权限
- 取消权限
=设定权限

permission的含义:
r 读权限
w 写权限
x 执行权限
s 文件属主和组set-ID
t 粘性位*
l 给文件加锁

b 绝对模式
chmod [mode] file

mode:八进制数

4 目录
目录的读权限位意味着可以列出其中的内容,写权限位意味着可以在该目录中创建文件,执行权限位意味着搜索和访问该目录。

5 suid/guid
suid意味着如果某个用户对属于自己的 shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。于是,如果根用户的某一个脚本设置了这样的权限,那么其他普通用户在执行它的期间也同样具有根用户的权限。同样的原则也适用于 guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

如果想要对文件 l o g i n设置s u i d,它当前所具有的权限为 rwx rw- r-- (741) ,需要在使用chmod命令时在该权限数字的前面加上一个 4,即chmod 4741,这将使该文件的权限变为 rws rw- r--

chmod u+s <filename>

6 chown和chgrp
只有文件的属主和系统管理员可以改变文件的所有权。一旦将文件的所有权交给另外一个用户,就无法再重新收回它的所有权。如果真的需要这样做,那么就只有求助于系统管理员了。

chmod -R -h owner file

-h意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。

7 umask
umask命令确定了你创建文件的缺省模式。一般来说,umask在/etc/profile文件中设置。

系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来说, umask中各个数字最大可以到 7。