Linux 上如何创建新的用户,并让其在首次登陆后修改密码,并限制其允许使用的磁盘空间
闲来无事玩的,有错误请纠正,thanks!
建立用户账户 强制用户帐号过期 限制其磁盘使用大小
一、先创建用户吧:
1. 使用useradd添加用户
2. 使用passwd设置用户密码
3. 使用usermod -L来锁密码
4. 强制用户帐号过期chage -d 0 username
5. 解锁用户帐号
上面流程的示例:
# useradd stick
# passwd stick
Changing password for user stick.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# usermod -L stick
# chage -d 0 stick
# usermod -U stick
当然用户dan第一次登录,就会提示设置密码如下:
$ su stick
Password:
You are required to change your password immediately (root enforced)
Changing password for stick
(current) UNIX password:
New password:
Retype new password:
ps:1、userdel 删除用户,该命令有参数可以实现不同的功能。
2、useradd 用法 useradd -c wangwei -d /opt/stick -G linux,soft_2 -s /bin/bash stick 注:添加用户stick,真实名是wangwei ,家目录设置在 /opt/stick ,是linux,soft_2 用户组成员, SHELL是bash.
二、设置磁盘限额:
用户磁盘空间的限制是以文件系统(分区)为单位,而不理会用户文件放在该文件系统中的哪个目录中。
1. 修改 /etc/fstab 文件.在文件系统相应的 mount 命令行中加入限额选项(如下的例子)。
/dev/sda4 /opt ext3 defaults,usrquota,grpquota 0 0
2. 重新装载 Linux 分区,例如:
[root@fileserver root]# mount -o remount /opt
3. 在欲加磁盘限额的文件系统的安装点目录建立 aquota.user 和 aquota.group 文件:
[root@fileserver root]# cd /opt (/opt 为单个分区 /dev/sda4 的装载点)
[root@fileserver opt]# touch aquota.user (为用户设置磁盘限额)
[root@fileserver opt]# touch aquota.group (为用户组设置磁盘限额)
这时生成 的 aquota.user 和 aquota.group 是空的,不符合系统的要求。
请看下一步。
4. 生成符合系统要求的 aquota.user 和 aquota.group
[root@fileserver opt]# quotacheck /opt (生成符合系统要求 的 aquota.user)
[root@fileserver opt]# quotacheck -g /opt (生成符合系统要求 的 aquota.group)
生成时,有错误提示。这不要紧。因为 先前 touch 生成的是一个空文件,肯定格式不对。
这样 正确的 aquota.user 和 aquota.group 生成啦。
继续下一步:
(对于上面的两步 也可以有其他方式,比如直接在没有创建aquota.user等文件的时候 直接使用 quotacheck -avug 生成,更多的请查看 quotacheck 命令的使用方法)
5. 为用户设置磁盘空间限额: [root@fileserver opt]# edquota [-u] user_name (此处的user_name 用户的home路径应该在做磁盘限额的分区上) [root@fileserver opt]# edquota -g group_name (对于用户组) 本命令开启一个 vi 窗口,为用户设置磁盘空间和i节点数目的限额.其中 soft 限额为一个临时性的限额;hard 限额为一个永久性限额(soft 限额可略大于 hard 限额),编辑方法与 vi 完全相同,以 ZZ 或 :wq 命令退出.如要给若干用户 user1, user2,user3 指定相同的磁盘限额,可用下面的命令给这些用户赋予与 protuser 相同的限额:
下面是我对上面创建的用户stick设置的参数(数字虽小,因为仅仅是作为验证,能够达到限制的目的其中的单位貌似是KB)
1 Disk quotas for user stick (uid 501): 2 Filesystem blocks soft hard inodes soft hard 3 /dev/sda4 108 100 110 26 0 0
[root@fileserver opt]# edquota [-u] -p protuser user1 user2 user3
[root@fileserver opt]# edquota -g -p protgroup group1 group2 group3
设定soft quota和hard quota之间的时间:
[root@fileserver opt]# edquota -t
出现一个 vi 窗口:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/sda4 7days 7days
修改成自己所需要的,并保存退出就设置这个时间啦。
基本完成了,我想上面的问题应该有很多,欢迎贴在后面以作改进。