Linux 实验三
1.用 /etc/passwd 命令进行查询操作时,遇到 Permission denied 的问题
可以进入root用户便于操作:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502224144760-964469164.png)
输入密码并回车后,输入命令: chmod 777 /etc/passwd ,然后再输入命令:/etc/passwd
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502224301537-1736286366.png)
紧接着,... ( |=_=| ) 如下:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502224444419-1959594722.png)
以上就是043查到的内容了;显然,/etc/passwd 中存放的是用户的信息;相较而言,/etc/shadow 中存放的是
用户登录信息,且/etc/shadow文件格式与/etc/passwd文件格式类似,同样由若干个字段组成,字段之间用“:”隔开。
/etc /group 文件则含有关于小组的信息;/etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理
密码就是存放在这个文件。
2.对 id \id -u\id -u root\id -u xjx的区分:
1)id: id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)
2)id -u:显示用户ID
3)id -u root:显示用户root的ID
4)id -u xjx:显示用户xjx的ID
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502224641039-687841128.png)
3.根据要求写出相应的shell命令:
1)在目录/usr/include下搜索文件signal.h是否存在?043是这么做的:)
2)在/usr/include目录下的所有文件中查找包含BUFSIZ的行,并显示所在行号。
(要求:屏幕上只显示查找到的结果,并过滤错误信息)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502181428523-2068257792.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502181926413-1228602898.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182030886-373230692.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502223738032-1007676128.png)
043能说这个乍一看我不会吗? 我不敢,怎么破(?@_@?)
3)在用户名密码文件/etc/passwd中查找登录shell为bash的用户信息记录,并显示行号
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182346493-1848477682.png)
4)从/etc/group 文件中截取第 1 列(组名)和第 3 列(组 id),并按照组 id 号的数值大小由小到大排序。
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182654790-1778883385.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182721681-746566459.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182806114-1521673124.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182840590-2110754491.png)
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502182918044-2001768143.png)
4.(1)对于如下ex1.sh文件:
执行:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502213432065-676917567.png)
结果疑似报了错:
fail to backup:
tar: Cowardly refusing to create an empty archive
吓得043赶紧看了一下源码,然后重度怀疑error_info这个文件有鬼,果然:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502214649980-619856325.png)
这调皮的小妖精!
(2)再看ex2,sh这个文件:
运行一下:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502215337445-7235823.png)
043发现,在输入完学号第11位的时候,瞬间就跳出了之后的信息,这让043想要按enter宝贝的手一抖,
心想:宝贝你别闹了!043心脏不好啊(=_=!)
为了回应程序兄弟的热情,043给出如下答案:
1)line3中的read命令选项-n11功能:一旦接收到11个字符就退出[就是你吓得043手抖!.gif]
2)line 14中 grep $code $filename > t1 && read x major < t1 :功能:搜索code、filename重定向到t1,然后输
出到major。
5.补充:interesting program
运行后:
![](https://images2018.cnblogs.com/blog/1351329/201805/1351329-20180502222249320-254038107.png)
果然是a a fire(一把把火)
/*其实043想说:这什么鬼命令?& What does this mean?(? ?* _ * ??)*/