网站的市场营销方案,网站的构造,seo教程资源,设计师培训机构有哪些【BASH】回顾与知识点梳理 十六 十六. 十二至十五章知识点总结及练习16.1 总结16.2 练习16.3 简答题 该系列目录 -- 【BASH】回顾与知识点梳理#xff08;目录#xff09;
十六. 十二至十五章知识点总结及练习
16.1 总结
绝对路径#xff1a;『一定由根目录 / 写起』… 【BASH】回顾与知识点梳理 十六 十六. 十二至十五章知识点总结及练习16.1 总结16.2 练习16.3 简答题 该系列目录 -- 【BASH】回顾与知识点梳理目录
十六. 十二至十五章知识点总结及练习
16.1 总结
绝对路径『一定由根目录 / 写起』相对路径『不由 / 写起而是由相对当前目录写起』特殊目录有., .., -, ~, ~account 需要注意与目录相关的指令有cd, mkdir, rmdir, pwd 等重要指令rmdir 仅能删除空目录要删除非空目录需使用『 rm -r 』指令用户能使用的指令是依据 PATH 变量所规定的目录去搜寻的ls 可以检视文件的属性尤其 -d, -a, -l 等选项特别重要文件的复制、删除、移动可以分别使用cp, rm , mv 等指令来操作检查文件的内容(读文件)可使用的指令包括有cat, tac, nl, more, less, head, tail, od 等cat -n 与 nl 均可显示行号但默认的情况下空白行会不会编号并不相同touch 的目的在修改文件的时间参数但亦可用来建立空文件一个文件记录的时间参数有三种分别是 access time(atime), status time (ctime), modification time(mtime)ls 默认显示的是 mtime。除了传统的 rwx 权限之外在 Ext2/Ext3/Ext4/xfs 文件系统中还可以使用chattr与 lsattr 设定及观察隐藏属性。 常见的包括只能新增数据的 a 与完全不能更动文件的 i 属性。新建文件/目录时新文件的预设权限使用 umask (默认为0022)来规范。默认目录完全权限为 drwxrwxrwx 文件则为-rw-rw-rw-。文件具有 SUID 的特殊权限时代表当用户执行此一 binary 程序时在执行过程中用户会暂时具有程序拥有者的权限目录具有 SGID 的特殊权限时代表用户在这个目录底下新建的文件之群组都会与该目录的组名相同。目录具有 SBIT 的特殊权限时代表在该目录下用户建立的文件只有自己与 root 能够删除观察文件的类型可以使用 file 指令来观察搜寻指令的完整文件名可用 which 或 type 这两个指令都是透过 PATH 变量来搜寻文件名搜寻文件的完整档名可以使用 whereis 找特定目录或 locate 到数据库去搜寻而不实际搜寻文件系统利用 find 可以加入许多选项来直接查询文件系统以获得自己想要知道的档名。不过由于是基于磁盘查找相对较慢。
16.2 练习
情境模拟题一假设系统中有两个账号分别是 alex 与 arod 这两个人除了自己群组之外还共同支持一个名为project 的群组。假设这两个用户需要共同拥有 /srv/ahome/ 目录的开发权且该目录不许其他人进入查阅。 请问该目录的权限设定应为何请先以传统权限说明再以 SGID 的功能解析。
目标了解到为何项目开发时目录最好需要设定 SGID 的权限前提多个账号支持同一群组且共同拥有目录的使用权需求需要使用 root 的身份来进行 chmod, chgrp 等帮用户设定好他们的开发环境才行 这也是管理员的重要任务之一
首先我们得要先制作出这两个账号的相关数据账号/群组的管理在后续我们会介绍 您这里先照着底下的指令来制作即可
[rootstudy ~]# groupadd project 增加新的群组
[rootstudy ~]# useradd -G project alex 建立 alex 账号且支持 project
[rootstudy ~]# useradd -G project arod 建立 arod 账号且支持 project
[rootstudy ~]# id alex 查阅 alex 账号的属性
uid1001(alex) gid1002(alex) groups1002(alex),1001(project) 确实有支持
[rootstudy ~]# id arod
uid1002(arod) gid1003(arod) groups1003(arod),1001(project) 确实有支持然后开始来解决我们所需要的环境吧
首先建立所需要开发的项目目录
[rootstudy ~]# mkdir /srv/ahome
[rootstudy ~]# ll -d /srv/ahome
drwxr-xr-x. 2 root root 6 Jun 17 00:22 /srv/ahome从上面的输出结果可发现 alex 与 arod 都不能在该目录内建立文件因此需要进行权限与属性的修改。 由于其他人均不可进入此目录因此该目录的群组应为 project权限应为 770 才合理。
[rootstudy ~]# chgrp project /srv/ahome
[rootstudy ~]# chmod 770 /srv/ahome
[rootstudy ~]# ll -d /srv/ahome
drwxrwx---. 2 root project 6 Jun 17 00:22 /srv/ahome
# 从上面的权限结果来看由于 alex/arod 均支持 project因此似乎没问题了实际分别以两个使用者来测试看看情况会是如何先用 alex 建立文件然后用 arod 去处理看看。
[rootstudy ~]# su - alex 先切换身份成为 alex 来处理
[alexwww ~]$ cd /srv/ahome 切换到群组的工作目录去
[alexwww ahome]$ touch abcd 建立一个空的文件出来
[alexwww ahome]$ exit 离开 alex 的身份
[rootstudy ~]# su - arod
[arodwww ~]$ cd /srv/ahome
[arodwww ahome]$ ll abcd
-rw-rw-r--. 1 alex alex 0 Jun 17 00:23 abcd
# 仔细看一下上面的文件由于群组是 alex arod 并不支持
# 因此对于 abcd 这个文件来说 arod 应该只是其他人只有 r 的权限而已啊
[arodwww ahome]$ exit由上面的结果我们可以知道若单纯使用传统的 rwx 而已则对刚刚 alex 建立的 abcd 这个文件来说arod 可以删除他但是却不能编辑他这不是我们要的样子啊赶紧来重新规划一下。
加入 SGID 的权限在里面并进行测试看看
[rootstudy ~]# chmod 2770 /srv/ahome
[rootstudy ~]# ll -d /srv/ahome
drwxrws---. 2 root project 17 Jun 17 00:23 /srv/ahome
# 测试使用 alex 去建立一个文件并且查阅文件权限看看
[rootstudy ~]# su - alex
[alexwww ~]$ cd /srv/ahome
[alexwww ahome]$ touch 1234
[alexwww ahome]$ ll 1234
-rw-rw-r--. 1 alex project 0 Jun 17 00:25 1234
# 没错这才是我们要的样子现在 alex, arod 建立的新文件所属群组都是 project
# 由于两人均属于此群组加上 umask 都是 002这样两人才可以互相修改对方的文件所以最终的结果显示此目录的权限最好是『2770』所属文件拥有者属于 root 即可至于群组必须要为两人共同支持的 project 这个群组才行
16.3 简答题 什么是绝对路径与相对路径 绝对路径的写法为由 / 开始写至于相对路径则不由 / 开始写此外相对路径为相对于目前工作目录的路径 如何更改一个目录的名称例如由 /home/test 变为 /home/test2 mv /home/test /home/test2 PATH 这个环境变量的意义 这个是用来指定执行文件执行的时候指令搜寻的目录路径。 umask 有什么用处与优点 umask 可以拿掉一些权限因此适当的定义 umask 有助于系统的安全 因为他可以用来建立默认的目录或文件的权限。 当一个使用者的 umask 分别为 033 与 044 他所建立的文件与目录的权限为何 文件644622 目录744733 在 umask 为 033 时则预设是拿掉 group 与 other 的 w(2)x(1) 权限因此权限就成为『文件 -rw-r–r-- 目录 drwxr–r-- 』 而当 umask 044 时则拿掉 r 的属性因此就成为『文件 -rw–w–w-目录 drwx-wx-wx』 什么是 SUID 仅对二进制文件有效 执行者对文件需要拥有执行权限x 执行过程中执行者获得拥有者权限 当我要查询 /usr/bin/passwd 这个文件的一些属性时(1)传统权限(2)文件类型与(3)文件的隐藏属性可以使用什么指令来查询 ll /ls -l file lsattr 尝试用 find 找出目前 linux 系统中所有具有 SUID 的文件有哪些 find / -perm /4000 -print 2/dev/null 找出 /etc 底下文件大小介于 50K 到 60K 之间的文件并且将权限完整的列出 (ls -l) find /etc -size 50k -a -size -60k -exec ls -l {} ; 注意到 -a 那个 -a 是 and 的意思为符合两者才算成功 找出 /etc 底下文件容量大于 50K 且文件所属人不是 root 的档名且将权限完整的列出 (ls -l) find /etc -size 50k -a ! -user root -exec ls -ld {} ; find /etc -size 50k -a ! -user root -type f -exec ls -l {} ; 上面两式均可注意到 ! 那个 ! 代表的是反向选择亦即『不是后面的项目』之意 找出 /etc 底下容量大于 1500K 以及容量等于 0 的文件 find /etc -size 1500k -o -size 0 相对于 -a 那个 -o 就是或 (or) 的意思啰
该系列目录 -- 【BASH】回顾与知识点梳理目录