• 六、 用户管理


    用户管理概述

    • 通过对用户的合理管理,让用户更好的管理系统,通常用户分为以下三类:

      • 超级用户:可调用系统内所有资源
      • 系统用户:不可登录,用特定权限运行特定程序(限定权限)
      • 普通用户:普通管理员,只能管理和本用户相关的信息
    • UID:用户唯一标识符

    UID 范围
    用户级别 CentOS6.* CentOS7.* 备注
    超级用户 root(0) root(0)
    系统用户 1-499 1-999 nfsnobody(65534)系统用户
    普通用户 500-65535 1000-65535
    • 组分类
      组本身没有类型,但根据该组所对应的用户进行类型的确认
      • 初始组(私有组)
      • 附加组(公共组)
      • 有效组(创建的文件时该文件的属组则是该用户当前的有效组)

    相关配置文件

    -rw-r--r-- 1 root root 1531 2018-07-17 13:42:53 /etc/passwd		用户信息配置文件
    
    第一列:用户名
    第二列:密码占位符(x)
    第三列:UID
    第四列:GID(用户初始组)
    第五列:用户描述信息(可不写)
    第六列:用户家目录(用户存放自己文件的位置)
    第七列:登录shell类型(shell	命令解析器 /bin/bash,/sbin/nologin)
    
    ---------- 1 root root 1123 2018-07-17 13:42:53 /etc/shadow 		密码配置文件
    
    第一列:用户名
    第二列:加密密码(SHA512散列模式加密。若为空,则仅限本地无密码登录,'*'或'!!'代表无密码)
    第三列:密码最近修改时间	1970.01.01(Unix元年)
    第四列:密码最短有效期		密码最少要使用的时间,期间不可修改密码
    第五列:密码最长有效期		99999
    第六列:密码到期前的警告天数
    第七列:密码到期后的宽限天数
    第八列:密码到期的时间(具体的某一时间点)	1970.01.01(Unix元年)
    第九列:保留
    
    -rw-r--r-- 1 root root 716 2018-07-17 13:42:53 /etc/group 		组信息配置文件
    
    第一列:组名
    第二列:密码占位符(x)
    第三列:GID
    第四列:组成员列表
    
    ---------- 1 root root 563 2019-07-17 13:42:53 /etc/gshadow 		组密码配置文件
    
    第一列:组名
    第二列:组密码
    第三列:组管理员
    第四列:组成员列表
    

    注:一般二、三列不设,保证最小权限,保证安全

    两个位置文件的权限/etc/shadow & /etc/gshadow

    在CentOS 6.* 系列中密码文件的权限 		000		----------	
    在CentOS 6.* 之前的操作系统中权限		400		-r--------
    

    创建用户

    • 私有组机制
      在创建用户前,先创建和用户名同名的组,将同名组作为该用户的初始组
    • 公共组机制
      先创建一个组(如GID=100),以后创建的所有用户都用GID:100组作为初始组
    # 新用户信息生成时参考配置文件
    -rw-r--r--. 1 root root 119 Nov  5  2016 /etc/default/useradd
    -rw-r--r--. 1 root root 2028 Nov  5  2016 /etc/login.defs
    # 新用户创建时模板文件目录
    drwxr-xr-x. 2 root root 4096 Sep  5 19:31 /etc/skel/
    

    相关命令

    1. 创建用户

    Usage: useradd [options] LOGIN
           useradd -D
           useradd -D [options]
    
    Options:
      -b, --base-dir BASE_DIR		新账户的主目录的基目录,(需事先创建,指定缺省值/home)
      -c, --comment COMMENT         	新账户的 GECOS 字段
      -d, --home-dir HOME_DIR       	新账户的主目录
      -D, --defaults			显示或更改默认的 useradd 配置
      -e, --expiredate EXPIRE_DATE  	新账户的过期日期
      -f, --inactive INACTIVE       	新账户的密码不活动期
      -g, --gid GROUP			新账户主组的名称或 ID
      -G, --groups GROUPS			新账户的附加组列表
      -h, --help                    	显示此帮助信息并推出
      -k, --skel SKEL_DIR			使用此目录作为骨架目录
      -K, --key KEY=VALUE           	不使用 /etc/login.defs 中的默认值
      -l, --no-log-init			不要将此用户添加到最近登录和登录失败数据库
      -m, --create-home			创建用户的主目录
      -M, --no-create-home			创建用户时不创建用户的主目录
      -N, --no-user-group			不创建同名的组
      -o, --non-unique			允许使用重复的 UID 创建用户
      -p, --password PASSWORD		加密后的新账户密码
      -r, --system                  	创建一个系统账户,一般和-s 结合使用
      -R, --root CHROOT_DIR         	chroot 到的目录
      -s, --shell SHELL			新账户的登录 shell
      -u, --uid UID				新账户的用户 ID
      -U, --user-group			创建与用户同名的组
      -Z, --selinux-user SEUSER		为 SELinux 用户映射使用指定 SEUSER
    

    注:

    有效组定义:用户创建文件或目录时使用哪个组作为文件的所属组,就是有效组。
    初始组、附加组:是用户和组之间的关系
    有效组:用户和文件之间的关系
    天数转日期:date -d "1970-01-01 19527 days"
    日期转天数:echo $(($(date --date="2020/01/01" +%s )/86400+1))

    更改密码

    Usage: passwd [OPTION...] <accountName>
      -k, --keep-tokens       保持身份验证令牌不过期
      -d, --delete            删除已命名帐号的密码(只有根用户才能进行此操作)
      -l, --lock              锁定指名帐户的密码(仅限 root 用户)
      -u, --unlock            解锁指名账户的密码(仅限 root 用户)
      -e, --expire            终止指名帐户的密码(仅限 root 用户)
      -f, --force             强制执行操作
      -x, --maximum=DAYS      密码的最长有效时限(只有根用户才能进行此操作)
      -n, --minimum=DAYS      密码的最短有效时限(只有根用户才能进行此操作)
      -w, --warning=DAYS      在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
      -i, --inactive=DAYS     当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
      -S, --status            报告已命名帐号的密码状态(只有根用户才能进行此操作)(是否被锁定)
      --stdin                 从标准输入读取令牌(只有根用户才能进行此操作)
    Example: 
      echo "123456" | passwd --stdin username
    

    编辑用户信息

    Usage: usermod [options] LOGIN
    
    Options:
      -c, --comment COMMENT            		GECOS 字段的新值
      -d, --home HOME_DIR           		用户的新主目录
      -e, --expiredate EXPIRE_DATE  		设定帐户过期的日期为 EXPIRE_DATE
      -f, --inactive INACTIVE      			过期 INACTIVE 天数后,设定密码为失效状态
      -g, --gid GROUP               		强制使用 GROUP 为新主组
      -G, --groups GROUPS           		新的附加组列表 GROUPS
      -a, --append GROUP            		将用户追加至上边 -G 中提到的附加组中,并不从其它组中删除此用户
      -l, --login LOGIN             		新的登录名称
      -L, --lock                    		锁定用户帐号
      -m, --move-home               		将家目录内容移至新位置 (仅于 -d 一起使用)
      -o, --non-unique              		允许使用重复的(非唯一的) UID
      -p, --password PASSWORD       		将加密过的密码 (PASSWORD) 设为新密码
      -R, --root CHROOT_DIR         		chroot 到的目录
      -s, --shell SHELL             		该用户帐号的新登录 shell
      -u, --uid UID                 		用户帐号的新 UID
      -U, --unlock                  		解锁用户帐号
      -Z, --selinux-user  SEUSER       		用户账户的新 SELinux 用户映射
    Example: 
      usermod -m -d /home/u4  user4(用户user4的原家目录是/home/user4)
    

    删除用户

    Usage: userdel [options] LOGIN
    
    Options:
      -f, --force                   强制一些失败的操作
      -h, --help                    显示此帮助信息并推出
      -r, --remove                  删除主目录和邮件池(连带家目录一起删除)
      -R, --root CHROOT_DIR         chroot 到的目录
      -Z, --selinux-user            为用户删除所有的 SELinux 用户映射
    
    

    组操作命令

    Usage: gpasswd [option] GROUP
    
    Options:
      -a, --add USER                	向指定组内添加一个成员
      -d, --delete USER             	把指定用户从组内删除
      -Q, --root CHROOT_DIR         	要 chroot 进的目录
      -r, --delete-password         	remove the GROUP's password
      -R, --restrict                	向其成员限制访问组 GROUP
      -M, --members USER,...        	设置组 GROUP 的成员列表
      -A, --administrators ADMIN,...	设置组的管理员列表
    除非使用 -A 或 -M 选项,不能结合使用这些选项。
    
    

    其他命令

    id	USER			显示用户的UID、初始组、附加组列表
    su	USER			切换用户身份
    su  -  USER			切换用户身份,连带环境变量一起切换
    newgrp	GROUP			修改用户的有效组,切换到普通用户之后,执行命令
    chage -d 0 USER			设置密码有效期为0天,登录即修改
    

    常用操作

    # 创建组,创建用户使用这个组
    groupadd -g 2000 server && useradd -u 2000 -g  2000 server
    
    # 把dev用户添加到root组
    [root@centos7 ~]# gpasswd -a dev root
    
    # 切换用户的有效组,即dev用户创建的文件属组为root
    [dev@centos7 ~]$ newgrp root
    [dev@centos7 ~]$ touch file1
    [dev@centos7 ~]$ ls -l 
    -rw-rw-r-- 1 dev root 0 2020-02-27 16:27:08 file1
    
    # 查看用户的 UID、初始组、附加组列表
    [dev@centos7 ~]$ id
    uid=1001(dev) gid=0(root) groups=0(root),1001(dev)
    


    作者:Outsrkem
    出处:https://www.cnblogs.com/outsrkem/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    PKU 1185-炮兵阵地(状压DP)
    pku1113-Wall 凸包(安德鲁算法版)
    PTA 6-15 用单向循环链表实现猴子选大王 (20 分)
    PTA 6-14 用单向链表完成多项式运算(35分)
    离散化
    Warshall算法求传递闭包及具体实现
    HDU-6185-Covering(推递推式+矩阵快速幂)
    链式前向星
    HDU Queuing(递推+矩阵快速幂)
    【node】------mongoose的基本使用------【巷子】
  • 原文地址:https://www.cnblogs.com/outsrkem/p/11169434.html
Copyright © 2020-2023  润新知