2019-2020-1 20199310《Linux内核原理与分析》第一周作业
1.问题描述
1.1 问题一
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,探究根目录下主要文件用途。
1.2 问题二
有一个非常重要的文件(passwd.list),只知道它在 /etc/ 目录下,现在需要把这个文件找出来,然后设置成某一新建用户(louhao 用户)可以访问,但是其他用户并不能访问。
2.解决思路
2.1 linux系统文件目录
使用ls命令显示根目录下文件,通过上网查询确定其用途。
2.2 文件查询和权限设置
在shiyanlou用户下用sudo adduser命令创建louhao用户,并进行设置。新建的用户没在sudoers的管理文件中未配置,所以使用shiyanlou用户通过find命令查询passwd.list文件并通过chown和chmod命令赋予权限。
3.解决过程
3.1 问题一
3.1.1 根目录显示
显示根目录下各文件,如图所示:

3.1.2 主要文件用途
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader);
/dev: 设备文件,包括:块设备(随机访问,数据块),字符设备(线性访问,按字符为单位),设备号:(主设备号major和次设备号minor);
/etc:配置文件;
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME;
/root:管理员的家目录;
/lib:库文件,包括:静态库(.a)和动态库( .dll, .so);
/lib/modules:内核模块文件;
/media:挂载点目录,移动设备;
/mnt:挂载点目录,额外的临时文件系统;
/opt:可选目录,第三方程序的安装目录;
/proc:伪文件系统,内核映射文件;
/sys:伪文件系统,跟硬件设备相关的属性映射文件;
/tmp:临时文件, /var/tmp;
/var:可变化的文件;
/bin: 可执行文件, 用户命令;
/sbin:管理命令;
链接 linux文件系统
3.2 问题二
3.2.1 代码和注释
#添加和配置新用户louhao
sudo adduser louhao
#在home目录下显示新用户文件
cd /home
#在/etc目录下查找passwd.list
sudo find /etc -name passwd.list
#将文件赋予louhao用户
sudo chown louhao /etc/password/passwd.list
#将文件查看修改权限赋予louhao用户,其他用户无权限
sudo chmod 600 /etc/password/passwd.list
#分别使用shiyanlou用户和louhao用户测试查看该文件
cat /etc/password/passwd.list
3.2.2 演示截图
创建用户louhao


使用shiyanlou用户赋予文件权限,并测试其他用户是否可以打开该文件

使用目标用户louhao查看该文件

