没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
356页
第一部分 shell 第1章文件安全与权限 第2章使用find和xargs 第3章后台执行命令 第4章文件名置换 第5章shell输入与输出 第6章命令执行顺序 第二部分文本过滤 第7章正则表达式介绍 第8章grep 家族 第9章AWK 介绍 第10章sed 用法介绍 第11章合并与分割 第12章tr 用法 第三部分登录环境 第13章登录环境 第14章环境和shell变量 第15章引号 第四部分基础shell编程 第16章shell脚本介绍 第17章条件测试 第18章控制流结构 第19章shell 函数 第20章向脚本传递参数 第21章创建屏幕输出 第22章创建屏幕输入 第23章调试脚本 第24章shell嵌入命令 第五部分高级shell编程技巧 第25章深入讨论<< 第26章shell 工具 第27章几个脚本例子 第28章运行级别脚本 第29章cgi 脚本 附录常用shell命令
资源推荐
资源详情
资源评论
下载
第1章 文件安全与权限
为了防止未授权用户访问你的文件,可以在文件和目录上设置权限位。还可以设定文件
在创建时所具有的缺省权限:这些只是整个系统安全问题中的一小部分。在这里我们并不想
对系统安全问题的方方面面进行全面的探讨,只是介绍一下有关文件和目录的安全问题。
本章包含以下内容:
• 文件和目录的权限。
• setuid。
• chown和c h g r p。
• umask。
• 符号链接。
创建文件的用户和他(她)所属于的组拥有该文件。文件的属主可以设定谁具有读、写、执
行该文件的权限。当然,根用户或系统管理员可以改变任何普通用户的设置。一个文件一经
创建,就具有三种访问方式:
1) 读,可以显示该文件的内容。
2) 写,可以编辑或删除它。
3) 执行,如果该文件是一个 s h e l l脚本或程序。
按照所针对的用户,文件的权限可分为三类:
1) 文件属主,创建该文件的用户。
2) 同组用户,拥有该文件的用户组中的任何用户。
3) 其他用户,即不属于拥有该文件的用户组的某一用户。
1.1 文件
当你创建一个文件的时候,系统保存了有关该文件的全部信息,包括:
• 文件的位置。
• 文件类型。
• 文件长度。
• 哪位用户拥有该文件,哪些用户可以访问该文件。
• i节点。
• 文件的修改时间。
• 文件的权限位。
让我们使用ls -l命令,来看一个典型的文件:
第一部分 s h e l l
下面让我们来分析一下该命令所得结果的前面两行,看看都包含了哪些信息:
total 4232:这一行告诉我们该目录中所有文件所占的空间。
- r w x r- x r- x:这是该文件的权限位。如果除去最前面的横杠,这里一共是 9个字符,他们
分别对应9个权限位。通过这些权限位,可以设定用户对文件的访问权限。这 9个字符可以分
为三组:
r w x :文件属主权限 这是前面三位
r- x:同组用户权限 这是中间三位
r- x :其他用户权限 这是最后三位
后面我们还将对这些权限位作更详细的介绍。出现在 r、w、x位置上的横杠表示相应的访
问权限被禁止。
1 该文件硬链接的数目。
root 文件的属主。
root 文件的属主r o o t 所在的缺省组(也叫做r o o t )。
3578 用字节来表示的文件长度,记住,不是 K字节!
Oct 14 04:44 文件的更新时间。
dmesg 文件名。
1.2 文件类型
还记得前面一节所提到的文件权限位前面的那个字符吗?我们现在就解释一下这个横杠
所代表的意思,文件类型有七种,它可以从 ls -l命令所列出的结果的第一位看出,这七种类型
是:
d 目录。
l 符号链接(指向另一个文件)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
1.3 权限
让我们用t o u c h 命令创建一个文件:
$ touch myfile
现在对该目录使用ls -l命令:
2 第一部分 shell
下载
我们已经创建了一个空文件,正如我们所希望的那样,第一个横杠告诉我们该文件是一
个普通文件。你将会发现所创建的文件绝大多数都是普通文件或符号链接文件 (后面将会出现
更多的符号链接文件)。
文件属主权限 组用户权限 其他用户权限
r w - r - - r—
接下来的三个权限位是文件属主所具有的权限;再接下来的三位是与你同组用户所具有
的权限,这里是a d m i n组;最后三位是其他用户所具有的权限。在该命令的结果中,我所属于
的缺省组也显示了出来。下面是对该文件权限的精确描述:
表1-1 ls -l命令输出的含义
(第一个字符) - 普通文件
(接下来的三个字符) r w - 文件属主的权限
(再接下来的三个字符) r- - 同组用户的权限
(最后三个字符 ) r- - 其他用户的权限
因此,这三组字符(除了第一个字符)分别定义了:
1) 文件属主所拥有的权限。
2) 文件属主缺省组(一个用户可以属于很多的组 )所拥有的权限。
3) 系统中其他用户的权限。
在每一组字符中含有三个权限位:
r 读权限
w 写/更改权限
x 执行该脚本或程序的权限
这里我们采用另外一种方式来表示刚才所列出 m y f i l e的文件权限:
- r w - r - - r--
文件类型为普通文件 文件属主可以读、写 同组用户可以读 其他用户可以读
你可能已经注意到了,m y f i l e在创建的时候并未给属主赋予执行权限,在用户创建文件时,
系统不会自动地设置执行权限位。这是出于加强系统安全的考虑。必须手工修改这一权限位:
后面讲到u m a s k命令时,你就会明白为什么没有获得执行权限。然而,你可以针对目录设置执
行权限位,但这与文件执行权限位的意义有所不同,这一点我们将在后面讨论。
上面这段关于权限位的内容可能不太好理解,让我们来看几个例子 (见表1 - 2 ) 。
更令人迷惑的是,对于文件属主来说,在只有读权限位被置位的情况下,仍然可以通过
文件重定向的方法向该文件写入。过一会儿我们就会看到,能否删除一个文件还依赖于该文
件所在目录权限位的设置。
表1-2 文件权限及含义
权 限 所代表的含义
r-- --- --- 文文件属主可读,但不能写或执行
r-- r-- --- 文文件属主和同组用户(一般来说,是文件属主所在的缺省组 )可读
r-- r-- r- - 文任何用户都可读,但不能写或执行
rwx r-- r- - 文文件属主可读、写、执行,同组用户和其他用户只可读
rwx r-x --- 文文件属主可读、写、执行,同组用户可读、执行
第1章 文件安全与权限 3
下载
(续)
权 限 所代表的含义
rwx r-x r- x 文文件属主可读、写、执行,同组用户和其他用户可读、执行
rw- rw- --- 文文件属主和同组用户可读、写
rw- rw- r- - 文文件属主和同组用户可读、写,其他用户可读
rw- rw- --- 文文件属主和同组用户及其他用户读可以读、写,慎用这种权限
设置,因为任何用户都可以写入该文件
1.4 改变权限位
对于属于你的文件,可以按照自己的需要改变其权限位的设置。在改变文件权限位设置
之前,要仔细地想一想有哪些用户需要访问你的文件 (包括你的目录)。可以使用c h m o d 命令来
改变文件权限位的设置。这一命令有比较短的绝对模式和长一些的符号模式。我们先来看一
看符号模式。
1.4.1 符号模式
c h m o d 命令的一般格式为:
chmod [who] operator [permission] filename
w h o 的含义是:
u 文件属主权限。
g 同组用户权限。
o 其他用户权限。
a 所有用户(文件属主、同组用户及其他用户 )。
o p e r a t o r的含义:
+ 增加权限。
- 取消权限。
= 设定权限。
p e r m i s s i o n的含义:
r 读权限。
w 写权限。
x 执行权限。
s 文件属主和组s e t - I D。
t 粘性位*。
l 给文件加锁,使其他用户无法访问。
u,g,o 针对文件属主、同组用户及其他用户的操作。
*在列文件或目录时,有时会遇到“ t”位。“t”代表了粘性位。如果在一个目录上出现
“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主
同等的权限。不过有的系统在这一规则上并不十分严格。
如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区 (虚
存)。不过由于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。
4 第一部分 shell
下载
1.4.2 chmod命令举例
现在让我们来看一些使用 c h m o d 命令的例子。假定 m y f i l e文件最初具有这样的权限: r w x
rwx rwx :
命 令 结 果 含 义
chmod a-x myfile rw- rw- rw- 收回所有用户的执行权限
chmod og-w myfile rw- r-- r- - 收回同组用户和其他用户的写权限
chmod g+w myfile rw- rw- r- - 赋予同组用户写权限
chmod u+x myfile rwx rw- r- - 赋予文件属主执行权限
chmod go+x myfile rwx rwx r- x 赋予同组用户和其他用户执行权限
当创建m y f i l e文件时,它具有这样的权限:
如果这是我写的一个脚本,我希望能够具有执行权限,并取消其他用户 (所有其他用户 )
的写权限,可以用:
$ chmod u+x o-w myfile
这样,该文件的权限变为:
现在已经使文件属主对 m y f i l e文件具有读、写执行的权限,而 a d m i n 组的用户对该文件具
有读权限。
如果希望某个脚本文件对你自己来说可执行,而且你对该文件的缺省权限很放心,那么
只要使它对你来说具有执行权限即可。
$ chmod u+x dt
1.4.3 绝对模式
c h m o d命令绝对模式的一般形式为:
chmod [mode] file
其中m o d e 是一个八进制数。
在绝对模式中,权限部分有着不同的含义。每一个权限位用一个八进制数来代表,如表
1 - 3所示。
表1-3 八进制目录/文件权限表示
八 进 制 数 含 义 八 进 制 数 含 义
0 4 0 0 文件属主可读 0 0 1 0 同组用户可执行
0 2 0 0 文件属主可写 0 0 0 4 其他用户可读
0 1 0 0 文件属主可执行 0 0 0 2 其他用户可写
0 0 4 0 同组用户可读 0 0 0 1 其他用户可执行
0 0 2 0 同组用户可写
在设定权限的时候,只需按照表 1 - 3 查出与文件属主、同组用户和其他用户所具有的权限
相对应的数字,并把它们加起来,就是相应的权限表示。
从表1 - 3中可以看出,文件属主、同组用户和其他用户分别所能够具有的最大权限值就是7。
第1章 文件安全与权限 5
下载
剩余355页未读,继续阅读
资源评论
zl245437_
- 粉丝: 2
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- AT32与Sxx32/Gx32替换对照表
- STM32VET6单片机+XC3S250E(FPGA)+AD9708 DDS信号发生器MCU+FPGA源码+PDF硬件设计原理图
- SCIPOptSuite-9.0.0-win64-VS15.exe
- GIS10.4补丁文件
- fdgsfdgfdsgsf
- 基于CodeMirror5实现的mybatis+sql提示扩展功能,主要是用于在线设计开发场景中的动态sql部分.zip
- 计算机毕业设计-aSP.NET某中学学生成绩管理系统的设计(源代码+)-毕设源码实例.zip
- springboot集成mybatis动态sql.zip
- mybatis中的动态sql, 涉及 where trim set if foreach等
- 简单- 快递运输(Java & JS & Python & C).html
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功