《LINUX与UNIX SHELL编程指南》读书笔记(一)
第 1 章 文件安全与权限 tech.techweb.com.cn&C1Y2u)x*p'O9b4M
1. 一个文件一经创建,就具有三种基本访问方式: 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2{(k"p"^&I.m5S+m1v
1) 读(r): 可以显示该文件的内容。 3b)i s%R9^'J y6f
2) 写(w): 可以编辑或删除它。 #O9k*}/c6l6R
3) 执行(x): 如果该文件是一个 shell 脚本或程序的话。
.p!Y"j"J8M%N$`:x8B2FTechWeb-技术社区2. 按照所针对的用户,文件的权限可分为三类:
G"H)`-b#q(K3g1U8v1) 文件属主: 创建该文件的用户。 tech.techweb.com.cn3p.@,[*J8^:V
2) 同组用户: 拥有该文件的用户组中的任何用户。 tech.techweb.com.cn:D&S/g1X3S0h9O-k!}%E
3) 其他用户: 即不属于拥有该文件的用户组的某一用户。 7u%W4|&v9k4M7]-V,i(~
3.ls -l (列出目录内容)命令的输出的分析
3o9F._*M-c8A3e6`程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛drwxr-xr-x 2 root root 4096 Oct 14 20:18 bin
$j#F/\ n3{5M程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛1) 第 1 个部分第 1 个字符: 表示文件的类型,详细说明见下。 (Z:U-K.g0F4m4O&r&]*u4~
2) 第 1 个部分第 2-10 个字符: 分为 3 组(triplet),分别表示文件的属主、组用户和其它用户的权限。
;L;~/v'K)T;W;n%n3) 第 2 个部分: 表示该文件的硬链接的数目。
1^7a-Y:Y*A f4) 第 3 个部分: 表示文件的属主。
$C;]7s7B:R:z'M/@;M7]TechWeb-技术社区5) 第 4 个部分: 文件的属主(root)所在的缺省组(也是 root 组)。
8P:~"`2e,|:Y5I(W;~$u1J$@2p6) 第 5 个部分: 表示文件的长度(以字节 byte 为单位)。 1h;x6J9G0q&k S-e5Q.S
7) 第 6-7 个部分: Oct 14 20:18 表示文件的更新时间。
-i!R k#b5B.{ E程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛8) 第 8 个部分: 该文件的文件名。 3m1A;O-a&P d
4.文件的类型
4R&I(~:Q3L0H2y+~.D-f1) d : 目录文件,目录也是一种文件 (directory) 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛4J$Y-[(?9G)B%F9b
2) l : 符号链接(指向另一个文件) (link) tech.techweb.com.cn6x-A6B;K0J:O
3) b : 块设备文件 (block device)
!^'g"d'z&}!y&f,`'d4) c : 字符设备文件 (charactor device)
1})j5@8`$G*\#y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5) p : 命名管道文件 (named piple) A/w:y*@6\4J4e+q
6) s : 套接字文件 (socket) tech.techweb.com.cn.x&q7g;O(U4M5u'S
7) - : 普通文件,或者更准确地说,不属于以上几种类型的文件 TechWeb-技术社区7H9v;c,`0j
5.文件的权限位
%P*T1O6P/x9O0|1) 一个文件的权限位由 9 个字符组成,分成 3 个 triplet,分别表示文件属主(owner)、文件属主所属缺省组,k0r$x2`.Q1~
的用户(group)、系统中其他用户(other)所拥有的权限。 $[.l6\7N&v-s#K"x,H!@+{
2) 一个 triplet 由 3 个字符位组成(rwx),分别表示可读、可写、可执行。如果对应位置的字符是"-",表示tech.techweb.com.cn8C*b;e*x/h6E;a$M-T"|
不具有对应权限。 eg: rw- 表示可读写,不可执行 r-- 表示可读,不可写、执行
7r:G0\,w'a(G*r3) 在文件权限位的 owner triplet 第 3 个位置的字符如果设置为"s",称为 SUID。当某用户执行该文件时,tech.techweb.com.cn,R6w,])}4p(|7d
系统用文件 owner 的 uid 替代实际执行该文件的用户的 uid,文件会认为是 owner 在执行它。 ,v6C;T)q.v#g/I;~;i$K
4) 在文件权限位的 group triplet 第 3 个位置的字符如果设置为"s",称为 SGID。当某用户执行该文件时,
,S+r'_&Q:x8m2\9\)k程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛系统用文件组拥有者的 gid 替代实际执行该文件的用户的 gid。当在某个目录文件上设置 SGID 时候,则在该/X5c.{-~!E0I
目录下的所有文件和子目录都会继承使用该目录的 GID 来代替实际执行者的 GID。
7m4K3w)[$I#?程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5) 文件设置了 SUID 或 SGID,一般来说文件的 owner 或 group 应该有执行(x)权限。如果没有 x 权限,设置程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛"?"M(Q'T4W.M:x;N {
SUID 或 SGID 是没有意义的,triplet 上第 3 个字符就会是"S"(大写)而不是"s"(小写)。eg: rwSr-Sr-- ,U;I&w)B8f+r"R.~&r
6) 给可执行文件设置 SUID/SGID 可能带来安全风险,许多系统因而忽略 SUID/SGID 权限设置
2Q,t'L7k'W&b&i&Z;I%etech.techweb.com.cn7) 在某些目录(如/tmp)的 other triplet 的第 3 个字符设置为"t"。一般来说,在目录的 other triplet上设
/T(n9K.E1|!w6X-@TechWeb-技术社区置 w 和 x 权限,则任何用户都可以在该目录下执行、删除文件,而设置"t"的作用就是保证非目录的 owner 用6w:i5a9q(@4~)w
户不能删除目录下的文件。
:v'x3J.q+T Otech.techweb.com.cn6.使用 chmod 命令改变权限位 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛)Q)}+A5n,l2}+p3V;z"{
TechWeb-技术社区1k5E5]0Z#n#B2Y-G'W
1) 符号模式 Usage: chmod [who] file_name
/g(d8M"Y L(D0UTechWeb-技术社区① who: 可以是 u g o a,表示给文件的 owner、group、other 和 all 用户设置权限。省略时默认为 a。 TechWeb-技术社区'@)r/p(M#O+q+a6n
② operator: 可以是+ - =,分别表示增加、取消、指定权限
$h(D/O2n5~:`6`③ perm: 可以是 r w x s(suid 和 guid) t(粘性位) l(给文件加锁,使其他用户无法访问) TechWeb-技术社区 t4v4_!G'l'U2} G-E
④ 举例: chmod u+xw o-w myfile // 给 myfile 的 owner 增加 x w 权限,去除 other 用户的 w 权限
9E-b1J)_'@:H)d"\2) 绝对模式 Usage: chmod mode file_name
-F*N%z"h*o9|-o#L5Y① mode: 4 位 8 进制数,每一位分别用于 SUID 和 SGID、属主权限、组权限、其他用户权限。当用户给出的
;S)G;L3}:R+a;E6]$tmod 值小于 4 位时,系统会在数字前面加 0 补齐。 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛-C5`7k7o/B9Y0g%b
② 权限 r w x 分别用数字 4 2 1 表示, suid guid 用 4 2 表示,各个 triplet 的数字相加可得 mod 值。 tech.techweb.com.cn6D/{9X-`*c'v y*D
eg: rwxr-xr-- 为 754,rwsr-xr-x 为 4755, rwsr-sr-x 为 6755 -rwxrwSr-- 为 2764
%h&k1N#D:I W:n.E.D,m7.目录文件的权限(r w x)的含义 !^#W3i7p3_$t7d8E
1) r: 可以列出该目录中的内容。
7W-}%w-L&B-j程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2) w: 可以在目录中创建、修改文件。目录的 w 位不设置,即使拥有目录中某文件的 w 权限也不能写该文件。
;`4j,T,Q:l*f,K6B8\:o$w7y lTechWeb-技术社区3) x: 可以搜索和访问该目录。x 位不设置,不能访问目录下的任何文件,即使拥有文件的权限。
4g3b(P.d6j%u8.chown 和 chgrp 修改文件的拥有权 /d!r y2@ x6y6k'@:I
1) chown Usage: chown [选项] [owner][.group] file_name 4x;T)K y9z Y9u%o&x
① 创建文件时,文件预设 owner 就是创建该文件的用户,预设所属组(group)就是 owner 所属的缺省组。只有
&T-U,o7|"A9h0O5nTechWeb-技术社区文件的 owner 和系统管理员才可以改变文件的拥有权,改变一个文件的 owner 时,相应的 suid 也将被清除。
-Z3W-]1e:E'c.]#p6B Y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛② chmod 的常用选项: -R 对指定目录所有文件和子目录递归式地进行同样的操作
6U3O%b&m&@TechWeb-技术社区-h 如果 file_name 是符号链接,则只对符号链接本身进行操作 tech.techweb.com.cn,H6n8N7^*n!P8d:G
③ owner 和 .group 表示文件拥有者名和文件所属组名,可以使用 uid/gid 表示。两者不能同时省略
.c2L1h2_5D程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛④ 举例: chown http.http /etc/httpd // 将目录/etc/httpd 的属主修改为 http,组修改为 http /E%}8A4?*a:`&W$i'j
2) chgrp Usage: chgrp [选项] group file_name
'{(Q#X0T'I%s+`%C6c2s;@"D① chgrp 命令只能用来修改文件的所属组。chgrp 和 chown 用法类似,选项也一样。
)o2B.p6p9L o+Y;}tech.techweb.com.cn② 举例: chown http /etc/httpd // 将目录/etc/httpd 的所属组修改为 http
7W"t-\ Q5x-N8i9y8@8x+vTechWeb-技术社区3) 查询用户信息和用户所属组信息 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 J$T9E!~8E9M3~
id [user_name] 或 groups [user_name] ,Y&T:^'[4e(Z-a3x-D&t;I
8.umask 确定系统创建文件时的缺省权限位。
:v0~-|6k)]0N%k9P1) Usage: umask [umask_mod]
9o p$X%]!x!@/b2) umask_mod 的计算方法: umask_mod=777-文件缺省权限值。
9G1f+p1z(T5x8dtech.techweb.com.cn3) 系统不允许你在创建一个文件时就赋予它执行权限,即 umask_mod 为 002 时,创建文件的缺省权限值为"]4b!z"f4`*Z+I/Q9j
665,创建目录的缺省权限值为 775。
)C-t%U"O7e.b9.符号链接
/Y7J3k-L(w4Ttech.techweb.com.cn1) Usage: ln -s source_path target_path
+N4p%N4h6n(v*l程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2) 存在 2 种类型的链接: 硬链接和软链接。软链接又称位符号链接,符号链接实际上是指向一个文件的指程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛1G4l:h'`6W4I%D#h
针,符号链接和 Windows OS 的快捷方式有点类似。
%c(v6e/i(b1T0{(w*ITechWeb-技术社区3) 不管是否在同一个文件系统中,都可以创建链接。在创建链接的时候,不要忘记在原有目录设置执行权程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛:\1b/S \&T$k#@
限。链接一旦创建,链接目录将具有权限 777(rwxrwxrwx),但是实际的原有文件的权限并未改变。 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛1t&O*n/~/]/i3r/^!a
4) 举例: ln -s /var/tmp /home/zqf/tmp // 在 zqf 主目录创建一个名为 tmp,指向/var/tmp 的符号链接
|