4.总结
本文主要学习了linux文件系统和基本用户、文件权限的管理,熟悉了ls,find,chown和chmod等命令。在解决过程中,遇到了新建用户没有sudo权限的问题,主要原因是没有在系统文件sudoers件中对新用户进行未配置。该问题也需要在sudo权限下才可以对系统文件sudoers进行修改。sudo为superuser do,一般只有root才拥有。在实验楼linux系统环境中,shiyanlou用户默认拥有sudo权限,故在其用户环境下对文件进行权限操作。
2019-2020-1 20199310《Linux内核原理与分析》第一周作业的更多相关文章
- Linux内核原理与分析-第一周作业
本科期间,学校开设过linux相关的课程,当时的学习方式主要以课堂听授为主.虽然老师也提供了相关的学习教材跟参考材料,但是整体学下来感觉收获并不是太大,现在回想起来,主要还是由于自己课下没有及时动手实 ...
- 2019-2020-1 20199314 <Linux内核原理与分析>第一周作业
前言 本周对实验楼的Linux基础入门进行了学习,目前学习到实验九完成到挑战二. 学习和实验内容 快速学习了Linux系统的发展历程及其简介,学习了下的变量.用户权限管理.文件打包及压缩.常用命令的和 ...
- 2019-2020-1 20199303<Linux内核原理与分析>第二周作业
2019-2020-1 20199303第二周作业 1.汇编与寄存器的学习 寄存器是中央处理器内的组成部份.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中 ...
- 20169219 linux内核原理与分析第二周作业
"linux内核分析"的第一讲主要讲了计算机的体系结构,和各寄存器之间对数据的处理过程. 通用寄存器 AX:累加器 BX:基地址寄存器 CX:计数寄存器 DX:数据寄存器 BP:堆 ...
- 2019-2020-1 20199314 <Linux内核原理与分析>第二周作业
1.基础学习内容 1.1 冯诺依曼体系结构 计算机由控制器.运算器.存储器.输入设备.输出设备五部分组成. 1.1.1 冯诺依曼计算机特点 (1)采用存储程序方式,指令和数据不加区别混合存储在同一个存 ...
- Linux内核原理与分析-第二周作业
写之前回看了一遍秒速五厘米:如果
- 2018-2019-1 20189221《Linux内核原理与分析》第一周作业
Linux内核原理与分析 - 第一周作业 实验1 Linux系统简介 Linux历史 1991 年 10 月,Linus Torvalds想在自己的电脑上运行UNIX,可是 UNIX 的商业版本非常昂 ...
- 2020-2021-1 20209307 《Linux内核原理与分析》第九周作业
这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)> 这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第九周作业> 这个作业的目标 & ...
- 2019-2020-1 20199329《Linux内核原理与分析》第十三周作业
<Linux内核原理与分析>第十三周作业 一.本周内容概述 通过重现缓冲区溢出攻击来理解漏洞 二.本周学习内容 1.实验简介 注意:实验中命令在 xfce 终端中输入,前面有 $ 的内容为 ...
- 2019-2020-1 20199329《Linux内核原理与分析》第十二周作业
<Linux内核原理与分析>第十二周作业 一.本周内容概述: 通过编程理解 Set-UID 的运行机制与安全问题 完成实验楼上的<SET-UID程序漏洞实验> 二.本周学习内容 ...
随机推荐
- Flutter 完美的验证码输入框
老孟导读:刚开始看到这个功能的时候一定觉得so easy,开始的时候我也是这么觉得的,这还不简单,然而真正写的时候才发现并没有想象的那么简单. 先上图,不上图你们都不想看,我难啊,到Github:ht ...
- Java IO流的写入和写出操作 FileInputStream和FileOutputStream
今天学习了Java的IO流,关于文件的读入和写出,主要是FileInputStream和FileOutputStream来实现,这两个流是字节流.还有字符流(FileReader和FileWriter ...
- CodeForces - 817B(分类讨论 + 排列组合)
题目链接 思路如下 这一题是:最菜的队伍只有三个人组成,我们只需对排序后的数组的 前三个元素进行分类讨论即可: a[3] != a[2] && a[3] != ar[1] a[3] = ...
- WEB安全——XML注入
浅析XML注入 认识XML DTD XML注入 XPath注入 XSL和XSLT注入 前言前段时间学习了.net,通过更改XML让连接数据库变得更方便,简单易懂,上手无压力,便对XML注入这块挺感兴趣 ...
- eclipse 使用 快捷键
ctrl + t :查看类的子类和实现类 ctrl + o 查看类实现的方法 ctrl + 1 相当于idea的 alt + enter 补全变量 syso 点 alt + / System.out ...
- Apache Hudi 设计与架构最强解读
感谢 Apache Hudi contributor:王祥虎 翻译&供稿. 欢迎关注微信公众号:ApacheHudi 本文将介绍Apache Hudi的基本概念.设计以及总体基础架构. 1.简 ...
- hadoop(八)集群namenode启动ssh免密登录(完全分布式五)|10
前置章节:hadoop集群配置同步(hadoop完全分布式四)|10 启动namenode之前: 1. 先查看有无节点启动,执行jps查看,有的话停掉 [shaozhiqi@hadoop102 ~]$ ...
- ZooKeeper 如何保证数据一致性?
在分布式场景中,ZooKeeper 的应用非常广泛,比如数据发布和订阅.命名服务.配置中心.注册中心.分布式锁等. 在分布式场景中,ZooKeeper 的应用非常广泛,比如数据发布和订阅.命名服务.配 ...
- go中的error小结
go中的error error和panic error接口 go中err的困局 推荐方法 总结 参考 go中的error go中的错误处理,是通过返回值的形式来出来,要么你忽略,要么你处理(处理也可以 ...
- 正整数的二进制表示中1的个数计算(使用移位或者n&(n-1))
第一种:使用n&(n-1)表示来计算有多少个1 int n=127; int count=0; while (n!=0){ count++; n=n&(n-1); } 第二种:使用移位 ...