Linux学习 - 用户和用户组管理

一、用户配置文件

  1 用户信息文件 /etc/passwd

      vim  /etc/passwd

      

      第一字段:用户名

      第二字段:密码标志(x表示有密码)

      第三字段:用户ID(UID) 

           0:        超级用户

           1-499:      系统用户(伪用户)

           500-65536:      普通用户

      第四字段:用户初始组ID(GID)

           初始组:指用户一登入就立刻拥有这个组的相关权限,每个用户初始组只有一个,一般以用户名作为这个 用户初始组的组名。

           附加组:用户可加入多个附加组,并拥有这些组的权限

      第五字段:用户说明

      第六字段:家目录

           超级用户家目录:/root/

           普通用户家目录:/home/用户名/

      第七字段:登入之后的shall

           shell是Linux的命令解释器

           /bin/bash    允许登入

           /sbin/nologin   不允许登入

  2 影子文件 /etc/shadow

      vim  /etc/shadow

  

      第一字段:用户名

      第二字段:加密密码

           SHA512散列加密算法

           如果密码位是 “ !! ” 或 “ * ”,代表没有密码,不能登入

      第三字段:密码最后一次修改日期

           使用1970.1.1作为标准时间,每过一天时间戳加1

时间戳换算
日期->时间戳 echo $(($(date --date="2014/01/06" + %s)/86400 + 1))
时间戳->日期 date -d "1970-01-01 16066 days"

      第四字段:两次密码修改间隔

      第五字段:密码有效期

      第六字段:密码有效期到期前的警告天数

      第七字段:密码有效期到期后的宽限天数

           0:代表密码过期后立即失效

           -1:代表密码永远不会失效

      第八字段:账号失效时间(时间戳表示)

      第九字段:保留

  3 组信息文件 /etc/group

      vim  /etc/group

      

      第一字段:组名

      第二字段:组密码标志

      第三字段:组ID(GID)

      第四字段:组中附加用户

  4 组密码文件 /etc/gshadow

      vim  /etc/gshadow

      

      第一字段:组名

      第二字段:组密码

      第三字段:组管理员用户名

      第四字段:组中附加用户

二、用户管理相关文件

  1 用户的家目录

      普通用户:/home/用户名/

      超级用户:/root/

  2 用户的邮箱文件

      /var/spool/mail/用户名

  3 用户模板目录

      /etc/skel/

      用于保存创建新用户时自动生成的文件,例如在该目录下新建文件notice.msg则在建立新用户时会自动建立notice.msg文件

  4 添加用户默认值文件

      /etc/default/useradd

GROUP=100 用户默认组
HOME=/home 用户家目录
INACTIVE=-1 密码过期宽限天数
EXPIRE= 密码失效时间
SHELL=/bin/bash 默认shell
SKEL=/etc/skel 模板目录
CREATE_MAIL_SPOOL=yes 是否建立邮箱

      /etc/login.defs

PASS_MAX_DAYS 99999 密码有效期
PASS_MIN_DAYS 0 密码修改间隔
PASS_MIN_LEN 5 密码最小5位
PASS_WARN_AGE 7 密码到期警告时间

UID_MIN 500

UID_MAX 6000

最小最大UID范围
ENCRYPT_METHOD SHA512 加密模式

三、用户管理命令

  1 添加用户

      useradd  [-udcgGs]  用户名

        -u  UID

        -d  家目录

        -c  用户说明

        -g  组名(初始组)

        -G  组名(附加组)

        -s  命令解释器shell(默认/bin/bash)

      例:useradd -u 666 -G root,bin -c "test user" -d /home/zhw -s /bin/bash zhw

  2 修改用户密码

      passwd  [选项]  [用户名]

      例:

        passwd -S user1          查询user1密码的密码状态(仅root用户)

        passwd -l user1           暂时锁定用户(仅root用户)

        passwd -u user1          解锁用户(仅root用户)

        echo “123” | passwd --stdin 用户名    使用字符串作为用户的密码

  3 修改用户信息

      usermod [-ucgGdLU] [用户名]

        -u  UID

        -d  家目录

        -c  用户说明

        -g  组名(初始组)

        -G  组名(附加组)

        -s  命令解释器shell(默认/bin/bash)

        -L  锁定用户

        -U  解锁用户

  4 修改用户密码状态

      chage [-ldmMWIE] 用户名

        -l   列出用户详细密码状态

        -d  修改密码最后一次更改日期(当-d 0 要求用户一登入就要修改密码

        -m  两次密码修改间隔

        -M  密码有效期

        -W  密码过期前警告天数

        -I    密码过期后宽限天数(i)

        -E   账号失效时间

  5 删除用户

      userdel [-r] 用户名

        -r  删除用户的同时删除用户家目录

      手动删除包括:vi /etc/passwd

             vi /etc/shadow

             vi /etc/group

             vi /etc/gshadow

             rm -rf /var/spool/mail/用户名

             rm -rf /home/用户名/

  6 查看用户id

      id 用户名  可查看用户的uid、gid和所属组

  7 查看当前是哪个用户

      whoami

  8 查看用户环境变量

      env

  9 用户切换

      su - 用户名          将用户的环境变量一起切换

      su - root -c "useradd user2"    使用root的权限添加一个用户user2

  10 查看登入用户信息

      who

       显示:登入用户名  登入终端  登入时间

          tty   表示本地终端

          pts  表示远程终端

  11 查看登入用户详细信息

      w

       显示:当前时间  连续运行时间(uptime)  用户数  负载均衡指数

      登入用户名—登入终端—登入IP地址—登入时间—空闲时间—累计占用CPU时间—当前CPU时间—工作命令

四、用户组管理命令

  1 添加用户组

      groupadd [-g] 组名

        -g  指定组ID

  2 修改用户组

      groupmod [-gn] 组名

        -g  修改组ID

        -n  修改组名

      例:groupmod -n g2 g1  将组g1的名字修改为g2

  3 删除组

      groupdel 组名

      注:不能删除用户的初始组,要先删除用户然后删除组,但是用户的附加组可删除

  4 将用户添加入组或从组中删除

      gpasswd -a 用户名 组名  将用户加入组

      gpasswd -d 用户名 组名  将用户从组中删除

posted @ 2018-03-02 11:19  hwzheng  阅读(130)  评论(0编辑  收藏  举报