首页 > 其他 > 详细

用户组和权限管理

时间:2020-03-30 10:13:01      阅读:72      评论:0      收藏:0      [点我收藏+]

用户和组

1.用户相关内容介绍

1.1 Linux安全模型

  • Accouting|Audition:审计
  • Authorization:授权,不同的用户设置不同权限
  • Accouting|Audition:审计
  • 当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息

1.2 用户

  • 令牌token,identity

  • Linux用户:Username/UID

  • 管理员:root, 0

  • 用户类型:

    系统用户:1-499(centos6), 1-999 (CentOS7以后)
    对守护进程获取资源进行权限分配
    登录用户:500+(centos6), 1000+(CentOS7)
    交互式登录
    

1.3组group

  • Linux组:Groupname/GID

  • 管理员组:root, 0

  • 组分类:

    系统组:1-499(centos6), 1-999(CENTOS7)
    普通组:500+(centos6), 1000+(CENTOS7)
    

1.4用户与组之间的关系

  • 用户的主要组(primary group):

    ? ①用户必须属于一个且只有一个主组

    ? ② 默认创建用户时会自动创建和用户名同名的组,做为用户的主要组,(组名同用户名)

    ? ③由于此组中只有一个用户,又称为私有组(组名同用户名,且只有一个用户叫做私有组)

  • 用户的附加组(supplementary group):

    ? ①一个用户可以属于零个或多个辅助组,附属组

范例:

[root@centos8 ~]# id root
uid=0(root) gid=0(root) groups=0(root)
uid是用户 uid=0代表管理员 gid是用户组 gid=0是管理员用户组 groups是用户的主要组 groups=0是root账户主要组。
[root@centos8 ~]#id postfix
uid=89(postfix) gid=89(postfix) groups=89(postfix),12(mail)
uid是用户 
uid=89(postfix)代表系统用户,89代表系统用户账号的iD
gid是用户组 
gid=89(postfix)是系统用户组,89代表系统用户账号组的iD
groups是用户的主要组 
groups=89(postfix)代表postfil账户主要组。
12(mail)代表用户附加组,这个账号还是mail组的用户

1.5安全上下文

  • Linux安全上下文Context:运行中的程序,即进程 (process),以进程发起者的身份运行,进程所能够
    访问资源的权限取决于进程的运行者的身份

  • 比如:分别以root 和wang 的身份运行/bin/cat /etc/shadow ,得到的结果是不同的,资源能否能
    被访问,是由运行者的身份决定,非程序本身

    范例:

    [普通用户名@centos8 root]$ cat /etc/shadow   “普通用户查看用户密码配置文件”
    cat: /etc/shadow: Permission denied
    [root@centos8 ~]# cat /etc/shadow             “管理员用户查看用户密码配置文件”
    root:$6$MUGABbCeU1bqeFhm$qOIpJneGwLbXHCXgFsXwLQisAJQ.1.YEUhY3lJp0F5/fFltYtG4jI12sjVJkqYcj7.fF/pIMJ2yWSVxgrCA1C.::0:99999:7:::
    bin:*:18027:0:99999:7:::
    daemon:*:18027:0:99999:7:::
    adm:*:18027:0:99999:7:::
    

2.用户相关配置文件说明:

2.1 /etc/passwd

  • 介绍:用户及其属性信息(名称、UID、主组ID等)

  • login name:登录用名(wang)
    passwd:密码 (x)
    UID:用户身份编号 (1000)
    GID:登录默认所在组编号 (1000)
    GECOS:用户全名或注释
    home directory:用户主目录 (/home/wang)
    shell:用户默认使用shell (/bin/bash)

  • chfn (chfn的两个常用命令chfn 用户名 创建,finger 用户名 查看)”

  • 范例:

    [root@centos8 ~]# cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash   
    
    第一列:login name:登录用名(root)
    第二列:passwd:密码 (x)
    第三列:UID:用户身份编号 (0)  注意:root不一定为管理员,但UID为0的一定是管理员
    第四列:GID:登录默认所在组编号 (0)
    第五列:GECOS:用户全名或注释
    第六列:home directory:用户主目录 (/root)
    第七列:shell:用户默认使用shell (/bin/bash)
    
    
    
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    
    注意:
    “第一列(以冒号为分隔符):用户名
    第二列:密码位
    第三列:UID号  CentOS6 1-499为系统用户,预留
                  CentOS7 1-999为系统用户,预留
    第四列:GID号  主组和辅助组
    第五列:用户全名或注释
    第六列:用户的家目录
    第七列:用户默认的shell类型”
    

