linux usermod、chsh、userdel 浅谈
之前介绍过在 linux 系统使用 useradd 命令及 passwd 命令创建新用户及更改用户密码。但是如果不小心在创建用户的时候把用户信息写错了咋办?今天就来简单为大家介绍一下 linux 更改用户信息的两个常用命令: usermod 和 chsh。顺便再为大家介绍一下删除用户的命令 userdel 。
usermod 的功能介绍及语法结构:
虽然现在 usermod 程序的功能已经被其他很多命令所取代,但是无论如何,还是可以用 usermod 来细致高速用户账号的相关信息。这个命令在我系统的”男人“里又是中文,有些奇怪,因为不知道具体啥时候是中文,啥时候是英文,唉,随机。。嗯。
名称
usermod – 修 改 使 用 者 帐 号语法
usermod [-c comment] [-d home_dir [ -m]]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-l login_name] [-s shell]
[-u uid [ -o]] login
usermod 的参数简谈:
似乎 linux 的每个命令都有太多的参数让我们根本记不住都应该怎样应用,不过“男人”实在是没的说,对每个参数都会给你尽量通俗的解释,不过是相对于能看懂外语的。呵呵。其实大家一定要记住,命令只需要记住常用的一些参数即可,其他的,当有需要的时候一定要查一下手册,因为只有与系统配套的手册说的才最准确。并且有机会的话大家实地操作一下,感受自会不同。闲话少说,我再来简单的为大家介绍一下 usermod 的参数。
| 类型 | 描述 |
| -c | 更改 /etc/passwd 第5栏用户信息说明的部分,后面接描述信息,可以使用 chfn 命令替代 |
| -d |
更改 /etc/passwd 第6栏用户的家目录部分,如果再加上 -m 参数(只与-d配合) 则会将现有家目录的地址重命名为新的家目录地址,如原来没有指定家目录地址,则为账号新建一个指定的家目录地址 |
| -e | 更改 /etc/shadow 的第8栏账号的失效日期,后面接日期参数格式为 MM/DD/YY 或 YYYY-MM-DD |
| -f | 更改 /etc/shadow 的第7栏账号过期宽限时间部分,当后面接的值为 0 时,账号立即失效,为 -1 时关闭此功能默认值为 -1 |
| -g | 后面接 group name 必须是现有 group 组中的一个,改变用户的初始化用户组 id 对应 /etc/passwd 的第4栏内容 |
| -G | 后面接 group name 必须是现有 group 组中存在的组名,改变用户能够支持的用户组,修改的是 /etc/group |
| -l | 后面接账号名称,即更改用户名。对应的是 /etc/passwd 的第一栏 |
| -s | 后面接shell的实际文件,即 /bin/bash ,/bin/csh之类,可以使用 chsh 命令替代 |
| -u | 更改用户的UID,对应的是 /etc/passwd 的和3栏数据,此 UID 不能与目前系统中已经存在的UID相同 |
| -L | 暂将用户的密码冻结,禁止其登录,即更改 /etc/shadow 的密码栏,在其前面加上 ! |
| -U | 暂将用户的密码解冻,即去掉其 /etc/shadow 密码栏前面的 ! |
usermod 示例:
示例是鲜活的,是很能说明问题的,有时候如果忘了一个参数咋用了,过来翻一下例子,一下就会想起来不少。所以,咱们要举例证明刚才参数的作用,并且也要实际操作一下,以加深印象。说来咱就来,瞧好吧您。
[simaopig@xiaoxiaozi ~]$ su
密码:
[root@xiaoxiaozi simaopig]# usermod -c '这就是个快要删除的账号' chongpig
[root@xiaoxiaozi simaopig]# grep chongpig /etc/passwd
chongpig:x:501:501:这就是个快要删除的账号:/home/chongpig:/bin/bash
[root@xiaoxiaozi simaopig]# usermod -e '07/31/2009' chongpig
[root@xiaoxiaozi simaopig]# grep chongpig /etc/shadow
chongpig:$6$mVu5nBAo$4HzNf92n3RYAiDfVk2Q5YtIxfjrVxvYHAusGeUAWfabLr5WIuQdn/2HCcsHwKRoRpxGLCJ.wA.1QLgG.rXuhw/:14447:0:99999:7::14456:
# 说明日期格式 MM/DD/YY 与 YYYY-MM-DD均可
[root@xiaoxiaozi simaopig]# usermod -e '2009-07-31' chongpig
usermod:无改变
# 该命令执行时间很长,要改的东西其实还是蛮多的,大家耐心等候
# 先看原来 /home 目录下都有谁的家目录
[root@xiaoxiaozi home]# ls
chongpig lost+found simaopig simaopig2 simaopig4
[root@xiaoxiaozi home]# usermod -d /home/chongpig_new -m chongpig
# 看chongpig的家目录是否已经换过来了
[root@xiaoxiaozi home]# ls
chongpig_new lost+found simaopig simaopig2 simaopig4
# 咋听着像是娱乐圈的事啊,呵呵,看密码栏(第二栏)先加上了 ! 后又没了
[root@xiaoxiaozi home]# usermod -L chongpig
[root@xiaoxiaozi home]# grep chongpig /etc/shadow
chongpig:!$6$mVu5nBAo$4HzNf92n3RYAiDfVk2Q5YtIxfjrVxvYHAusGeUAWfabLr5WIuQdn/2HCcsHwKRoRpxGLCJ.wA.1QLgG.rXuhw/:14447:0:99999:7::14456:
[root@xiaoxiaozi home]# usermod -U chongpig
[root@xiaoxiaozi home]# grep chongpig /etc/shadow
chongpig:$6$mVu5nBAo$4HzNf92n3RYAiDfVk2Q5YtIxfjrVxvYHAusGeUAWfabLr5WIuQdn/2HCcsHwKRoRpxGLCJ.wA.1QLgG.rXuhw/:14447:0:99999:7::14456:
chsh 描述、语法、示例:
chsh 这个命令现在一般被用来替换 usermod -s 命令即更改用户登录的shell。其常用的只有两个参数 -l 和 -s 至于其他的无非就是一些版本信息,及帮助之类的就不再介绍了。
chsh -l 起到的作用是列出当前系统的所有shell ,只有您知道有啥了,才会正确的为用户设置shell不是,否则没有的那就得您自己去安装了。咱们不谈。
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
而 chsh -s 呢就是为用户指定shell了,咱们继续看实例,这没啥好说的。嗯。
sudo chongpig
# 要求输入chongpig用户的密码
[chongpig@xiaoxiaozi ~]$ chsh -s /bin/sh; grep chongpig /etc/passwd
Changing shell for chongpig.
密码:
Shell changed.
chongpig:x:501:501:这就是个快要删除的账号:/home/chongpig_new:/bin/sh
userdel 语法及示例:
看名字大家就知道这是删除用户用的,其语法也很简单,因为其带的参数很少,userdel 只有一个可选参数 -r 。在 linux 里 -r 一般都代表循环,把所有相关的内容一起处理。在这里也是一样,如果加上了 -r 参数就是说明连同用户的家目录一起删除掉。
名称
userdel – 删 除 使 用 者 帐 号 及 相 关 档 案语法
userdel [-r] login
[chongpig@xiaoxiaozi ~]$ su
密码
[root@xiaoxiaozi ~]# userdel -r chongpig
[root@xiaoxiaozi ~]# ls /home/
lost+found simaopig simaopig2 simaopig4
userdel 的说明:
用户如果在系统上面操作一断时间,那么该用户其实在系统内可能会含有其他文件,例如其的邮箱,cron 脚本等。所以要想完整地删除某用户,在执行 userdel -r username 前,先以 “find/-user username”查出整个系统中属于 username 的文件,然后再删除。
因为我的chongpig是新用户,而且本机只有我自己在使用,所以我可以确定没有用chongpig做过一些什么操作。否则我是断不敢直接用 userdel来删除这个用户的。
而linux系统一般删除一个账号的方法是,手动将 /etc/passwd 与 /etc/shadow 里的该账号取消。一般而言,如果该账号只“暂时不启用“,那么将 /etc/shadow 里面最后一个字段(保留字段)置为0,就可以让该账号无法使用,但是,所有与该账号相关的数据都会留下来。使用 userdel 的时机通常是“真的不想让该用户在主机上有任何数据存在了”。
总结及唠叨:
linux 的日志总是显得很长,写起来很累,因为每一个命令都要认真执行一下,而且为了能尽量多的把常用的参数都介绍一下,还要写表格,多举些例子,不过这些都是值得的。呵呵。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/07/25/1229/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
继续占地留名…待学习~
[回复]
@hslx111
呵呵,谢谢捧场。哈。
[回复]
啥时出php的啊
[回复]
呵呵….这个待学习..
[回复]
@beetea
呃,原来在期盼php啊,嗯。下周,下周就是php了。呵呵。
[回复]
@吖Bee
呵呵,慢慢来。呵。
[回复]