1、Linux usermod命令:修改用户信息
在添加了用户之后,如果不小心添加错了用户的信息,那么是否可以修改呢?当然可以了,我们可以直接使用编辑器修改用户相关文件,也可以使用 usermod 命令进行修改。
usermod 命令命令的格式如下:
[root@localhost ~]#usermod [选项] 用户名
选项:
- -u UID:修改用户的UID;
- -d 家目录:修改用户的家目录。家目录必须写绝对路径;
- -c 用户说明:修改用户的说明信息,就是 /etc/passwd 文件的第五个字段;
- -g 组名:修改用户的初始组,就是 /etc/passwd 文件的第四个字段;
- -G 组名:修改用户的附加组,其实就是把用户加入其他用户组;
- -s shell:修改用户的登录 Shell。默认是 /bin/bash;
- -e 日期:修改用户的失效曰期,格式为"YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
- -L:临时锁定用户(Lock);
- -U:解锁用户(Unlock);
可以看到,usermod 和 useradd 命令的选项非常类似,因为它们都是用于定义用户信息的。需要注意的是,useradd 命令用于在添加新用户时指定用户信息,而 usermod 命令用于修改已经存在的用户的用户信息,干万不要搞混。
usermod 命令多出了几个选项,其中,-L 可以临时锁定用户,不让这个用户登录。其实锁定的方法就是在 /etc/shadow 文件的密码字段前加入"!"。大家已经知道密码项是加密换算的,所以加入任何字符都会导致密码失效,所以这个用户就会被禁止登录。而解锁(-U)其实就是把密码字段前的"!"取消。举个例子:
【例 1】
[root@localhost ~]# usermod -L lamp #锁定用户 [root@localhost ~]# grep "lamp" /etc/shadow lamp:! $6$YrPj8g0w$ChRVASybEncU24hkYFqxREH3NnzhAVDJSQLwRwTSbcA2N8UbPD9bBKVQSky xlaMGs/Eg5AQwO.UokOnKqaHFa/:15711:0:99999:7::: #查看发现锁定就是在密码字段前加入"!",这时lamp用户就暂时不能登录了 [root@localhost ~]# usermod -U lamp #解锁用户 [root@localhost ~]# grep "lamp" /etc/shadow lamp:$6$YrPj8g0w$ChRVASybEncU24hkYFqxREH3NnzhAVDJSQLwRwTSbcA2N8UbPD9bBKVQSkyx laMGs/Eg5AQwO.UokOnKqaHFa/:15711:0:99999:7:: #取消了密码字段前的"!"
再举几个其他的例子:
【例 2】
[root@localhost ~]# usermod -G root lamp #把lamp用户加入root组 [root@localhost ~]# grep "lamp" /etc/group root:x:0:lamp lamp:x:501: #lamp用户已经加入了root组
【例 3】
[root@localhost ~]# usermod -c "test user" lamp #修改用户说明 [root@localhost ~]# grep "lamp" /etc/passwd lamp:x:501:501:test user:/home/lamp:/bin/bash #查看一下,用户说明已经被修改了
2、Linux chage用法详解:修改用户密码状态
通过 chage 命令可以查看和修改 /etc/shadow 文件的第三个字段到第八个字段的密码状态。我个人建议直接修改 /etc/shadow 文件更加直观和简单。
那么为什么还要讲解 chage 命令呢?因为 chage 命令有一种很好的用法,就是强制用户在第一次登录时必须修改密码。
chage 命令的格式如下:
[root@localhost ~]#chage [选项] 用户名
选项:
- -l:列出用户的详细密码状态;
- -d 日期:密码最后一次修改曰期(/etc/shadow 文件的第三个字段),格式为 YYYY-MM-DD;
- -m 天数:密码的两次修改间隔时间(第四个字段);
- -M 天数:密码的有效期(第五个字段);
- -W 天数:密码修改到期前的警告天数(第六个字段);
- -i 天数:密码过期后的宽限天数(第七个字段);
- -E 日期:账号失效时间(第八个字段),格式为 YYYY-MM-DD;
举几个例子,先看一下查看状态。
【例 1】
[root@localhost ~]# chage -l lamp #查看一下用户密码状态 Last password change:Jan 06, 2013 Password expires:never Password inactive :never Account expires :never Minimum number of days between password change :0 Maximum number of days between password change :99999 Number of days of warning before password expires :7 我们强制 lamp 用户在第一次登陆时必须修改密码。
【例 2】
[root@localhost ~]# chage -d 0 lamp #这个命令其实是把密码修改曰期归零了,这样用户一登录就要修改密码 然后我们以 lamp 用户登陆一下系统。 local host login:lamp Password: #输入密码登陆 You are required to change your password immediately (root enforced) changing password for lamp. #有一些提示,就是说明 root 强制你登录后修改密码 (current)UNIX password: #输入旧密码 New password: Retype new password: #输入两次新密码
这项功能在进行批量用户管理时还是非常有用的。