Linux用户和用户组管理

用户和用户组管理

用户配置文件

用户信息文件

用户信息文件/etc/passwd
影子文件/etc/group
组信息文件/etc/group和组密码文件/etc/gshadow

  1. 在Linux中主要是通过用户配置文件来查看和修改用户信息

  2. /etc/passwd
    第1字段:用户名称
    第2字段:密码标志(有x表示有密码)
    第3字段:UID(用户ID)
       0: 超级用户
       1-499: 系统用户(伪用户)
       500-65535: 普通用户
    第4字段:GID(用户初始组ID)
    第5字段:用户说明
    第6字段:家目录
       普通用户:/home/用户名/
       超级用户:/root/
    第7字段:登录之后的Shell

  3. 初始组和附加组
    每个用户都有初始组,并且只有一个。用户可以加入其它多个附加组,并拥有这些组的权限

  4. Shell是什么?
    Shell就是Linux的命令解释器
    在/etc/passwd当中,除了标准Shell是/bin/bash外,还可以写如/sbin/nologin

影子文件

  1. 影子文件/etc/shadow
    第1字段:用户名
    第2字段:加密密码
       加密算法升级为SHA512散列加密算法
       如果密码是“!!”或“*”代表没有密码,不能登录
    第3字段:密码最后一次修改日期
       使用1970年1月1日作为标准时间,每过一天时间戳加1
    第4字段:两次密码的修改间隔时间(和第3字段相比)
    第5字段:密码有效期(和第3字段相比)
    第6字段:密码修改到期前的警告天数(和第5字段相比)
    第7字段:密码过期后的宽限天数(和第5字段相比)
       0: 代表密码过期后立即失效
       -1:代表密码永远不会失效
    第8字段:账号失效时间
       要用时间戳表示
    第9字段:保留
  2. 时间戳换算
    把时间戳换算为日期
    date -d “1970-01-01 16066 days”
    把日期换算为时间戳
    echo $(($(date --date=”2014/01/06”+%s)/86400+1))
  3. 组信息文件/etc/group和组密码文件/etc/gshadow

用户管理相关文件

  1. 用户的家目录(添加用户的同时自动生成)
    普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700
    超级用户:/root/,所有者和所属组都是root用户,权限是550
  2. 用户的邮箱
    /var/spool/mail/用户名/ (添加用户的同时自动生成)
  3. 用户模板目录
    /etc/skel/

用户管理命令useradd

  1. useradd命令格式
    # useradd 【选项】用户名
    选项:
    -u: 手工指定用户的UID号
    -d: 手工指定用户的家目录
    -c: 手工指定用户的说明
    -g: 手工指定用户的初始组
    -G: 指定用户的附加组
    -s: 手工指定用户的登录Shell,默认是/bin/bash
  2. 添加默认用户
  3. 指定选项添加用户
  4. 用户默认值文件(以下两个)
    /etc/default/useradd
       GROUP=100     用户默认组
       HOME=/home    用户家目录
       INACTIVE=-1    密码过期宽限天数(shadow文件7字段)
       EXPIRE=      密码失效时间(8字段)
       SHELL=/bin/bash   默认shell
       SKEL=/etc/skel    模板目录
       CREAT_MAIL_SPOOL=yes    是否建立邮箱
    /etc/login.defs
    PASS_MAX_DAYS 99999 密码有效期
    等等。

用户管理命令passwd(一般不用选项)

# passwd 【选项】 用户名
选项:
       -S 查询用户密码的密码状态。仅root用户可用
       -l 暂时锁定用户。仅root用户可用
       -u 解锁用户。仅root用户可用
       --stdin 可以通过管道符输出的数据作为用户的密码
使用字符串作为用户的密码(多用于shell编程,批量添加):# echo “123” | passwd –stdin user1

用户管理命令usermod和chage

  1. 修改用户信息usermod
    # usermod 【选项】 用户名
           -L 临时锁定用户(Lock)
           -U 解锁用户锁定(Unlock)
           -u -c -G等于useradd里的选项一样
  2. 修改用户密码状态chage
    # chage 【选项】 用户名
           -l 列出用户的详细密码状态
           -d 修改密码最后一次更新日期(shadow3字段)
           -m (4字段)
           -M (5字段)
           -W (6字段)
           -I (7字段)
           -E (8字段)
    # chage -d 0 user1 (用的较多的一个选项)
    该命令是把密码修改日期归0了(shadow3字段),这样用户一登录就要修改密码

用户管理命令userdel和su

  1. 删除用户userdel
    # userdel 【-r】 用户名
    -r 删除用户的同时删除用户家目录
    也可通过手工修改以下用户文件的方式删除用户(但一般都用命令)
    # vi /etc/passwd
    # vi /etc/shadow
    # vi /etc/group
    # vi /etc/gshadow
    # rm -rf /var/spool/mail/user1
    # rm -rf /home/user1
  2. 查看用户ID(用户id,组id等)
    # id 用户名
  3. 切换用户身份su
    # su 【选项】 用户名
           -: 选项只使用“-”代表连带用户的环境变量一起切换
           -c 仅执行一次命令,而不切换用户身份
    $ su – root -c “useradd user2”
    不切换成root,但是执行useradd命令添加user2用户

用户组管理命令

  1. 添加用户组
    # groupadd 【选项】 组名
    -g: GID 指定组ID
  2. 修改用户组
    # groupmod 【选项】 组名
    -g 修改组ID
    -n 修改组名
    # groupmod -n testgrp group1 (把组名group1修改为testgrp)
  3. 删除用户组(要删除组,要求这个组中没有初始用户,即这个组不是其他用户的初始组)
    # groupdel 组名
  4. 把用户添加入组或从组中删除
    # gpasswd 【选项】 组名
    -a用户名:把用户加入组
    -d 用户名:把用户从组中删除
    例: # gpasswd -a user1 root (将user1用户加入root组)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值