全部博文(326)
分类: LINUX
2005-12-18 10:44:45
shell-ch1.文件安全与文件权限 |
一.查看文件权限: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 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,但是实际的原 有文件的权限并未改变。 |