Linux入门:usermod - 修改用户帐户信息

时间:2021-08-31 20:04:03

一、什么是usermod?

usermod 命令通过修改系统帐户文件来修改用户账户信息
usermod [options] user_name
选项(options)
-a|--append ##把用户追加到某些组中,仅与-G选项一起使用
-c|--comment ##修改/etc/passwd文件第五段comment
-d|--home ##修改用户的家目录通常和-m选项一起使用
-e|--expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD
-f|--inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g|--gid ##修改用户的gid,改组一定存在
-G|--groups ##把用户追加到某些组中,仅与-a选项一起使用
-l|--login ##修改用户的登录名称
-L|--lock ##锁定用户的密码
-m|--move-home ##修改用户的家目录通常和-d选项一起使用
-s|--shell ##修改用户的shell
-u|--uid ##修改用户的uid,该uid必须唯一
-U|--unlock ##解锁用户的密码

二、示例(Examples)

1、新建用户myUser,密码myUser,另外添加myGroup组

#useradd myUser
#echo "myUser" | passwd --stdin myUser
#groupadd myGroup

2、把myUser用户加入myGroup组

#usermod -aG myGroup myUser ##多个组之间用空格隔开
#id myUser
uid=500(myUser) gid=500(myUser) groups=500(myUser),501(myGroup)

3、修改myUser用户的家目录

#usermod -md /home/myGroup
#ls /home
myGroup

4、修改用户名

#usermod -l Jerry(新用户名称) myUser(原来用户名称)
#id Jerry
uid=500(Jerry) gid=500(myUser) groups=500(myUser),501(myGroup)

5、锁定Jerry的密码

# sed -n '$p' /etc/shadow
Jerry:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:::
#usermod -L Jerry
# sed -n '$p' /etc/shadow
Jerry:!$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:::

6、解锁Jerry的密码

#usermod -U Jerry
# sed -n '$p' /etc/shadow
Jerry:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:::

7、修改用户的shell

#sed '$!d' /etc/passwd
Jerry:x:500:500::/home/myGroup:/bin/bash
#usermod -s /bin/sh Jerry
#sed -n '$p' /etc/passwd
Jerry:x:500:500::/home/myGroup:/bin/sh

8、修改用户的UID

#usermod -u 578 Jerry (UID必须唯一)
#id Jerry
uid=578(Jerry) gid=500(myUser) groups=500(myUser),501(myGroup)

9、修改用户的GID

#groupadd -g 578 myUser1
#usermod -g 578 Jerry (578组一定要存在)
#id Jerry
uid=578(Jerry) gid=578(myUser1) groups=578(myUser1),501(myGroup)

10、指定帐号过期日期

# sed -n '$p' /etc/shadow
Jerry:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:::
# usermod -e 2012-09-11 Jerry
# sed -n '$p' /etc/shadow
Jerry:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7::15594:

11、指定用户帐号密码过期多少天后,禁用该帐号

# usermod -f 0 Jerry
# sed -n '$p' /etc/shadow
Jerry:$6$1PwPVBn5$o.MIEYONzURQPvn/YqSp69kt2CIASvXhOnjv/t \
Z5m4NN6bJyLjCG7S6vmji/PFDfbyITdm1WmtV45CfHV5vux/:15594:0:99999:7:0:15594:
注意(caution):
usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序

三、关于 /etc/passwd

1、/etc/passwd的格式:

user_name:x:uid:gid:commnet:home:shell

2、/etc/shadow

username:passwd:lastchg:min:max:warn:inactive:expire:flag
--用户名
--密码
--从1970年1月1日起到上次修改密码所经过的天数
--密码再过几天可以被变更(0表示随时可以改变)
--密码再过几天必须被变更(99999表示永不过期)
--密码过期前几天提醒用户(默认为一周)
--密码过期几天后帐号被禁用
--从1970年1月1日算起,多少天后账号失效