安装环境介绍
CentOS 6.9_x86_64
我们选择的是基本安装,也即“Basic Server”。
安装完成后重启来到(runlevel 3)纯文本界面。
例题 批量创建账号:假设有5个账号xueji0{1,2,3,4,5},且这五个账号希望有一个共享目录,因此应该将这五个账号加入同一个用户组,假设这个用户组名为:group-XJ,且这五个账号的密码爵位123456,因此这5个账号可以用以下命令创建。
然后查看一个创建完成的用户
例题 共享目录权限:这五个用户的共享目录位于/home/group-XJ这个目录,这个目录只能这5个用户使用,且每个用户均可在该目录内进行任何操作,而其他用户无权使用(没有权限)该目录,具体操作如下:
测试
例题 Quota操作:假设这五个用户均需要进行磁盘操作,每个用户的配额为2GB(hard)以及1.8GB(soft),具体操作如下:
1.首先启动filesystem的Quota的支持
使用vim编辑/etc/fstab文件
注意:因为是要处理用户的磁盘,所以采用的是/home这个目录来进行限额。另外,CentOS 6.x以后,默认使用UID的磁盘代号而非使用文件名,不过,仍可以使用类似/dev/sda1之类的文件名!
上述操作说明,卸载home目录,重新挂载,然后查看/home所在的filesystem有没有上述的挂载属性!
2.制作Quota配额文件,并启动文件系统的Quota支持(虽然执行过quotacheck -avug之后会报很多错误,但是有绿色框内的提示,证明上述操作有效!)
3.为用户定义Quota配额
执行edquota -u xueji01后编辑标注位置
用户xueji02,xueji03,xueji04,xueji05一样的操作!
执行edquota -p xueji0{1,2,3,4,5}
最后执行repquota -au查看
例题 文件系统扩充(LVM):假设/home不够用了,需要将/home扩充到7GB,具体操作如下:
开始制作PV
因为是虚拟机,所以执行partprobe会报错,需要reboot才行!
将/dev/sda9加入PV,并将该PV加入vg_xueji这个VG
开始扩充/home,先查看下LV容量
使用lvresize来重重LV容量
扩充文件系统
OK,扩充完成!
例题 不同的runlevel下服务管理,在当前的runlevel之下,有哪些服务是默认启动的呢?此外,如果我的系统当前不想启动自动网络挂载(autofs)机制,则如何让该服务在系统启动时不被自动加载启动的呢?
答:默认的runlevel可以使用runlevel这个命令来处理,那我们默认使用运行级别3,因此可以这样做:
上述命令的输出信息中,会有autofs服务是在启动的状态,如果需要关闭它,具体操作如下:
上面提到的知识已经启动的服务,如果想要了解已启动的网络监听服务(网络监听服务在下面会提到),那么该如何做呢?见下面这个例题:
例题 查询已启动的网络监听服务,想要检查当前我这台主机启动的所有网络监听服务有哪些?且关闭不需要的网络监听程序,具体操作如下:
执行netstat -tulnp
假设现在想要关闭某个服务,可以使用/etc/init.d/servername stop来关闭,然后使用chkconfig来设置开机启动行为。但是,有时启动的服务名称可能与实际命令不一样,此时需要使用grep去过滤数据,或者通过tab键去去的相关的服务名。
例题 使用YUM进行系统更新:假设用户的网络畅通,需要进行整个系统的更新,且每天凌晨3:00进行整个系统的更新:
但是不明白的是:为什么这样不能添加计划任务,使用crontab -e却可以
[root@xueji ~]# crontab -e 0 3 * * * root /usr/bin/yum -y update :wq crontab: installing new crontab [root@xueji ~]# crontab -l 0 3 * * * root /usr/bin/yum -y update
软件安装与查询
例题 查询当前系统中是否安装了Samba这个软件,具体操作:
[root@xueji ~]# rpm -qa | grep -i samba samba-client-3.6.23-51.el6.x86_64 samba-winbind-clients-3.6.23-51.el6.x86_64 samba4-libs-4.2.10-15.el6.x86_64 samba-winbind-3.6.23-51.el6.x86_64 samba-common-3.6.23-51.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:139 0.0.0.0:* LISTEN 22356/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 22356/smbd tcp 0 0 :::139 :::* LISTEN 22356/smbd tcp 0 0 :::445 :::* LISTEN 22356/smbd udp 0 0 192.168.30.255:137 0.0.0.0:* 22369/nmbd udp 0 0 192.168.30.12:137 0.0.0.0:* 22369/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 22369/nmbd udp 0 0 192.168.30.255:138 0.0.0.0:* 22369/nmbd udp 0 0 192.168.30.12:138 0.0.0.0:* 22369/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 22369/nmbd
权限与SElinux
例题 单一用户、组的权限设定ACL:假设想要让student可以进入/home/group-XJ目录下,具有读但没有写的权限。同时xueji05在/home/group-XJ内,不具有任何权限。具体操作
[root@xueji ~]# useradd student [root@xueji ~]# echo "123456" | 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---+ 2 root group-XJ 4096 9月 6 08:17 /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 0 3 * * * root /usr/bin/yum -y update 50 2 * * 5 root sh /root/bin/backup.sh :wq crontab: installing new crontab [root@xueji bin]# crontab -l 0 3 * * * root /usr/bin/yum -y update 50 2 * * 5 root sh /root/bin/backup.sh