博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
usermod 命令、mkpasswd命令及用户密码管理
阅读量:6654 次
发布时间:2019-06-25

本文共 2190 字,大约阅读时间需要 7 分钟。

hot3.png

1、usermod命令

 

 usermod ,是更改用户属性的命令,用法与 useradd 有点相似。主要有以下几个用法:

① 更改用户 uid :usermod + -u + 指定ID + 用户名 ;

② 更改用户 gid :usermod + -g + 指定ID/用户组名 + 用户名 ;

③ 更改用户加目录:uesrmod + -d + 加目录 + 用户名 ;

④ 更改用户 shell :usermod + -s + shell + 用户名 ;

先补充一下 useradd 的知识,这边还有一个选项 -G ,这里涉及到一个概念,叫扩展组。每个用户可以使用命令 id 来查看一下,见下图,

cc0154c7512328743b878dddc6aac9240a3.jpg

其中,这个组不仅仅包括前面的 gid ,还包括其他的扩展组。一个用户可以属于多个组,但是 gid 只有一个。做一下实验,见下图,

ed40b4e8db4a7f45aeadf18668f2ce158cc.jpg

使用选项 -G 之后,就是给用户 lys 定义一个扩展组,即加入到 grp2 组中,也就是说现在用户 lys 不仅属于组 lys ,也属于组 grp2 。上图红色框框的组就叫做扩展组。

可不可以继续给用户 lys 加扩展组呢?见下图,

df2b35628fa7c902a5fdd6e09574665102b.jpg

结果发现是可以将用户 lys 添加到组 user5 中的,但是一旦指定 -G 之后,就会替换掉原来的 grp2 扩展组,那能不能同时加多个组呢?见下图,

2e5228571423fc2665eef3a44133543d94d.jpg

结果显示是可以的。但是将 G 换成 g 的话,就会显示--“grp2,user5”组不存在 。这是因为 g 的情况把“grp2,user5”整个当成一个组了。这说明使用 g 的时候,只允许一个组,见下图,

9dc710aa3eb8a758f9df82236f13a47f993.jpg

以上就是 usermod 的用法。

 

2、mkpasswd命令

 

mkpasswd 就是 make password 的缩写,用来生成密码的工具。这个命令默认是不存在的,需要安装,见下图,

e90d3a7ad38df5f80d82ee367f6fc57500b.jpg

e36d12c987604e4c26461afbf0648c0d770.jpg

后面讲到 shell 的时候,会再次分享一下这个工具。mkpasswd 这个命令可以生成随机的字符串,我们可以把这个随机的字符串用作密码。安装完毕,来试一下,见下图,

c6b8f83b1540812881fb0bffa167afb306c.jpg

以上的字符串默认有9位数,包括大小写字母、数字和特殊符号。我们也可以自定义字符串的长度和特殊符号数量,见下图,

2dc0cc8dc14242af9604039cbd44133b9af.jpg

上图中,l 表示长度 long ,s 表示特殊符号,special 。

 

3、用户密码管理

 

之前说过 passwd set_uid 命令,这个权限使普通用户临时拥有 root 更改密码的权限。 root 用户更改密码非常简单,输入命令 passswd ,回车,即可更改。而普通用户输入命令 passwd lys ,回车,可以更改密码。来看一下 shadow 这个文件,见下图,

e103f8f23accae8442995632d65c47e5fd1.jpg

用户 lys 是由密码的,所以第二段显示的是一段加密的字符串。而下面那些 user 系列的用户是没有密码的,显示的是 !! ,表示没有密码,说明这些用户是不能登录的。

使用命令 head /etc/shadow ,回车,见下图,

8afdeb27a5b56f7f40f6292336d48737231.jpg

会发现有的用户第二段是 * ,表示这些用户的密码是被锁定的,不能用,也不能登录。

以上说明,只要用户的密码显示为 !! 或是 * ,就表示这个用户的密码是有问题的,不能登录。

下面来说明一下 passwd -l 这个命令,是用来锁定用户密码的。见下图,

