Linux用户和用户组管理概述

简介

Linux通过把用户分为三个基本组user、group、other来分分配基本的权限:

用户通过/etc/passwd通过用户名来获取用户uid,通过etc/group来获取用户所属组和附加组gid,系统只通过ID号来识别用户。

1、用户账号UID和GID

  用户账号UID信息和主组信息存放在/etc/passwd中,密码加密存放在/etc/shadow文件中,其中0是root用户,1-499(CentOS6)1-999(centos7)是系统用户,系统用户通常无法登陆只是为启动服务创建的,500~65535(centos6)或者1000~65535(centos7)是普通用户。

  用户主组信息在/etc/passwd中,/etc/group中可以查看组ID和组中有哪些用户。

            /etc/passwd文件结构

Linux用户和用户组管理概述

           /etc/shadow文件结构

Linux用户和用户组管理概述 

2、用户新建和管理

 a.创建用户

[root@localhost tmp]# useradd -u1600 -g1600 -G mageedu -d /home/yemei -s /bin/bash yemei

 创建一个名为yemei的普通账户 uid1600 主组gid1600 附加组mageedu 家目录/home/yemei 指定登陆shell为bash

[root@localhost tmp]# useradd -r -u256 -s /sbin/nologin rtkit

 创建一个系统用户rtkit(-r指定系统用户),UID256,不登陆的账户必须指定shell为nologin

 b、为用户设置权限

[root@localhost tmp]# passwd  -n1 -x42 -w7 -i17808  yemei
[root@localhost tmp]# echo "yemei123456"|passwd --stdin yemei  #密码需要保证长度和复杂度
Changing password for user yemei.
passwd: all authentication tokens updated successfully.
[root@localhost tmp]# passwd  -e  yemei

  设置新用户yemei最多每天更改一次密码,密码最多使用42天,密码失效前7天提醒,账号有效期3个月(从1970年1月1开始的天数),为用户设置默认密码,强制第一次登陆时必须修改密码

c、用户权限修改

  1)usermod更改passwd设置的属性

 

        groupmems [options] [action]

        options:

        - g, -- group groupname 更改为指定组 (只有root)

        Actions:

        - a, -- add username 指定用户加入组

        - d, -- delete username 从组中删除用户

        - p, -- purge 从组中清除所有成员

        - l, -- list 显示组成员列表(不会列出以目标组为主组的成员)

  2)时间相关权限,除了上使用passwd命令外,还可以使用chage(change user password expiry)修改用户逾期时间属性

 

        chage: change user passwd expiry infomation

           -d 最近一次的修改时间

           -E:过期时间-- expiredate EXPIRE_DATE

           -I:非活动时间-- inactive INACTIVE

            -m:最短使用时间mindays MIN_DAYS

            -M:最长使用时间maxdays MAX_DAYS

             -W:警告时间warndays WARN_DAYS

                –l 显示密码策略

chage - d 0 tom 下一次登录强制重设密码   <==>  passwd -e tom

chage - m 0 –M 42 –W 14 –I 7 tom

chage - E 2016- 09- 10 tom

d、删除用户

[root@localhost tmp]# userdel -r yemo

删除用户和用户家目录(-r选项),通常不建议删除家目录,删除前先确认其中是否有重要文件。

f、锁定和解锁账户

  锁定账户

usermod -l username #-l:lock
 passwd -l username 
 chage -E (一个过去的时间)username

  手动更改/etc/shadow下密码字段前面加上!

  解锁账户

usermod -u username #-u:unlock
 passwd -u username 
 chage -E (一个未来的时间)username

 手动更改/etc/shadow下密码字段前面去掉!

3、用户组管理

 a、增加用户组

 使用useradd在不指定主组的时候,会自动创建和用户同名的组,作为用户的组,无法给用户添加不存在用户组。

 groupadd增加用户组:

        groupadd [OPTION]... group_name

                   -g: GID 

                   -r: 创建系统组 

 b、设置组信息

 设置主密码gpasswd

  gpasswd密码用于非组用户零时使用newgrp和密码获得组身份权限(建议禁止,有安全风险,附加组用户可以临时替换成主组),使用方法同passwd。

  groupmod 更改组名

 

        groupmod [OPTION]... group_name

                  -g: 变更GID -o可以使用重复GID 

                   -n: 更改组名 

 c、组成员管理管理  

  1)useradd创建用户时候添加用户到组 

  2)usermod使用参数同useradd修改主组和附加组

  3)passwd更改用户主组和附加组

  4) gpasswd增删组中用户

        gpasswd [OPTION] GROUP 修改组密码

        - a user: 将user添加至指定组中

        - d user: 从指定组中移除用户 user

        - A user1,user2,...: 设置有管理权限的用户列表

  5)groupmems更改组用户

 

        groupmems [options] [action]

        options:

        - g, -- group groupname 更改为指定组 (只有root)

        Actions:

        - a, -- add username 指定用户加入组

        - d, -- delete username 从组中删除用户

        - p, -- purge 从组中清除所有成员

        - l, -- list 显示组成员列表(不会列出以目标组为主组的成员)

相关推荐