Linux用户、用户组管理相关文件和命令

越是对服务器的安全性要求高,就越需要建立合理的用户等级制度和服务器操作规范
在linux中通过用户配置文件来修改、查看用户信息

在Linu系统中,默认ID为0的用户就是超级管理员,而Linux系统仅仅关注UID,并不对用户名敏感

进程运行时,需要以用户身份去运行,所以在Linux有很多的系统用户,就是为了运行某些进程,并且不让这些用户登录

用户分为以下三种

  1. -root 用户 (ID为0的用户)
  2. -系统用户 (ID 为 1~499 的用户)
  3. 普通用户 (ID 在 500以上的用户)

由于linux用户管理权限相于敏感,所以以下操作需要root管理员

1、与用户基本信息文件

/etc/passwd    #用户的配置文件
/etc/shadow    #用户影子口令文件

使用man -5   passwd 我们看一下passwd配置文件的介绍

有一行【 account:password:UID:GID:GECOS:directory:shell 】 介绍了passwd文件的文本格式

我们用   cat /etc/passwd   看一下这个文件的格式并且详细介绍下

可以看到首先:冒号是作分割符存在的,那么一行信息可以看成7个字段。下面介绍下这7个字段

  1. 用户账号
  2. 密码标志
  3. 用户ID(UID)     0  超级管理员    1-499 系统用户(伪用户) 500-65535     普通用户
  4. 用户初始组ID(GID)
  5. 用户说明
  6. 家目录
  7. 登录后的shell命令位置

那么我们可以看到这里只有一个密码标志,那么我们的密码存在哪里呢?这里我们就要介绍下shadow了。可以看到系统对个人信息保存的是十分谨慎的

这里可以看到shadow文件的权限是000的,所以也就只有root我们的超级管理员可以使用

打开我们的shadow文件,我们来看看吧

也是使用:冒号作为分割符,但是我们看一下他是分为9部分,下面我们详细讲解下

  1. 用户名
  2. 加密密码(这个就是我们的密码了,但是是加密的,现在都是SHA512加密,以前是MD5,在下面我们在介绍)       【如果密码是!! 或者 *代表没有密码不能登录】
  3. 密码最后一次的修改日期  (使用1970-1-1作为标准时间,算出的一个天数差)
  4. 两次密码修改间隔时间
  5. 密码的有郊期
  6. 密码修改到期前的警告天数     (登录时会提醒需要更改密码)
  7. 密码过期后的宽限天数      (0 代表密码过期后立既生郊,-1代表密码永不会失郊)
  8. 账号失郊时间    (也需要用1970-1-1作为标准时间,算出一个天数差)
  9. 保留

可以使用网络上相应的工具进行转换时间戳

2、与用户组相关的基本信息文件

/etc/group            用户组配置文件
/etc/gshadow          用户组的影子文件

我们先看下第一个文件

root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:

我大概复制了几行,可以看到信息可以分为4段

  1. 组名          (默认跟自己的用户名一致)
  2. 组密码标志
  3. GID
  4. 组中的附加用户

与passwd一样,也有一个gshadow组密码文件,也是分为4列的

  1. 组名
  2. 组密码
  3. 组管理员用户名
  4. 组中附加名

一个用户最多只能有31个附属组

3、用户管理相关文件

用户的家目录: /home/用户名 , 所有者和所属组都是此用户,权限都是700
用户的邮箱:/var/spool/mail/用户名
用户的模板目录:/etc/skel/

root管理员的家目录: /root, 所有者和所属组都是root用户,权限都是 550

修改用户的默认配置文档

vi    /etc/deafult/useradd

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

 vi   /etc/default/login.defs

  • PASS_MAX_DAYS  999999    # 密码有郊期
  • PASS_MIN_DAYS   0     #密码修改间隔
  • PASS_MIN_LEN  5        #密码最小5位  (此设置不应低于8位,否则也无郊)
  • PASS_WARN_AGE   7       # 密码到期警告
  • UID_MIN        5000         #  最小和最大的UID 范围
  • GID_MAX       60000
  • ENCRYPT_METHOD        SHA512     #加密模式

这里就是我们刚刚说的加密方式

4、用户管理命令

useradd [选项]   用户名   (添加用户)

  • -u       UID :     用户指定的UID号
  • -d      家目录:    手动指定的用户家目录
  • -D       查看缺省参数
  • -c       用户说明 :     手动指定的用户说明文本
  • -g      组名:     手动指定的初始 组
  • -G      组名:      指定用户的附加组
  • -e       指定过期时间
  • -s        shell:     手动指定用户的登录shell,默认是 /bin/bash

newusers 导入用户信息文件

    passwd  [选项]   用户名   (添加密码)

    • -S        查询用户密码的密码状态,仅root用户可用。
    • -l           暂时锁定用户。仅root用户可用,其实也就是在shadow密码里面加上!!号
    • -u          解锁用户。仅root用户可用,解除!!号
    • –stdin        可以通过管道符输出的数据作为用户的密码

    -S  格式为  用户名  PS  2014-01-01  0  9999999 77  -1 这样的格式

    usermod    [选项]   用户名   (修改用户)

    • -u        用户指定的UID号
    • -c        手动指定的用户说明文本
    • -G       指定用户的附加组
    • -L        锁定用户   (其实和passwd差不多)
    • -U        解锁用户锁定

    chage   [选项]   用户名

    • -l    :      列出用户的详细密码状态
    • -d    日期 :    修改密码最后一次更改日期
    • -m   天数 :   两次密码修改间隔
    • -M    天数 : 密码有郊期
    • -W  天数: 密码过期前警告天数
    • -I    天数 : 密码过期后的宽限天数
    • -E    日期 : 账号失效时间

    userdel  [选项]   用户名

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

    groupadd  [选项]    组名             (添加用户组)

    • -g         指定组id

    groupdel  组名

    groups   查看用户隶属于哪些用户组

    newgrp      切换用户组

    pwck        检测/etc/passwd文件(锁定文件)

    vipw        编辑/etc/passwd文件(锁定文件)

    finger       查看用户详细信息

    groupmod 组名                 (修改组)

    gpasswd   设置组密码或管理组内成员

    • -a              添加用户到用户组
    • -d              从用户组中删除用户
    • -A             设置用户组管理员
    • -r              删除用户组密码
    • -R             禁止用户切换该组

    4、其他管理命令

    id   [用户名]  (查看用户ID相关信息)

    su   [选项]    用户名

    • –   :选项“-” 连接表示连带用户的环境变量一起切换,最好不用省略
    • -c :   仅执行一次命令,而不切换身份

      启用和停用shadow功能

      • pwconv/pwunconv
      • grpconv/grpunconv

      认证配置文件:/etc/sysconfig/authconfig

      发表评论

      发表回复

      *

      沙发空缺中,还不快抢~