Linux58期课后练习题 综合练习
1. 一个EXT4的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用 df -h 命令查看磁盘大小时,只使用了60%的磁盘空间,为什么会出现这种情况?
答:
inode
满:定时任务书写有误,导致邮件产生大量小文件,把inode
占用完了
2. 对名为fido的文件用chmod 551 fido进行修改,则他的许可权是?
答:
r-xr-x--x
3. 文件系统中软硬连接的区别?
答:
1)答分类:在Linux系统中,连接分两种:一种被称为硬链接(Hard Link
),另一种被称为软连接(soft link
)或符号链接(symbolic link
)。
2)答概念:硬链接文件与源文件的Inode
节点号相同,而软连接文件相当于Windows下面的快捷方式(Inode节点号与源文件不同)。
3)答创建:默认不带参数的情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软连接。
4)答特点:
a. 不能对目录创建硬链接,但可以创建软连接,对目录的软连接会经常被用到。
b. 软连接可以跨文件系统,硬链接不可以跨文件系统。
c. 删除软链接,对源文件及硬链接文件无任何影响。
d. 删除文件的硬链接,对源文件及软链接文件无任何影响。
e. 删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
f. 同时删除源件及其硬链接文件,整个文件才会被真正的删除。
5)答案例:硬链接用处不多,可以用来对重要文件做快照防止误删,而对目录建立软链接在工作中很常用。
4. Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解
开机启动流程
答:
1 CentOS6
系统启动流程说明
01)开启开机按钮,加载BIOS
自检
02)读取MBR
信息
03)加载Grub
菜单
04)加载Kernel
内核以及驱动程序
05)启动init进程,读取inittab
文件
06)init
进程执行rc.sysinit
初始化系统
07)init
进程加载内核相关模块
08)init
进程执行对应运行级别下的脚本
09)加载/etc/rc.local
10)启动mingetty
,进入登录前的状态
2 CentOS7
系统启动流程说明
1)开启开机按钮,加载BIOS
自检
2)读取MBR
引导
3)加载Grub
菜单
4)加载Kernel
内核以及驱动程序
5)运行systemd
进程
6)读取运行级别
7)系统初始化
8)并行启动各种服务
9)启动login
显示登录界面
忘记密码破解方式
答:
开机按e键,找到以linux16
开头的那一行,在行尾加上如下几句话:
1)、如果是物理机,添加:rd.break
2)、如果是虚拟机,添加:rd.break console=tty0
然后按Ctrl+x
进行启动
进入shell
环境之后,进行如下操作:
1)、将根目录重新挂载,模式可写
switch_root:/# mount -o rw,remount /sysroot
2)、变更目录至根目录下
switch_root:/# chroot /sysroot
3)、更改密码
sh-4.2# passwd
4)、如果安装的是中文系统,此时会出现乱码,可以根据经验直接输入,也可输入以下命令,当次变更语言为英语
sh-4.2# LANG=en_US
5)、如果SELinux
开启需要更新SELinux
上下文,只要创建下面的文件即可
sh-4.2# touch /.autorelabel
6)、退出重启
sh-4.2# exit
switch_root:/# exit
5. 请取出系统中所有的用户名及UID,并过滤出不可登录的用户
答:
cat /etc/passwd|awk -F':' '/nologin$/ {print $1,$3}'
6. 请取出eth0网卡的mac地址
答:
ifconfig eth0|awk NR==4'{print $2}'
7. 在/home目录下找出3天之前被修改过文件大于20k的文件,并把他们打包到/oldboy/目录下并以当前时间命名
答:
find /home/ -type f -mtime +3 -size +20k|xargs tar zcf /oldboy/(date +%T).tar.gz
8. 如何在/var目录下找出90天之内未被访问过得文件?
答:
find /var/ -type f -atime -90
9. 如何使用CRT/Xshell向linux服务器上传下载文件
答:
上传:rz或直接拖拽
下载:语法:sz 文件名
10. 如何检查selinux是否开启
答:
getenforce
11. 文件excel的访问权限为rw-r--r--.现要增加所有用户的执行权限和同组用户的写权限,命令是
答:
chmod a+x,g+w excel
12. 批量创建20个用户,用户名格式为oldboy1等等,并都设置密码 123456该如何实现?
答:
1)、第一种方法:
a.先编辑一个文本用户文件
每一列按照/etc/passwd
密码文件的格式书写,
一个范例文件user.txt
内容如下:
oldboy01::1001:1001:user:/home/ oldboy01:/bin/bash
oldboy02::1002:1002:user:/home/ oldboy02:/bin/bash
oldboy03::1003:1003:user:/home/ oldboy03:/bin/bash
…
oldboy19::1019:1019:user:/home/oldboy19:/bin/bash
oldboy20::1020:1020:user:/home/oldboy20:/bin/bash
b. 以root
身份执行命令 /usr/sbin/newusers
,从刚创建的用户文件user.txt
中导入数据,创建用户:
# newusers < user.txt1
c.执行命令 /user/sbin/pwunconv
将 /etc/shadow
产生的 shadow
密码解码,然后回写到 /etc/passwd
中,并将/etc/shadow
的shadow
密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password
功能
pwunconv
d. 编辑每个用户的密码对照文件,范例文件passwd.txt
内容如下:
oldboy 01:密码
oldboy 02:密码
oldboy 03:密码
oldboy 04:密码
oldboy 05:密码
oldboy 06:密码
e.以root身份执行命令 /usr/sbin/chpasswd
创建用户密码,chpasswd
会将经过/usr/bin/passwd
命令编码过的密
码写入/etc/passwd
的密码栏
chpasswd < passwd.txt
f. 确定密码经编码写入/etc/passwd
的密码栏后
执行命令/usr/sbin/pwconv
将密码编码为shadow password
,并将结果写入/etc/shadow
pwconv
这样就完成了
批量用户的创建,可以进行登录验证一下
2)、第二种方法:
a:批量创建用户:
seq –w 20|sed -nr 's#(.*)#useradd oldboy\1#gp'|bash
b:批量修改密码:
seq –w 20|sed -nr 's#(.*)#oldboy\1:123456#gp'|chpasswd
or
seq -w 20|sed -nr 's#(.*)#echo "123456"|passwd --stdin oldboy\1#gp'|bash
c:批量删除用户
seq –w 20 |sed -nr 's#(.*)#userdel -r oldboy\1#gp'|bash
13. /var/www/html/是网站的发布目录。如何每天凌晨0点30对其进行自动备份,写出操作步骤
答:
30 00 * * * /bin/tar zcf ./html_$(date +\%F).tar.gz /var/www/html/ &>/dev/null
14. crontab 在11月份内,每天的早上7点到11点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现
答:
00 7-11/2 * 11 * /bin/sh /usr/bin/httpd.sh &>/dev/null