安装环境介绍

CentOS 6.9_x86_64

Linux--NiaoGe-Service-01-LMLPHPLinux--NiaoGe-Service-01-LMLPHP

我们选择的是基本安装,也即“Basic Server”。

安装完成后重启来到(runlevel 3)纯文本界面。

例题 批量创建账号:假设有5个账号xueji0{1,2,3,4,5},且这五个账号希望有一个共享目录,因此应该将这五个账号加入同一个用户组,假设这个用户组名为:group-XJ,且这五个账号的密码爵位123456,因此这5个账号可以用以下命令创建。

Linux--NiaoGe-Service-01-LMLPHP

然后查看一个创建完成的用户

Linux--NiaoGe-Service-01-LMLPHP

例题 共享目录权限:这五个用户的共享目录位于/home/group-XJ这个目录,这个目录只能这5个用户使用,且每个用户均可在该目录内进行任何操作,而其他用户无权使用(没有权限)该目录,具体操作如下:

Linux--NiaoGe-Service-01-LMLPHP

测试

Linux--NiaoGe-Service-01-LMLPHP

例题 Quota操作:假设这五个用户均需要进行磁盘操作,每个用户的配额为2GB(hard)以及1.8GB(soft),具体操作如下:

1.首先启动filesystem的Quota的支持

使用vim编辑/etc/fstab文件

Linux--NiaoGe-Service-01-LMLPHP

注意:因为是要处理用户的磁盘,所以采用的是/home这个目录来进行限额。另外,CentOS 6.x以后,默认使用UID的磁盘代号而非使用文件名,不过,仍可以使用类似/dev/sda1之类的文件名!

Linux--NiaoGe-Service-01-LMLPHP

上述操作说明,卸载home目录,重新挂载,然后查看/home所在的filesystem有没有上述的挂载属性!

2.制作Quota配额文件,并启动文件系统的Quota支持(虽然执行过quotacheck -avug之后会报很多错误,但是有绿色框内的提示,证明上述操作有效!)

Linux--NiaoGe-Service-01-LMLPHP

3.为用户定义Quota配额

执行edquota -u xueji01后编辑标注位置

Linux--NiaoGe-Service-01-LMLPHP

用户xueji02,xueji03,xueji04,xueji05一样的操作!

执行edquota -p xueji0{1,2,3,4,5}

最后执行repquota -au查看

Linux--NiaoGe-Service-01-LMLPHP

例题 文件系统扩充(LVM):假设/home不够用了,需要将/home扩充到7GB,具体操作如下:

Linux--NiaoGe-Service-01-LMLPHP

开始制作PV

Linux--NiaoGe-Service-01-LMLPHP

Linux--NiaoGe-Service-01-LMLPHP

因为是虚拟机,所以执行partprobe会报错,需要reboot才行!

Linux--NiaoGe-Service-01-LMLPHP

将/dev/sda9加入PV,并将该PV加入vg_xueji这个VG

Linux--NiaoGe-Service-01-LMLPHP

开始扩充/home,先查看下LV容量

Linux--NiaoGe-Service-01-LMLPHP

使用lvresize来重重LV容量

Linux--NiaoGe-Service-01-LMLPHP

扩充文件系统

Linux--NiaoGe-Service-01-LMLPHP

OK,扩充完成!

例题 不同的runlevel下服务管理,在当前的runlevel之下,有哪些服务是默认启动的呢?此外,如果我的系统当前不想启动自动网络挂载(autofs)机制,则如何让该服务在系统启动时不被自动加载启动的呢?

答:默认的runlevel可以使用runlevel这个命令来处理,那我们默认使用运行级别3,因此可以这样做:

Linux--NiaoGe-Service-01-LMLPHP

上述命令的输出信息中,会有autofs服务是在启动的状态,如果需要关闭它,具体操作如下:

Linux--NiaoGe-Service-01-LMLPHP

上面提到的知识已经启动的服务,如果想要了解已启动的网络监听服务(网络监听服务在下面会提到),那么该如何做呢?见下面这个例题:

例题 查询已启动的网络监听服务,想要检查当前我这台主机启动的所有网络监听服务有哪些?且关闭不需要的网络监听程序,具体操作如下:

执行netstat -tulnp

假设现在想要关闭某个服务,可以使用/etc/init.d/servername stop来关闭,然后使用chkconfig来设置开机启动行为。但是,有时启动的服务名称可能与实际命令不一样,此时需要使用grep去过滤数据,或者通过tab键去去的相关的服务名。