e57b9c6028fa38c3ae6f49319869242574c.jpg

上图中,作用于用户 user5 没有看出区别,是因为用户 user5 的密码本来就是 !! 。而作用于用户 lys 之后,就会发现用户 lys 的密码前面多了 !! ,说明用户 lys 的密码被锁定了。

怎么解锁呢?见下图,

f28949c4c92a59edd4e58a006bf56046888.jpg

上面的 -l 就是 lock 的意思,-u 就是 unlock 的意思。使用命令 passwd -u lys 之后就发现用户 lys 的密码前面没有 !! ,说明解锁了。

除了命令 passwd -l 可以锁定用户密码之外,还有一个命令也可以锁定密码,就是 usermod -L ,见下图,

e47b43135c965c4caf022919fd0967731d4.jpg

可以看到用户 lys 前面多了一个 ! ,不管是 ! 还是 !! ,只要是以 ! 开头的,都说明这个用户被锁定了,不能登录。解锁的命令是 -U ,见下图,

36a0c4f3692bdeb7c9f57c2eeb1684d77f2.jpg

可以看到 ! 消失了。

 

给用户设定密码,见下图,

6204967f60dbc087332d7baafbabea5a3b7.jpg

可以发现,密码 123456 只输了一次,而且是明文显示的。这个用法在以后写 shell 脚本的时候可能会用到。通常情况下,命令是按下图这样写的,

728a6f3d7cfb017d730bea6faa7156d8625.jpg

上图中,将用户 user5 密码改为 111222 ,中间的管道符“|”后面会说到,管道符的含义是将前面命令的结果传递给后面的命令。使用上图的命令,就不用再次输入密码,只需一条命令就可以更改密码。

下面再分享一个 echo 的用法,见下图,

162dc69090cf846a6443d9262b7c5b4ebad.jpg

echo 命令中的“-e”可以在一行里面出现换行符,“\n”表示换行,“\t”表示插入 Tab 。

上面 echo -e 的用法,也可以用在更改密码上,见下图,

上图中,更改密码的命令中没有使用“--stdin”,虽然提示了“新的 密码:无效的密码: 密码少于 8 个字符”,但是新密码还是生效了。直接使用命令 passwd user3 ,密码就得输入两次,才能成功。

这边建议大家密码至少要设置十位以上字符,复杂一点,包括大小写字母和数字,不能有规律性,不要包含个人信息,比如生日,家庭,工作单位等信息,这样才比较安全。

转载于:https://my.oschina.net/u/3867265/blog/1828627

你可能感兴趣的文章
ES2017中的修饰器Decorator
查看>>
mysql 创建函数This function has none of DETERMINISTIC, NO SQL, or READS
查看>>
java中POJO类和DTO类都要实现序列化
查看>>
asp 支付宝 企业版 接口 支持网银接口 ,网银直接支付
查看>>
引用rtmp编译报错:rtmp.obj : error LNK2001: 无法解析的外部符号 __imp__timeGetTime@0
查看>>
Maven--要点笔记
查看>>
是什么让C#成为最值得学习的编程语言
查看>>
curl: (6) Couldn’t resolve host ‘www.ttlsa.com’【转】
查看>>
【C/C++】:用C实现输出日期的阴历日子
查看>>
jquery版本号升级不兼容的问题:$("input").attr("value")功能发生改变...
查看>>
基于ASP.NET WebAPI OWIN实现Self-Host项目实战
查看>>
linux下xargs和管道的区别
查看>>
FPGA开发流程1(详述每一环节的物理含义和实现目标)
查看>>
oc83--自定义类实现copy方法
查看>>
【Eclipse】Eclipse中修改项目的映射名称与端口
查看>>
Mongoose 利用实现HTTP服务
查看>>
Python pycharm 常用快捷键
查看>>
[LeetCode] Path Sum IV 二叉树的路径和之四
查看>>
oracle定时任务
查看>>
Cocos Creator 计时器的延时循环试用方法
查看>>