3.4-3.6
3.4 usermod命令
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。
-
语法
usermod(选项)(参数)
-
选项
-c<备注>:修改用户帐号的备注文字; -d<登入目录>:修改用户登入时的目录; -e<有效期限>:修改帐号的有效期限; -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号; -g<群组>:修改用户所属的群组; -G<群组>;修改用户所属的附加群组; -l<帐号名称>:修改用户帐号名称; -L:锁定用户密码,使密码无效; -s:修改用户登入后所使用的shell; -u:修改用户ID; -U:解除密码锁定。
-
参数
登录名:指定要修改信息的用户登录名。
-
实例
- 将newuser2添加到组staff中:
usermod -G staff newuser2
- 修改newuser的用户名为newuser1:
usermod -l newuser1 newuser
- 锁定账号newuser1:
usermod -L newuser1
- 解除对newuser1的锁定:
usermod -U newuser1
- 改变用户newuser1的uid:
usermod -u 777 newuser1
3.5 用户密码管理
更改用户密码
- root用户下更改root用户密码
passwd 直接敲passwd命令就会提示更改密码了
- root用户下更改普通用户user1密码
passwd user1 需要passwd后面接需要更改的普通用户用户名
passwd常用命令
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
-
语法
passwd(选项)(参数)
-
选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号。
--stdin:(写shell脚本可能用到这个)
比如:echo 12345 |passwd --stdin user1,这样就避免了交互,直接一条命令就修改密码了,使用到了管道符|。
-
参数
用户名:需要设置密码的用户名。
-
实例
如:
passwd -l user1 锁定user1
-
如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
-
普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。
-
如果我们想让某个用户不能修改密码,可以用-l选项来锁定
-
当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。
下面是/etc/shadow的一个例子:
#cat/etc/shadow
root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::
*号代表密码是被passwd命令锁定的,::代表没有密码,中间是空的,!号是被usermod命令锁定的。这三种情况都是不能登陆这个用户的。
知识总结
与用户、组账户信息相关的文件
存放用户信息:
/etc/passwd
/etc/shadow
存放组信息:
/etc/group
/etc/gshadow
3.6 mkpasswd命令
这个命令可以制作一个随机字符串,我们可以用作密码,可以生成一个强度很高的密码,shell脚本中常用。
- 先安装这个命令的包,默认是不存在这个命令的
yum install -y expect
2.如果使用这个命令
mkpasswd 会默认生成一个9位的密码
mkpasswd -12 也可以指定字符串长度,比如12位
mkpasswd -12 -s 3 也可以指定生成的字符串其中有多少个特殊符号