想要了解LINUX系统下是如何进行用户管理的,那么首先就要了解LINUX下与用户相关的文件。

一、跟用户和组相关的文件

1、/etc/passwd:    #用户的属性信息

   文件格式:    

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

   解释说明:    

用户名:密码占位符:UID:GID:注释信息:家目录:默认shell

2、/etc/shadow:    #用户的密码信息

   文件格式:

root:$1$83610621$jMmPijDr8zr2P1IG$HAd.1epuiNE.:16130:0:99999:7:::

   解释说明:

用户名:加密的密码串:最近一次修改密码的时间:密码最短使用期限:密码最长使用期限:密码到期警告天数:账号的非活动天数:账号过期期限:预留段

3、/etc/group:    #组的属性信息

   文件格式:

users:x:100:

   解释说明:

组名:密码占位符:GID:以此组为额外组的用户列表,用户间用逗号分割

4、/etc/gshadow:    #组的密码信息

   文件格式:

daemon:::bin,daemon

   解释说明:

组名:密码:用户组管理员用户,用户间用逗号分割:属于该组的用户

了解了与用户、密码相关的文件之后,我们再来看一下与用户管理相关的命令

二、用户管理:

   1、useradd        #添加用户

useradd -u    #指定UID,有效范围0-65535(0-499为系统用户,500+为普通用户)
useradd -g    #指定GID,有效范围已有的GID
useradd -G    #指定额外组,有效范围内已有的GID,可以有多个
useradd -c    #指定注释信息
useradd -d    #指定家目录
useradd -s    #指定shell
useradd -r    #创建系统用户,系统用户的家目录不会被真正创建
useradd -M    #不为用户创建家目录
useradd -m    #必须为用户创建家目录

   2、usermod       #修改用户属性

usermod -u    #修改UID
usermod -g    #修改GID
usermod -a -G #修改GID,-G修改额外组时会覆盖原有的额外组,同时使用-a选项则能保留原有的额外组
usermod -c    #修改注释信息
usermod-s     #修改shell
usermod-l     #修改用户的登录名
usermod -m -d #修改用户的家目录,-d只修改家目录指向,同时使用-m选项则可以实现将原有家目录移动为新的家目录

   3、userdel        #删除用户

userdel USERNAME#删除用户,不会删除用户的家目录
userdel -r    #删除用户的同时删除用户的家目录


三、用户组管理:

   1、groupadd    #添加用户组

groupadd -g    #指定GID
groupadd -r    #创建系统组

   2、groupmod    #修改用户组属性

groupmod       #修改用户组属性
groupmod -g    #修改GID
groupmod -n    #修改组名

   3、groupdel    #删除用户组

groupdel GROUPNAME  #删除用户组

四、密码管理:

   1、passwd        #设置用户名密码

passwd          #修改自己的密码
passwd USER     #修改指定用户的密码
passwd -l       #锁定用户账户
passwd -u       #解锁用户账户
passwd -d       #删除用户密码
passwd -e       #使用户密码失效,必须在下次登录时修改密码
passwd -n       #密码最短使用天数
passwd -x       #密码最长使用天数
passwd -w       #密码警告天数
passwd -i       #密码过期后,锁定用户的天数

   2、chage         #修改用户名、密码的有效期限

chage  -l     #列出用户的以及密码的有效期限
chage  -m     #修改密码的最小天数
chage  -M     #修改密码的最大天数
chage  -I     #密码过期后,锁定用户的天数
chage  -d     #指定密码最后修改的日期
chage  -E     #密码有效期,0表示立即过期,-1表示永不过期
chage  -W     #密码过期前,开始警告天数

   3、gpasswd       #设置用户组密码

gpasswd GROUPNAME    #设置组密码
gpasswd -a    #添加用户到组 gpasswd -a USER GROUP
gpasswd -d    #从组中删除用户 gpasswd -d USER GROUP
gpasswd -A    #指定管理员
gpasswd -M    #指定组成员和-A的用途差不多
gpasswd -r    #删除密码
gpasswd -R    #限制用户登入组,只有组中的成员才可以用newgrp加入该群


五、示例:

1、创建一个用户james,其ID号为1111,基本组为heat(组ID为2014),附加组为nba

groupadd nba
groupadd -g 2014 heat
useradd -u 1111 -g heat -G nba james

使用id USERNAME 查看用户信息

id james
uid=1111(james) gid=2014(heat) groups=2014(heat),2001(nba)

2、创建一个用户wade,其全名为Dwyane Wade,默认shell为dash,家目录为/home/DW3

useradd -c "Dwyane Wade" -s /bin/dash -d /home/DW3 wade

使用 finger USERNAME 查看用户信息

[root@myb362 ~]# finger wade
Login: wade           Name: Dwyane Wade
Directory: /home/DW3/               Shell: /bin/dash
Never logged in.
No mail.
No Plan.

3、修改james的ID号为6006,基本组为nba,附加组为heat和miami

groupadd miami
usermod -u 6006 -g nba -G heat,miami james

4、保留3中james的附加组,并且新增usa附加组

groupadd usa
usermod -a -G usa james

5、为wade用户设置密码,并且设定其密码最短使用期限为3天,最长为32天,警告天数为6天,密码过期后锁定天数为365天

passwd wade
chage -m 3 -M 32 -W 6 -I 365 wade

使用chage -l USERNAME 查看用户密码相关信息

[root@myb362 mail]# chage -l wade
Last password change: Mar 06, 2014
Password expires: Apr 07, 2014
Password inactive: Apr 07, 2015
Account expires: never
Minimum number of days between password change: 3
Maximum number of days between password change: 32
Number of days of warning before password expires: 6

6、设置wade账号过期时间为2015年6月4日

chage -E 2015-06-04 wade

7、用su命令切换到wade用户下,创建一个属组为nba的文件star

[root@myb362 ~]$ gpasswd nba  首先需要为组创建密码
[root@myb362 ~]$ su - wade    切换到wade用户
[wade@myb362 ~]$ newgrp nba   临时设定nba组为自己的基本组
[wade@myb362 ~]$ mkdir wade ;ls -l
total 8
drwxr-xr-x. 2 wade nba   4096 Mar  6 19:56 star