用户管理
1. 用户管理的基本概念
用户管理的主要任务是管理用户、用户组和用户使用的系统资源。系统资源包括软件资源和和硬件资源。硬件资源是指输入输出设备、网络设备、光驱、磁盘和硬盘等。
在多用户操作系统下,用户分为两类,即超级用户和普通用户。超级用户也是系统管理用户,在Linux操作系统中,超级用户通常就是root用户。普通用户时有超级用户创建的用户。超级用户可以根据用户的人物需求,将用户划分成若干用户组以便完成相关的任务。
文件系统和磁盘分区一一对应,即文件系统的空闲磁盘不足15%时,文件系统将不能正常工作。因此,用户管理的另一个基本任务是对用户时用的磁盘空间进行管理和监控。
2. 用户和系统资源的关系
系统在管理用户和用户组的时候,由几个系统文件至关重要。即:/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow。
2.1. 通用户相关的配置文件
/etc/passwd文件存放用户的基本信息,包括:用户ID、组ID、用户工作目录、用户时用的shell和用户的联系信息。
username:encypted password:UID:GID:full name:home directory:login shell
- username:用户名。用户名是系统中用户的唯一标识。用户名可以时用字母、数字、下划线和句点。一般情况下用户名限制在8个字符之内。
- encypted password:加密的口令。如果口令域的第一个字母是*,则表示此帐号已被查封,且系统不允许此用户登陆。一般此字段保存为x,将此字段的密码数据该放再=在/etc/shadow中。
- UID:用户ID。是系统给每个用户指定的唯一的数字,系统通常是通过UID而不是用户名来保存信息的。
- GID:组ID。系统为每个用户组指定的唯一的数字。
- full name:全名。用户的“真实名字”。
- home directory:用户登陆目录。用户登陆目录是用户成功登陆后的目录,即用户的工作目录。
- login shell:用户使用的shell。是在用户登陆时启动的shell,例如:/bin/bash。
/etc/shadow文件存放用户密码及相关信息。
kiosk:$6$1nd7gunF$1.OXKvR4Fs52Wyo0du7rOjEkhQCVgMGSNB1nfoPk.hcLLF8G2jRmKRxKm3MuhcbBXFxFWCCk.g4e1OauEe5ia0:17215:0:99999:7:::
即:
帐号名称:密码:最近更动密码日期:密码不可被更动天数:密码需要重新更改的天数:密码需熬更改期限前的警告天数:密码过期后的帐号宽限时间(密码失效日):帐号失效日:保留
- 密码:已经加密过的该用户的密码。
- 最近更动密码日期:这个日期是以1970年1月1日作为1而累加的日期,例如:1971年1月1日则为366.
使用如下程序可计算某个日期的累积日数:
[root@foundation44 Desktop]# echo $(($(date --date="2017/09/19" +%s)/86400+1)) 17428
密码需要重新更改的天数:用户必须在最近一次更改密码之后的多少天内重新设置密码,否则这个这个帐号的密码将会变为过期特性。
密码过期,但是该帐号还是可以用来进行其他工作的,包括登陆系统取得bash。不过如果密码过期了,那当你登陆系统时,,系统会强制要求你必须重新设置密码才能登陆继续使用,这就是密码过期特性。
- 密码需要更改期限前的警告天数:当帐号的密码有效期限快要到的时候,系统会依据该字段的设置发出“警告”,提醒该用户再过多少天你的密码就要过期了。
- 密码过期后的帐号宽限日期:密码过期后多少天,如果用户还是没有登陆更改密码,那么该帐号的密码将会失效,即该帐号再也无法使用该密码登陆了。
- 帐号失效日期:该帐号再此字段规定的日期之后,将为无法再使用,无论该帐号的密码是否过期失效。
保留:该字段是保留的,看以后有没有新功能的加入。
2.2. 同用户组相关的配置文件
/etc/group文件存放用户组、组ID、和组中的成员用户。
用户组名称:用户组密码:GID:此用户组支持的帐号名称
- 用户组密码:一般保存为x,通用户密码一样,该字段的密码数据移动到/etc/gshadow中。
- 此用户组支持的帐号名称:多个帐号名称之间不要有空格,用逗号隔开即可。
/etc/gshadow文件存放用户组的相关信息。
3. 用户管理命令
3.1. 用户帐号管理命令
useradd ##创建用户
userdel ##删除用户
passwd ##设置用户密码
login ##用户登陆
exit ##退出用户登陆
su - ##用古切换命令
id ##查看用户信息
3.2. 用户组管理命令
groupadd ##创建用户组
groupdel ##删除用户组
gpasswd ##向用户组添加或删除用户
groudpmod ##修改组此信息
groups ##显示用户所属组
4. 用户使用文件系统空间的限制
管理磁盘空间的方法有两种:一种是对每个用户使用的磁盘空间惊醒限额设定;另一种是对每个用户组使用的磁盘空间进行限额设定。
4.1. 限制用户使用磁盘空间的方法
- 检查服务器的/etc/fstab文件有无限制
# cat /etc/fstab (或者使用more /etc/fstab)
显示内容如下:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 2
此系统有两个分区hda1和hda2,且这两个分区都没有对磁盘作出任何限制。
- 修改/etc/fstab文件
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults,usrquota 1 2
在/home使用的/dev/hda2分区加入usrquota限制标记。
- 建立用户限额文件quota.user
以超级用户登录,在已经磁盘空间限制的安装目录/home下,建立空文件quota.user
# touch /home/quota.user
修改该文件权限为只读和执行
# chmod 600 /home/quota.user
- 重新启动服务器
在超级用户提示下重新引导系统
# shutdown -r now
为指定的用户分配磁盘存放的文件个数
待完善
4.2. 限制用户组使用磁盘空间的方法
假定有一个用户组lee,组内有20个用户。当组内的每个用户使用磁盘空间的软限值是10M,硬限值是15M时,可以设定该用户组的的软限值为10Mx20=200M(200000K).由于组内用户同时达到硬限值的可能性极低,所以硬限值无需为15Mx20=300M,250M即可。
待完善