暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Linux中使用pwck/pwconv/pwunconv/chpasswd快速检查账号信息

watson 2025-03-06
31

 系统中正常会建立很多账号,如何判断账号是否存在一定的问题呢?需要使用什么命令来检查会又快又好呢?本文就讲解几个命令可以提高效率。


【目录】


一 pwck检查用户的/etc/passwd文件内的配置信息

二 chpasswd读入未加密前的密码可以用来修改密码

三 pwconv/pwunconv命令详解


一 pwck检查用户的/etc/passwd文件内的配置信息

    pwck检查/etc/passwd文件内信息的同时,还可以对比/etc/passwd与/etc/shadow的信息是否一致。使用pwck命令会检查/etc/passwd中的数据字段是否有误,会提示用户进行修改。

[root@achao ~]# pwckuser 'ftp': directory '/var/ftp' does not existuser 'saslauth': directory '/run/saslauthd' does not existuser 'gluster': directory '/var/run/gluster' does not existuser 'pulse': directory '/var/run/pulse' does not existuser 'gnome-initial-setup': directory '/run/gnome-initial-setup/' does not existuser 'libai': directory '/home/libai' does not existuser 'dufu': directory '/home/dufu' does not existuser 'wangwei': directory '/home/wangwei' does not existuser 'baijuyi': directory '/home/baijuyi' does not existuser 'wangchanglin': directory '/home/wangchanglin' does not existpwck: no changes
复制

    帮助记忆的方式:pwck可以理解成为pass word check的缩写,是不是瞬间就可以记忆下来了,你看我的账户信息有很多有错误提示。一些是本来就没有,一些是已经丢失的。很快捷方便吧!

[root@achao ~]# ls /home/admin
复制

    /home目录下确实没有libai、dufu等用户的信息。

    相对应的用户组检查使用命令grpck

[root@achao ~]# grpck[root@achao ~]#
复制

    没有回显说明是正确的。


二 chpasswd读入未加密前的密码可以用来修改密码


[root@achao ~]# echo "admin:Huawei@@123" | chpasswd
复制

    重启操作系统使用admin用户登录检验:

    输入新修改的密码,登录进行测试,登录成功。修改密码的方式大家是否想起了--stdin的方式呢,这也是一种方式。

[root@centos ~]# echo "Huawei@123" | passwd --stdin adminChanging password for user admin.passwd: all authentication tokens updated successfully.
复制

      以上两种都可以修改用户的密码,在非red hat衍生的操作系统中chpasswd命令还是可以使用的。

  

三 pwconv/pwunconv命令详解

     

    pwconv  

    早期的UNIX系统中没有/etc/shadow,用户的登录密码在/etc/passwd的第二栏(此处知识是在书中查看到,并没有在现实的操作系统中遇到过),后期为了系统安全,将密码数据移动到/etc/shadow内,受用pwconv可以:

    3.1 对比/etc/passwd与/etc/shadow,若/etc/shadow内的账号没有对应的/etc/shadow密码时,则pwconv会去/etc/login.defs读取相关的数据。并建立账号的/etc/shadow数据。

    3.2 若/etc/passwd中存在密码栏,将密码栏移动到/etc/shadow中,并将/etc/passwd中的密码栏变为x(此处也是书本知识,现实中没有见过,如果有见过哪一款操作系统可以留言的)

    pwunconv

    从命令就可以看出和pwconv是相反的操作。将/etc/shadow内的密码栏写会/etc/passwd中,并且删除/etc/shadow文件。特别提醒,没有备份/etc/shadow文件的情况下,最好不要使用此命令,一旦有误,操作系统重启很明显就不能成功啦,这个时候就会很麻烦的啦!

    因为我给操作系统打了快照,因此不用担心,下边用于演示

[root@centos ~]# ls -l /etc/shadow----------. 1 root root 1220 Aug 13 01:06 /etc/shadow[root@centos ~]# pwunconv [root@centos ~]# ls -l /etc/shadowls: cannot access /etc/shadow: No such file or directory[root@centos ~]# head -3 /etc/passwdroot:$6$5fbujjwkfuZybc.q$.aJYmPE9G7u4ie3iJtPvijeRbATUdCn1RjnJxDhI9BFfl09KGJVqFR4Y9PuLh5qUHvCNgMM/uJqA6HoAgeXQS1:0:0:root:/root:/bin/bashbin:*:1:1:bin:/bin:/sbin/nologindaemon:*:2:2:daemon:/sbin:/sbin/nologin
复制

    发现,明显/etc/shadow文件不存在了。密码被写入到/etc/passwd文件当中。

    接下来我们进行还原。

[root@centos ~]# pwconv[root@centos ~]# head -3 /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin[root@centos ~]# ls -l /etc/shadow-r--------. 1 root root 1414 Aug 13 01:20 /etc/shadow[root@centos ~]#
复制

    /etc/shadow文件有重新生成了,细心的宝子们可以发现/etc/shadow文件的权限发生了变化。切记,一定要改回来哦。

[root@centos ~]# ls -l /etc/shadow----------. 1 root root 1414 Aug 13 01:20 /etc/shadow[root@centos ~]# reboot
复制

    重启系统登录验证


    验证成功。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论