【Linux】 用户管理

Linux用户管理

■  查看用户整体情况

  cat /etc/passwd可以查看用户的一些基本信息。用finger <user>似乎更加方便

  查看某一个特定的用户的话就可以 grep <user> /etc/passwd /etc/shadow /etc/group把三个信息文件连起来写,一次性地提取出这个用户相关的信息

■  加入新用户

  在没有特殊要求的时候,只要useradd <user>就好了。useradd命令有一些默认的参数,可以通过useradd -D来查看。这些参数配置在/etc/default/useradd中

  用root可以忽略其他用户的旧密码,强行给用户设置一个新密码。passwd <user>。一般用户的话可以passwd来改变自己的密码。

  root用户可以passwd -S <user>显示/etc/shadow中的一些信息。如果想要修改这些信息(主要是密码的一些信息比如密码过期日期,密码失效日期,密码过期后容许改密码的日期等等)的话用chage比较方便。chage -l可以列出这些信息。

 

■  删除用户时的不调

  一般删除用户通过userdel命令就可以进行了。但是有些时候,比如uid刚好是0,也就是说这个用户是root的另一个马甲的场合,此时直接userdel可能会报错说process 1正在运行,所以无法直接删除。

  此时就会想到能否把uid变成一个普通用户的uid再删除。但是usermod -u此时也是报同样的错误的。此时可以暴力一点直接去修改/etc/passwd,将uid为0的这个用户的uid改成一个普通用户的uid(当然不能和现有的任意一个用户的uid重叠,否则就变成删掉了那个用户了)。

  然后userdel就可以成功。

  

■  关于/etc/passwd和/etc/shadow的文件结构

  众所周知,/etc/passwd中承载着关于用户的很多信息,关于它的文件结构:

  每一行代表着一个用户的信息,不同字段之间的信息用一个冒号隔开

  每一行的内容大致是:"用户名:密码(显示为x,真正的密码信息在/etc/shadow中只有root有权限看):UID:GID:用户信息说明:用户主文件夹:用户所用的shell类型"

  比如以root为例,root在passwd文件中的那一行就是 , "root:x:0:0:root:/root:/bin/bash"。

  至于shadow文件,是存放着所有用户密码信息的重要哦文件,权限是000,只有root用户有权限查看。shadow的文件结构如下:

  "用户名:密码密文:最近改动密码的日期(格式是天数时间戳):密码被修改后连续多少天不能修改(0则表示修改完后可立即再修改):密码会在多少天后过期(99999表示密码不会过期):密码过期前几天警告:密码过期后宽限天数:账号失效时间(和密码失效不一样,密码失效只要再改下密码即可,账号失效的话改密码也无济于事):保留字段"

  shadow文件中每一行的第三字段+第五字段是密码过期的日期,此时已经无法用老密码登录系统,在此基础上还有第七字段的天数作为宽限,宽限期内还可以自己去改密码。

  比如root用户在shadow中的信息是"root:$6$TB5wGNj(密文意思一下。。):17292:0:99999:7:::"

  

■  last

  last命令用于查看用户的登录历史情况(倒序),它自动读取/var/log/wtmp文件

  last -a将登录用户的主机名或IP(SSH连接时)显示在最后一个字段

  last -f <file> 可以指定文件,比如和wtmp同目录的btmp更加详细地记录了远程登录的信息

  之前好像在哪里也提到过,last命令看到的都是成功登录的信息,如果要算上登录失败以及尝试登录的这些信息的话应该要看/var/log/secure文件

 

■  非交互式修改密码

  密码修改基本上都是靠交互式完成的。但是也可以通过下面这个命令来进行非交互式的密码修改:

  echo 'new_password' | passwd --stdin "username",这样就把用户名为username的用户的密码改过来了。

 

posted @ 2017-05-07 14:17  K.Takanashi  阅读(209)  评论(0编辑  收藏  举报