1.2.2.3 服务器操作系统的基本使用(1)
既然我们这部主机需要提供不同账号来使用他们自己的网络驱动器,因此还需要建立账号、使用磁盘配额(Quota)等。那么你会不会建立账号呢?你会不会配置共享目录呢?你能不能处理每个账号的 Quota 配额呢?如果 /home 的容量不足了,你会不会扩充 /home 的容量呢?有没有办法将系统的磁盘使用情况定期以邮件的形式发送给管理员呢?这些都是基本的维护行为。我们下面就以几个实际例子来练习一下,看看你的基本能力。
批量创建账号:假设我的5个朋友账号分别是 vbirduser{1,2,3,4,5},且这5个朋友未来想要共享一个目录,因此应该要加入同一个用户组,假设这个用户组为 vbirdgroup,且这5个账号的密码均为 password 。那该如何创建这5个账号?
答:你可以写一个脚本程序来进行上述的工作。
[root@localhost ~]# mkdir bin
[root@localhost ~]# cd /root/bin
[root@localhost bin]# vim useradd.sh
#!/bin/bash
groupadd vbirdgroup
for username in vbirduser1 vbirduser2 vbirduser3 vbirduser4 vbirduser5
do
useradd -G vbirdgroup $username
echo "password" | passwd --stdin $username
done
[root@localhost bin]# sh useradd.sh
[root@localhost bin]# id vbirduser1
uid=501(vbirduser1)gid=502(vbirduser1)groups=502(vbirduser1),501(vbirdgroup)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
最后利用 id 这个命令来查询组的支持是否正确。
共享目录的权限:这5个朋友的共享目录位于 /home/vbirdgroup 这个目录,这个目录只能给这5个人使用,且每个人均可在该目录内进行任何操作,而其他人则无权使用(没有权限)该目录,那该如何设置这个目录的权限呢?
答:考虑到共享目录,因此目录需要有 SGID 的权限才行,否则个别组的数据会让这5个人之间彼此无法修改对方的数据。因此需要这样做:[root@localhost ~]# mkdir /home/vbirdgroup
[root@localhost ~]# chgrp vbirdgroup /home/vbirdgroup
[root@localhost ~]# chmod 2770 /home/vbirdgroup
[root@localhost ~]# ll -d /home/vbirdgroup
drwxrws---. 2 root vbirdgroup 4096 2011-07-14 14:49 /home/vbirdgroup/
# 上面加粗字体的部分就是需要注意的部分!特别注意那个权限的 s 功能。
Quota 操作:假设这5个用户均需要进行磁盘配额限制,每个用户的配额为 2GB(hard)以及 1.8GB(soft),该如何处理?
答:该操作实现起来比较复杂,因为必须要包括文件系统的支持、Quota 数据文件设置、Quota 启动、建立用户 Quota 信息等过程。 整个过程在基础篇已经讲过了,这里快速地带领大家操作一次吧!# 1. 启动 filesystem 的 Quota 支持
[root@localhost ~]# vim /etc/fstab
UUID=01acf085-69e5-4474-bbc6-dc366646b5c8 / ext4 defaults 1 1
UUID=eb5986d8-2179-4952-bffd-eba31fb063ed /boot ext4 defaults 1 2
/dev/mapper/server-myhome /home ext4 defaults,usrquota,grpquota 1 2
UUID=605e815f-2740-4c0e-9ad9-14e069417226 /tmp ext4 defaults 1 2
....(以下省略)....
# 因为是要处理用户的磁盘,所以采用的是 /home 这个目录来进行限额。
# 另外,CentOS 6.x 以后,默认使用 UUID 的磁盘代号而非使用文件名。
# 不过,你还是能使用类似 /dev/sda1 之类的文件名!
[root@localhost ~]# umount /home; mount -a
[root@localhost ~]# mount | grep home
/dev/mapper/server-myhome on /home type ext4 (rw,usrquota,grpquota)
# 完成后使用 mount 去检查一下 /home 所在的 filesystem 有没有上述的挂载属性!
# 2. 制作 Quota 配额文件,并启动文件系统的 Quota 支持
[root@localhost ~]# quotacheck -avug
quotacheck: Scanning /dev/mapper/server-myhome [/home] done
....(以下省略)....
# 会出现一些错误的警告信息,但那是正常的!出现上述的提示信息就对了!
[root@localhost ~]# quotaon -avug
/dev/mapper/server-myhome [/home]: group quotas turned on
/dev/mapper/server-myhome [/home]: user quotas turned on
# 3. 为用户定义 Quota 配额
[root@localhost ~]# edquota -u vbirduser1
Disk quotas for user vbirduser1 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/mapper/server-myhome 20 1800000 2000000 5 0 0
# 因为 Quota 使用的单位是 KB ,所以这里要补上好多 0,看得眼都花了。
[root@localhost ~]# edquota -p vbirduser1 vbirduser2
# 持续作几次,将 vbirduser{3,4,5} 全部添加上去!
[root@localhost ~]# repquota -au
**Report for user quotas on device /dev/mapper/server-myhome
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 24 0 0 3 0 0
vbirduser1 -- 20 1800000 2000000 5 0 0
vbirduser2 -- 20 1800000 2000000 5 0 0
vbirduser3 -- 20 1800000 2000000 5 0 0
vbirduser4 -- 20 1800000 2000000 5 0 0
vbirduser5 -- 20 1800000 2000000 5 0 0
# 看到了吗?上述的结果就是发现了设定的 Quota 值了!整个流程就是这样!
【责任编辑:book TEL:(010)68476606】
点赞 0