想要了解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