shell-ch1.文件安全与文件权限
时间:2005-12-17 来源:jeromeecho
一.查看文件权限:ls -l
二.改变权限的命令
三.目录权限的意义
四. suid/guid
五.文件所有权传递:chown -R -h owner file
六.找出属于自己的用户组
八.符号链接:软链接和硬链接
七.umask
Ch1 .文件安全与文件权限
一.查看文件权限:ls -l
九位符号前还有一位表示文件类型
d 目录
l 符号链接
s 套接字文件
b 块设备文件(block)
c 字符设备文件(character)
设备被大概的分为两类:字符设备和块设备。区别是块设备有缓冲区,所以它们可以对请求进行优化排序。这对存储设备尤其 重要,因为读写相邻的文件总比读写相隔很远的文件要快。另一个区别是块设备输入和输出 都是以数据块为单位的,但是字符设备 就可以自由读写任意量的字节。大部分硬件设备为字符设备,因为它们不需要缓冲区和数据不是按块来传输的。你可以通过命令ls -l输出的头一个字母识别一个 设备为何种设备。如果是'b' 就是块设备,如果是'c'就是字符设备。以上你看到的是块设备。这儿还有一些字符设备文件(串口):
crw-rw---- 1 root dial 4, 64 Feb 18 23:34 /dev/ttyS0
crw-r----- 1 root dial 4, 65 Nov 17 10:26 /dev/ttyS1
crw-rw---- 1 root dial 4, 66 Jul 5 2000 /dev/ttyS2
crw-rw---- 1 root dial 4, 67 Jul 5 2000 /dev/ttyS3
如果你想看一下已分配的主设备号都是些什么设备可以看一下文件 /usr/src/linux/Documentation/devices.txt。
p 命名管道文件
- 普通文件(就是不属于以上几种文件类型的文件)
一般来讲,文件被建时不会被给予执行权限,这是出于安全的考虑。可以设置umask来设置。
*对文件属主来说,在只有读权限时,仍然可以用文件重定向方法向该文件写入。
二.改变权限的命令:
chomd
相对模式:chmod [who] operator [permission] filename
who:u,g,o,a
operator:+,-,=
permission: r,w,x,s,t,l
s文件属主和组set-ID
t 粘性位*
l给文件加锁,使其他用户无法访问。
*在列文件或目录时,有时会遇到“ t”位。“t”代表了粘性位。如果在一个目录上出现
“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主
同等的权限。不过有的系统在这一规则上并不十分严格。
如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区(虚存)。不过由于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。
绝对模式:
chmod [mode] file
mode是一个八进制数
r 4,w 2,x 1,
-R
连同子目录下的文件一起设置。
-R选项一定要慎重,只有在需要改变目录树下全部文件夹权限时才可以使用。
三.目录权限的意义:
读:可以列出其中内容
写:可以在该目录中创建文件
执行:可以搜索和访问该目录。
--X:无法列出目录中的文件,但如果知道其中文件的路径和文件名,仍然可以执行它。用户不能够进入该项目录并不妨碍他的执行。
目录的权限会覆盖该目录中文件的权限。
四. suid/guid
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其它用户在执行这一脚本时也会具有其属主的相应权限。
有相当一些U N I X命令也设置了s u i d和g u i d。如果想找出这些命令,可以进入/ b i n或/ s b i n目
录,执行下面的命令:
$ ls -l | grep '^...s'
上面的命令是用来查找s u i d文件的;
$ ls -l | grep '^...s..s'
上面的命令是用来查找s u i d和g u i d的。
设置:suid 4
guid 2
all 4+2
一旦设置了这一位,一个S将出现在X的位置,在设置suid/guid的同时,相应的执行权限位必须被设置。
命令:chmod 4/2/6mode filename.
chmod who+s filename
在查找设置了s u i d的文件时,没准会看到具有这样权限的文件:rwS r-x r- x,其中S为大写。
它表示相应的执行权限位并未被设置,这是一种没有什么用处的s u i d设置,可以忽略它的存在。
五.文件所有权传递:chown -R -h owner file
-R 对子目录也进行同样的操作。
-h 在改变符号链接文件的属主时不影响该链接所指向的目标文件。
chgrp 改变文件所属的组。
六.找出属于自己的用户组:
group / id
找出其他用户所属的组
group username
七.umask
umask nnn
对于文件来说,最大为666
系统不允许你在创建一个文本文件时就赋予它执行权限。可以在创建后用chmod命令增加这一权限。
对目录来说,最大为777
八.符号链接:软链接和硬链接
ln [-s] source_path target_path
不管是否在同一个文件系统中,都可以创建链接。在创建链接的时候,不要忘记在原有
目录设置执行权限。链接一旦创建,链接目录将具有权限7 7 7或rwx rwx rwx,但是实际的原
有文件的权限并未改变。