2.2 /etc/shadow

  • 介绍:用户密码及其相关属性

  • 第一列:用户名
    第二列:密码位 \(加密方式\)salt$password
    !!代表账户被锁定
    第三列:更改密码时间(天数计算)—距离1970年1月1号时间
    第四列:密码最短口令有效期
    第五列:口令过期时间,更改口令往后的时间
    第六列:口令到期前提前多少天提醒
    第七列:口令过期后多少天账户过期
    第八列:帐号的有效期

  • 范例:

    [root@centos8 ~]# cat /etc/shadow | head -1
    root:$6$MUGABbCeU1bqeFhm$qOIpJneGwLbXHCXgFsXwLQisAJQ.1.YEUhY3lJp0F5/fFltYtG4jI12sjVJkqYcj7.fF/pIMJ2yWSVxgrCA1C.::0:99999:7:::
    
    注意:
    第一列: 登录用名(root)
    第二列: 用户密码($6$MUGABbCeU1bqeFhm$qOIpJneGwLbXHCXgFsXwLQisAJQ.1.YEUhY3lJp0F5/fFltYtG4jI12sjVJkqYcj7.fF/pIMJ2yWSVxgrCA1C.)
    第三列: 从1970年1月1日起到密码最近一次被更改的时间
    第四列: 密码再过几天可以被变更(0表示随时可被变更)(0)
    第五列: 密码最大的有效期(99999)
    第六列: 密码过期前几天系统提醒用户(默认为一周)(7)
    第七列: 密码过期后宽限期
    第八列: 从1970年1月1日算起,多少天后帐号失效,账号有效期
    第九列: 保留
    第十一列: chage fang 修改密码时长
    
  • /etc/default/useradd 增加用户、默认设置。
    /etc/login.defs 可以修改密码有效期等时长。
    
  • chage 用户名 修改密码时长
    
  • 更改密码加密算法:

authconfig --passalgo=sha256 --update   sha256加密算法
  • 生成随机密码:

    [root@centos8 ~]#tr -dc ‘[:alnum:]‘ < /dev/urandom | head -c 12
    sFg6C8g5FAfe[root@centos8 ~]#openssl rand -base64 9
    hvMkPmAyIrXMQInt
    

    生成随机密码:https://suijimimashengcheng.51240.com/

3. 组相关配置文件

3.1 /etc/group

  • 介绍:组及其属性信息

    [root@centos8 ~]cat /etc/group
    root:x:0:
    
    第一列: 群组名称:就是群组名称(root)
    第二列: 群组密码:通常不需要设定,密码是被记录在 /etc/gshadow  (X)
    第三列: GID:就是群组的 ID (0)
    第四列: 以当前组为附加组的用户列表(分隔符为逗号)
    
  • grpck 检测 /etc/group 文件格式
    

3.2/etc/gshadow

  • 介绍:组密码及其相关属性

    [root@centos8 ~]cat /etc/gshadow
    root:x:0:
    格式说明:
    root:组密码:组管理员:附加组成员
    第一列: 群组名称(root)
    第二列: (X)
    第三列: 组管理员列表:组管理员的列表,更改组密码和成员 (0)
    第四列: 以当前组为附加组的用户列表:(分隔符为逗号)
    

