Linux基础练习与回顾
本文是当时学习RHCE时总结的一些练习资料,涵盖了很多基础的东西,整理了一下,顺便也回顾一下以前学过的东西。
注意: 本文中出现的网址和ip都是实验环境下的配置,请不要直接使用(当然,你也用不了)。
环境
- domainX.xintq.net 域是 192.168.0.0/24 网络
- remote.test 域是 192.168.1.0/24 网络
- 我的IP是 192.168.0.113
练习1 配置环境
配置好主机名,IP地址,网关和DNS。
- 主机名: mail.domain13.xintq.net
- IP: 192.168.0.113
- 网关:192.168.0.254
- DNS:192.168.0.254
参考解答
首先用NetworkManager配置IP,网关和DNS。
其次,用下面的命令配置主机名。
~$ iptables -F
~$ service iptables save
~$ vim /etc/sysconfig/network
~$ hostname mail.domain13.xintq.net
~$ cat /etc/resolve/conf
~$ rount -n
~$ ifconfig
练习2 创建用户
添加三个用户,用户名 harson, narah, tommy,要求 harson 和 narah 的附加组为admin,tommy 的登陆shell为非交互式 shell,并且三个用户的初始密码为 redhat。
参考解答
先创建用户
~$ useradd harson -G admin
~$ useradd narah -G admin
~$ useradd tommy -S /sbin/nologin
为用户设置密码
~$ for u in harson,narah,tommy;do echo redhat | passwd $u --stdin; done;
上面用了一小段shell代码,循环设置的,也可以一个一个的设置初始密码,以harson为例如下:
~$ passwd harson
<输入redhat并回车>
练习3 文件操作和权限
在/home下创建一个目录,命名为admins,并且要求该目录的所属组为admin组,组成员可以读写,其他用户没有任何权限,同组成员在目录下创建的文件所属组也为adin组。
参考解答
~$ mkdir -p /home/admins
~$ chgrp admin /home/admins
~$ chmod 770 /home/admins
~$ chmod g+s /home/admins
练习4 计划任务(CRON)
配置 harson的计划任务,于每天的15:30执行 echo hello命令
参考解答
~$ crontab -u harson -e
30 15 * * * /bin/echo hello
~$ crontab -u harson -l
提示一下,crontab的格式如下:
分 时 天 月 周 命令
练习5 find命令
找出harson拥有的文件,拷贝到/opt目录下
参考解答
~$ find / -user harson -type f -exec cp -ar {} /opt/ \;
练习6 grep命令
从文件 /etc/testfile中找出包含abcde的行,并把这些行写入到文件/tmp/testfile中,要求顺序与/etc/testfile中的一致。
参考解答
~$ grep abcde /etc/testfile > /tmp/testfile
练习7 交换分区
创建一个512MB的交换分区,并设置为开机自动生效,但是不影响原有的swap分区。
参考解答
~$ fdisk -cu /dev/vda
~$ ...(fdisk的操作省略)
~$ partx -a /dev/vda
~$ mkswap /dev/vda3
~$ free -m
~$ vim /etc/fstab
~$ swapon -s
~$ swapon -a
~$ swapon -s
练习8 用户设置
创建一个用户alex,用户的ID为4321,用户密码为 alex222。
参考解答
~$ useradd -u 4321 alex
~$ id alex
uid=4321(alex) gid=4321(alex) groups=4321(alex)
~$ passwd alex
<输入 alex222 并回车>
练习9 配置FTP
安装一个FTP服务器,要求可以从/var/ftp/pub目录中匿名下载。
参考解答
首先配置yum,具体配置方法省略。
其次安装vsftpd:
~$ yum -y install vsftpd lftp firefox
~$ chconfig vsftpd on
~$ service vsftpd on
练习10 配置HTTP服务器
通过 http://mail.domain13.xintq.net 可以被访问到,发布页面从 http://server.xintq.net/example.html 下载。
参考解答
无。
练习11 LDAP认证
配置你的主机账号和密码验证方式为LDAP方式,通过ldapuser13可以成功登陆,ldapuser13的密码为:password。
证书可以从 http://server.xintq.net/pub/EXAMPLE-CA-CERT 下载。
LDAP服务器地址是:
server.xintq.net
basedn是
dc=example,dc=com
请注意,用户登陆后是没有宿主目录的,除非之后配置了autofs。
参考解答
由于是图形界面配置,具体步骤省略。
练习12 配置autofs
配置autofs,实现ldapuser13登陆成功后,有家目录
/home/guests/ldapuser13
家目录在server.xintq.net上被共享为:
/nwdir/ldapuserX
并且,其他用户(比如ldapuser3)登陆成功后,也能正常使用宿主目录(比如
/home/guests/ldapuser3)。
参考解答
~$ cp /etc/auto.master /etc/auto.ldap
~$ vim /etc/auto.ldap
* -fstype=nfs server.xintq.net:/nwdir/&
~$ service autofs status
~$ service autofs stop
~$ service autofs start
~$ su - ldapuser13
练习13 时间服务器
配置你的系统时间与server.xintq.net同步。
参考解答
~$ system-config-date &
~$ ntpq -pn
练习14 LVM操作:扩容
把名字为vgsrv-home的逻辑卷容量变为 350MB,大小浮动范围为 320~380MB之间,此逻辑卷已经事先挂载。
参考解答
~$ lvextend -L 350M /dev/vgsrv/home
~$ resize2fs /dev/vgsrv/home
练习15 LVM操作:创建
创建一个卷组 alading, 16MB为一个extends,并在其上划分一个由20个extends的逻辑卷light,制作成ext3文件系统,并开机自动挂载到 /mnt/data下。
参考解答
首先计算总大小:
16MB * 20 extends = 320MB
接着开始创建LVM
~$ fdisk /dev/vda n + 350M -t 8e w
~$ partx -a /dev/vda
~$ pvcreate /dev/vda8
~$ vgcreate -s 16M /dev/vda6
~$ vgdisplay alading
~$ lvcreate -l 20 -n light alading
~$ mkfs.ext3 /dev/alading/light
~$ vim /etc/fstab
/dev/alading/light /mnt/data ext3 default 0 0
练习16 升级内核
升级内核为 2.6.32-71.7.1,设置为系统启动默认内核,并保留旧的内核可以用。
内核地址为;
ftp://server.xintq.net/pub/rhel/Errdata/rhel-x86_64-kernel-xxx.rpm
参考解答
使用yum安装升级,步骤省略。
升级后可以从下面的文件看到正在使用的内核:
~$ cat /etc/grub.conf
练习17 访问控制权限
把/etc/profile文件复制到/home下,要求属于root用户,root组。
其他人对该文件有读权限,harson 对该文件没有权限,narah对该文件有读写权限。
参考解答
~$ cp /etc/profile /home/
~$ setfacl -m u:harson:--- /home/profile
~$ setfacl -m u:narah:rw- /home/profile
~$ getfacl /home/profile
练习18 LVM操作:扩容和缩小
把名为vgsrv-redhat的逻辑卷容量变为150MB,大小浮动范围为130~170MB,此逻辑卷已经事前挂载。
参考答案
如果是缩小的话:
~$ df -h
~$ umount /redhat
~$ e2fsck -f /dev/vgsrv/redhat
~$ resize2fs /dev/vgsrv/redhat 150M
~$ lvreduce -L 150M /dev/vgsrv/redhat
如果是扩容的话:
~$ df -h
~$ vgdisplay
~$ lvextend -L 150M /dev/vgsrv/redhat
~$ resize2fs /dev/vgsrv/redhat 150M