例题 使用YUM进行系统更新:假设用户的网络畅通,需要进行整个系统的更新,且每天凌晨3:00进行整个系统的更新:

Linux--NiaoGe-Service-01-LMLPHP

Linux--NiaoGe-Service-01-LMLPHP

Linux--NiaoGe-Service-01-LMLPHP

但是不明白的是:为什么这样不能添加计划任务,使用crontab -e却可以

[root@xueji ~]# crontab -e
* * * root /usr/bin/yum -y update
:wq
crontab: installing new crontab
[root@xueji ~]# crontab -l
* * * root /usr/bin/yum -y update

软件安装与查询

例题 查询当前系统中是否安装了Samba这个软件,具体操作:

[root@xueji ~]# rpm -qa | grep -i samba
samba-client-3.6.-.el6.x86_64
samba-winbind-clients-3.6.-.el6.x86_64
samba4-libs-4.2.-.el6.x86_64
samba-winbind-3.6.-.el6.x86_64
samba-common-3.6.-.el6.x86_64
##(其实我也没有看出鸟哥这啥意思!这个命令意义何在?)
[root@xueji ~]# yum search samba #查询YUM源里有没有相关软件
[root@xueji ~]# yum install -y samba #安装samba
#查看samba的配置文件
[root@xueji ~]# rpm -qc samba samba-common
/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers
/etc/samba/lmhosts
/etc/samba/smb.conf
/etc/sysconfig/samba

samba的详细配置这里就不再说了。

例题 启动samba且设置开机启动

#首先查询samba的启动方式
[root@xueji ~]# rpm -ql samba | grep '/etc'
/etc/logrotate.d/samba
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
/etc/samba/smbusers
#启动
[root@xueji ~]# /etc/init.d/smb start
启动 SMB 服务: [确定]
[root@xueji ~]# /etc/init.d/nmb start
启动 NMB 服务: [确定]
[root@xueji ~]# chkconfig smb on
[root@xueji ~]# chkconfig nmb on
[root@xueji ~]# netstat -tlunp | grep '[sn]mbd'
tcp 0.0.0.0: 0.0.0.0:* LISTEN /smbd
tcp 0.0.0.0: 0.0.0.0:* LISTEN /smbd
tcp ::: :::* LISTEN /smbd
tcp ::: :::* LISTEN /smbd
udp 192.168.30.255: 0.0.0.0:* /nmbd
udp 192.168.30.12: 0.0.0.0:* /nmbd
udp 0.0.0.0: 0.0.0.0:* /nmbd
udp 192.168.30.255: 0.0.0.0:* /nmbd
udp 192.168.30.12: 0.0.0.0:* /nmbd
udp 0.0.0.0: 0.0.0.0:* /nmbd

权限与SElinux

例题 单一用户、组的权限设定ACL:假设想要让student可以进入/home/group-XJ目录下,具有读但没有写的权限。同时xueji05在/home/group-XJ内,不具有任何权限。具体操作

[root@xueji ~]# useradd student
[root@xueji ~]# echo "" | passwd --stdin student
更改用户 student 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@xueji ~]# setfacl -m u:student:rx /home/group-XJ/
[root@xueji ~]# setfacl -m u:xueji05:- /home/group-XJ/
[root@xueji ~]# getfacl /home/group-XJ/
getfacl: Removing leading '/' from absolute path names
# file: home/group-XJ/
# owner: root
# group: group-XJ
# flags: -s-
user::rwx
user:xueji05:---
user:student:r-x
group::rwx
mask::rwx
other::---
[root@xueji ~]# ll -d /home/group-XJ/
drwxrws---+ root group-XJ 9月 : /home/group-XJ/

系统安全与备份

例题 系统中比较重要的目录有/etc、home、/root、/var/spool/mail等,现在想要在每周五的凌晨2:50进行备份,且备份数据春到/backup目录下,并使用tar将备份数据打包,具体操作:

[root@xueji ~]# cd /root/bin/
[root@xueji bin]# vim backup.sh
#!/bin/bash
backdir="/etc /home /root /var/spool/mail"
basedir=/backup
[ ! -d "$basedir" ] && mkdir $basedir
backfil=$basedir/backup.tar.gz
tar -zcvf $backfile $backdir
[root@xueji ~]# crontab -e
* * * root /usr/bin/yum -y update
* * root sh /root/bin/backup.sh
:wq
crontab: installing new crontab
[root@xueji bin]# crontab -l
* * * root /usr/bin/yum -y update
* * root sh /root/bin/backup.sh
05-19 23:59