4.加密算法:

  • 介绍:

    • 加密:明文--> 密文
    • 解密:密文--> 明文
  • 哈希算法

    • 原文不同,密文必不同

    • 相同算法定长输出,获得密文不可逆推出原始数据

    • 雪崩效应:初始条件的微小改变,引起结果的巨大改变

    • 加密算法
      ①md5: message digest, 128bits
      ②sha1: secure hash algorithm, 160bits
      ③sha224: 224bits
      ④sha256: 256bits
      ⑤sha384: 384bits
      ⑥sha512: 512bits

    • 更改加密算法:

      authconfig --passalgo=sha256 --update
      
    • 密码设置
      ① 密码的复杂性策略
      ② 使用数字、大写字母、小写字母及特殊字符中至少3种
      ③足够长
      ④使用随机密码
      ⑤定期更换,不要使用最近曾经使用过的密码

5.用户管理命令:

5.1用户创建命令useradd:

  • 介绍:可以创建新的Linux用户

  • 格式:

    useradd [options] LOGIN
    
  • 常见选项:

    -u UID
    -o 配合-u 选项,不检查UID的唯一性
    -g GID 指明用户所属基本组,可为组名,也可以GID
    -c "COMMENT“ 用户的注释信息
    -d HOME_DIR 以指定的路径(不存在)为家目录
    -s SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在
    -N 不创建私用组做主组,使用users组做主组
    -r 创建系统用户 CentOS 6之前: ID<500,CentOS 7以后: ID<1000
    -m 创建家目录,用于系统用户
    -M 不创建家目录,用于非系统用户
    

    范例:

    useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache
    第一步: 创建系统用户
    第二步: 创建UID (48)
    第三步: 创建用户组 (apache)
    第四步: 指定SHEll程序 (/sbin/nologin)
    第五步: 以指定的路径(不存在)为家目录 (/var/www)
    第六步: 创建用户的注释信息 ("Apache" apache)
    
  • useradd 命令默认值设定由/etc/default/useradd定义

    范例:

    [root@centos8 ~]#cat /etc/default/useradd
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1 #对应/etc/shadow文件第7列,即用户密码过期的宽限期
    EXPIRE= #对应/etc/shadow文件第8列,即用户帐号的有效期
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    
  • 显示或更改默认设置

    useradd -D
    useradd –D -s SHELL
    useradd –D –b BASE_DIR
    useradd –D –g GROUP
    
  • 新建用户的相关文件

    /etc/default/useradd
    /etc/skel/*
    /etc/login.defs
    
  • 批量创建用户

    newusers passwd 格式文件
    
  • 批量修改用户口令

    echo username:passwd | chpasswd
    
  • 删除用户家目录并恢复

    范例:

    rm -rf /home/root
    mkdir -pv /home/root
    复制/etc/skel/下的文件到家目录
     ? 方法一 cp -r /etc/skel/. /home/root 复制整个目录下的所有文件
     ? 方法二 cp -r /etc/skel/.[^.]* /home/root 只复制目录下的隐藏文件
    chown -R root.root /home/root ; chmod 700 /home/root
    

5.2查看用户相关信息:id

  • 介绍:id 命令可以查看用户的UID,GID等信息

  • 格式:

    id [OPTION]... [USER]
    
  • 常见选项:

    -u: 显示UID
    -g: 显示GID
    -G: 显示用户所属的组的ID
    -n: 显示名称,需配合ugG使用
    

5.3修改用户密码passwd

  • 介绍:可以修改用户密码

  • 格式:

    passwd [OPTIONS] UserName
    
  • 常用选项:

    -d:删除指定用户密码
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -f:强制操作
    -n mindays:指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -i inactivedays:非活动期限
    --stdin:从标准输入接收用户密码,Ubuntu无此选项
    常用命令:
    echo “PASSWORD” | passwd --stdin USERNAME
    
  • 范例:

    echo "PASSWORD" | passwd --stdin USERNAME
    
  • 范例:设置用户下次必须更改密码

    [root@centos8 ~]#useradd wang
    [root@centos8 ~]#echo 123456 | passwd --stdin wang
    Changing password for user wang.
    passwd: all authentication tokens updated successfully.
    [root@centos8 ~]#getent shadow wang
    wang:$6$4f78ko7hJ4fcMvIH$lpbOkFfziDBLT.8XBCi8c/N7wysDAejN5H9Fgxkt99HRDLTEosO43CK
    Yi2XSSVHxAK568Olj3C5bwfNExlves/:18348:0:99999:7:::
    [root@centos8 ~]#passwd -e wang
    Expiring password for user wang.
    passwd: Success
    [root@centos8 ~]#getent shadow wang
    wang:$6$4f78ko7hJ4fcMvIH$lpbOkFfziDBLT.8XBCi8c/N7wysDAejN5H9Fgxkt99HRDLTEosO43CK
    Yi2XSSVHxAK568Olj3C5bwfNExlves/:0:0:99999:7:::
    [root@centos8 ~]#su - mage
    Last login: Fri Mar 27 09:55:27 CST 2020 on pts/0
    [mage@centos8 ~]$su - wang
    Password:
    You are required to change your password immediately (administrator enforced)
    Current password:
    New password:
    BAD PASSWORD: The password is shorter than 8 characters
    New password:
    Retype new password:
    Last login: Fri Mar 27 10:01:20 CST 2020 on pts/0
    Last failed login: Fri Mar 27 10:02:37 CST 2020 on pts/0
    There was 1 failed login attempt since the last successful login.
    [wang@centos8 ~]$exit
    logout
    [mage@centos8 ~]$exit
    logout
    [root@centos8 ~]#getent shadow wang
    wang:$6$TX0iLjF52ByHh1zH$g.WI4LNfauuwgnxpRhd7ePqFKHZ85YU3r6Lh2S0PWRXWGjGlDVtomLW
    qpdiWrT.vwqD/Wzok.kzQhUHc8UCs91:18348:0:99999:7:::
    
5.3.1修改用户密码策略
  • chage 可以修改用户密码策略

  • 格式:

    chage [OPTION]... LOGIN
    
  • 常见选项:

    -d LAST_DAY #更改密码的时间
    -m --mindays MIN_DAYS
    -M --maxdays MAX_DAYS
    -W --warndays WARN_DAYS
    -I --inactive INACTIVE #密码过期后的宽限期
    -E --expiredate EXPIRE_DATE #用户的有效期
    -l 显示密码策略
    
  • 范例:

    chage -d 0 tom 下一次登录强制重设密码
    chage -m 0 –M 42 –W 14 –I 7 tom
    chage -E 2018-09-10 tom
    
  • 范例:

    [root@centos8 ~]#chage -m 3 -M 42 -W 14 -I 7 -E 2020-10-10 wang
    [root@centos8 ~]#chage -l wang
    Last password change : Dec 18, 2019
    Password expires : Jan 29, 2020
    Password inactive : Feb 05, 2020
    Account expires : Oct 10, 2020
    Minimum number of days between password change : 3
    Maximum number of days between password change : 42
    Number of days of warning before password expires : 14
    [root@centos8 ~]#getent shadow wang
    wang:$6$82L7A37XJgzKTegH$lFzqrMHmFwW740U32bvWHUuakPDKOiULE/CxcyDzSe1qi1X2ALulDw1
    WYrhd2wE00.lWO0im5//7biyV.juk5.:18248:3:42:14:7:18545:
    
    #下一次登录强制重设密码
    [root@centos8 ~]#chage -d 0 wang
    [root@centos8 ~]#getent shadow wang
    wang:$6$82L7A37XJgzKTegH$lFzqrMHmFwW740U32bvWHUuakPDKOiULE/CxcyDzSe1qi1X2ALulDw1
    WYrhd2wE00.lWO0im5//7biyV.juk5.:0:3:42:14:7:18545:
    [root@centos8 ~]#chage -l wang
    Last password change : password must be changed
    Password expires : password must be changed
    Password inactive : password must be changed
    Account expires : Oct 10, 2020
    Minimum number of days between password change : 3
    Maximum number of days between password change : 42
    Number of days of warning before password expires : 14
    [root@centos8 ~]#getent shadow wang
    wang:$6$82L7A37XJgzKTegH$lFzqrMHmFwW740U32bvWHUuakPDKOiULE/CxcyDzSe1qi1X2ALulDw1
    WYrhd2wE00.lWO0im5//7biyV.juk5.:0:3:42:14:7:18545:
    

5.4用户属性修改usermod:

  • 介绍:命令可以修改用户属性

  • 格式:

    usermod [OPTION] login
    
  • 常见选项:

    -u UID: 新UID
    -g GID: 新主组
    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使
    用-a选项
    -s SHELL:新的默认SHELL
    -c ‘COMMENT‘:新的注释信息
    -d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
    -l login_name: 新的名字
    -L: lock指定用户,在/etc/shadow 密码栏的增加 !
    -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
    -e YYYY-MM-DD: 指明用户账号过期日期
    -f INACTIVE: 设定非活动期限,即宽限期
    
  • 范例:

    usermod -G 组名 用户名
    

5.5切换用户或以其他用户身份执行命令su:

  • 介绍:即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令

  • 格式:

    su [options...] [-] [user [args...]]
    
  • 常见选项:

    -f 或 –fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
    -m -p 或 –preserve-environment 执行 su 时不改变环境变数
    -c command 或 –command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
    -s shell 或 –shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
    –help 显示说明文件
    –version 显示版本资讯
    – -l 或 –login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
    USER 欲变更的使用者帐号
    ARG 传入新的 shell 参数
    
    -l --login su -l UserName 相当于 su - UserName
    -c, --command <command> pass a single command to the shell with -c
    
  • 切换用户的方式:

    • su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完
      全切换
    • su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
  • 说明:root su至其他用户无须密码;非root用户切换时需要密码

  • 注意:su 切换新用户后,使用 exit 退回至旧的用户,而不要再用 su 切换至旧用户,否则会生成很多的
    bash子进程,环境可能会混乱。

  • 换个身份执行命令:

    su [-] UserName -c ‘COMMAND‘
    

    范例:

    [root@centos8 ~]#su - wang -c ‘touch wang.txt‘
    [root@centos8 ~]#ll ~wang/
    total 0
    -rw-rw-r-- 1 wang wang 0 Mar 27 09:31 wang1.txt
    -rw-rw-r-- 1 wang wang 0 Mar 27 09:32 wang2.txt
    
  • 范例:可以在root权限下修改任何用户的信息

    [root@centos8 ~]#getent passwd mage   “查看mage用户信息”
    mage:x:1001:1001::/home/mage:/bin/bash
    [root@centos8 ~]#usermod -s /bin/false mage “更改mage用户的shell信息”
    [root@centos8 ~]#getent passwd mage
    mage:x:1001:1001::/home/mage:/bin/false
    [root@centos8 ~]#su - mage   “切换到马哥用户”
    Last login: Fri Mar 27 09:18:57 CST 2020 on pts/0
    [root@centos8 ~]#whoami
    root
    
  • 范例:修改用户的shell命令

    [root@centos8 ~]#su -s /bin/false wang
    [root@centos8 ~]#whoami
    root
    
  • 范例:换个身份执行命令

    [wang@centos8 ~]$su - root -c "getent shadow"
    

5.6删除用户userdel

  • 介绍:可删除Linux 用户

  • 格式:

    userdel [OPTION]... Login
    
  • 常见选项:

    -f, --force 强制
    -r, --remove 删除用户家目录和邮箱
    

5.7用户相关的其它命令

  • chfn 指定个人信息

  • chsh 指定shell,相当于usermod -s

  • finger 可看用户个人信息

  • 范例:

    [root@centos7 ~]#chfn wang
    Changing finger information for wang.
    Name [wang]: wangxiaochun
    Office []:it
    Office Phone []: 10000
    Home Phone []: 11111
    Finger information changed.
    [root@centos7 ~]#finger wang
    Login: wang Name: wangxiaochun
    Directory: /home/wang Shell: /bin/bash
    Office: it, x1-0000 Home Phone: x1-1111
    Never logged in.
    No mail.
    No Plan.
    [root@centos7 ~]#getent passwd wang
    wang:x:1000:1000:wangxiaochun,it,10000,11111:/home/wang:/bin/bash
    
    [root@centos7 ~]#chsh -s /bin/csh wang
    Changing shell for wang.
    Shell changed.
    [root@centos7 ~]#getent passwd wang
    wang:x:1000:1000:wangsicong,wanda,10000,11111:/home/wang:/bin/csh
    [root@centos7 ~]#usermod -s /bin/bash wang
    [root@centos7 ~]#getent passwd wang
    wang:x:1000:1000:wangsicong,wanda,10000,11111:/home/wang:/bin/bash
    
  • 范例: 修改用户使用不可登录的shell类型

    [root@centos8 ~]#getent passwd wang
    wang:x:1000:1000:wangxiaochun,IT,110,119,:/home/wang:/bin/bash
    [root@centos8 ~]#chsh -s /sbin/nologin wang
    Changing shell for wang.
    chsh: Warning: "/sbin/nologin" is not listed in /etc/shells.
    Shell changed.
    [root@centos8 ~]#su - wang
    This account is currently not available.
    [root@centos8 ~]#chsh -s /bin/false wang
    Changing shell for wang.
    chsh: Warning: "/bin/false" is not listed in /etc/shells.
    Shell changed.
    [root@centos8 ~]#su - wang
    [root@centos8 ~]#id
    uid=0(root) gid=0(root) groups=0(root)
    [root@centos8 ~]#chsh -s /bin/bash wang
    Changing shell for wang.
    Shell changed.
    [root@centos8 ~]#su - wang
    [wang@centos8 ~]$
    

6.组管理命令

6.1创建组groupadd:

  • 介绍:实现创建组

  • 格式:

    groupadd [OPTION]... group_name
    
  • 常见选项:

    -g GID 指明GID号;[GID_MIN, GID_MAX]
    -r 创建系统组,CentOS 6之前: ID<500,CentOS 7以后: ID<1000
    
  • 范例:

    groupadd -g 48 -r apache  "创建系统组 GID号48 创建组名apache"
    

6.2更改组密码gpasswd

  • 介绍:gpasswd命令,可以更改组密码,也可以修改附加组的成员关系

  • 格式:

    gpasswd [OPTION] GROUP
    
  • 常见选项:

    -a user 将user添加至指定组中
    -d user 从指定附加组中移除用户user
    -A user1,user2,... 设置有管理权限的用户列表
    
  • 范例:

    #增加组成员
    [root@centos8 ~]#groupadd admins   “创建组名”
    [root@centos8 ~]#id wang           “查看用户”
    uid=1000(wang) gid=1000(wang) groups=1000(wang)
    [root@centos8 ~]#gpasswd -a wang admins   “将wang添加至指定组admins中”
    Adding user wang to group admins
    [root@centos8 ~]#id wang   “查看用户”
    uid=1000(wang) gid=1000(wang) groups=1000(wang),1002(admins)
    [root@centos8 ~]#groups wang   “查看wang用户的组”
    wang : wang admins
    [root@centos8 ~]#getent group admins   “查看组属性”
    admins:x:1002:wang
    
    #删除组成员
    [root@centos8 ~]#gpasswd -d wang admins   “从admins组移除用户wang”
    Removing user wang from group admins
    [root@centos8 ~]#groups wang     “查看wang用户的组”
    wang : wang
    [root@centos8 ~]#id wang
    uid=1000(wang) gid=1000(wang) groups=1000(wang)
    [root@centos8 ~]#getent group admins      “查看组属性”
    admins:x:1002:
    

6.3组属性修改:

  • 介绍:组属性修改

  • 格式

    groupmod [OPTION]… group
    
  • 常见选项:

    -n group_name: 新名字
    -g GID: 新的GID
    

6.4组删除groupdel

  • 介绍:组删除

  • 格式:

     groupdel GROUP
    

6.5更改和查看组成员

  • 介绍:可以管理附加组的成员关系

  • 格式:

    groupmems [options] [action]
    
  • 常见选项:

    • options

      -g, --group groupname 更改为指定组 (只有root可以做)
      
    • Actions:

      -a, --add username #指定用户加入组
      -d, --delete username #从组中删除用户
      -p, --purge #从组中清除所有成员
      -l, --list #显示组成员列表
      
  • 范例:

    ? groupmems -g 组名 -d 用户名 从组里删除用户
    ? groupmems -g 组名 -l 查看组成员
    

6.6查看用户组关系groups:

  • 介绍:查看用户组关系

  • 格式:

    groups [OPTION].[USERNAME]...
    
  • 范例:

    [root@centos8 ~]#groupmems -l -g admins
    [root@centos8 ~]#groupmems -a mage -g admins
    [root@centos8 ~]#id mage
    uid=1001(mage) gid=1001(mage) groups=1001(mage),1002(admins)
    [root@centos8 ~]#groupmems -l -g admins
    mage
    [root@centos8 ~]#groupmems -a wang -g admins
    [root@centos8 ~]#groupmems -l -g admins
    mage wang
    [root@centos8 ~]#groupmems -d wang -g admins
    [root@centos8 ~]#groups wang
    wang : wang admins
    [root@centos8 ~]#groupmems -l -g admins
    mage
    [root@centos8 ~]#groupmems -p -g admins
    [root@centos8 ~]#groupmems -l -g admins
    

6.7临时切换主组newgrp:

  • 介绍:newgrp 命令可以临时切换主组, 如果用户本不属于此组,则需要组密码

  • 格式:

    newgrp [-] [group]
    
  • 范例:如果使用 - 选项,可以初始化用户环境

    [root@centos8 ~]#gpasswd root     “更改root用户密码”
    Changing the password for group root
    New Password:
    Re-enter new password:
    [root@centos8 ~]#getent gshadow root  “显示root用户的密码信息”
    root:$6$UKK78gqOvw/Ug$exBe4gHUYzSj/Gip0YkXII8RkPca7QGVto6Ws5SFd6lhxxklCsfKqiv1qy
    EQZOfGK2WbR7/I.A2.7j1SUGuB91::
    
    [wang@centos8 ~]$newgrp root        "普通用户临时切换到系统用户root"
    Password:
    [wang@centos8 ~]$id             "查看用户信息"
    uid=1000(wang) gid=0(root) groups=0(root),1000(wang)
    [wang@centos8 ~]$getent passwd wang   "显示wang用户的密码信息"
    wang:x:1000:1000:wangxiaochun,IT,110,119,:/home/wang:/bin/bash
    [wang@centos8 ~]$touch wang1.txt    "建立一个wang1文本文件"
    [wang@centos8 ~]$ll             "查看文件信息"
    total 0
    -rw-r--r-- 1 wang root 0 Dec 18 09:38 wang1.txt
    [wang@centos8 ~]$exit    
    exit
    [wang@centos8 ~]$id
    uid=1000(wang) gid=1000(wang) groups=1000(wang)
    [wang@centos8 ~]$touch wang2.txt
    [wang@centos8 ~]$ll
    total 0
    -rw-r--r-- 1 wang root 0 Dec 18 09:38 wang1.txt
    -rw-rw-r-- 1 wang wang 0 Dec 18 09:38 wang2.txt
    

7.练习:

  1. 创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为
    “Gentoo Distribution”

    [root@centos8 ~]useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
    
  2. 创建下面的用户、组和组成员关系
    ? 名字为webs 的组
    ? 用户nginx 使用webs 作为附属组
    ? 用户varnish,也使用webs 作为附属组
    ? 用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,
    mysql密码都是fang

    [root@centos8 ~]groupadd webs
    [root@centos8 ~]useradd -G webs nginx
    [root@centos8 ~]useradd -G webs varnish
    [root@centos8 ~]useradd -r mysql
    [root@centos8 ~]echo fang | passwd --stdin nginx
    [root@centos8 ~]echo fang | passwd --stdin varnish
    [root@centos8 ~]echo fang | passwd --stdin mysql
    

用户组和权限管理

原文:https://www.cnblogs.com/Coolcoc/p/12596142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!