20170722 用户、组管理

内容纲要

  • 用户、组
  • 用户、组的配置文件
  • 用户和组管理命令

一、用户、组

用户

  • 系统在用户登录时为用户分配一个令牌便于权限管理,在linux系统中令牌即为UID
  • UID编码规则:
    • root用户的UID为0,普通用户的UID为1-60000,其中系统用户与登录用户的分配如下:
      • 系统用户:1-499(CentOS 6),1-999(CentOS 7)
      • 登录用户:500+(CentOS 6),1000+(CentOS 7)
  • 系统用户主要为系统运行的程序准备。

  • 系统为了方便管理,设立组的概念,组内用户的权限继承自组权限
  • 组同样设置GID,其编码规则同UID
  • 建立新用户时系统默认同时建立同名组,其UID和GID号相同

安全上下文

  • 进程所能够访问资源的权限取决于进程的运行者的身份

组的类别

  • 用户的主要组:一个用户有且只属于一个主组,默认其名称与用户名相同
  • 用户的辅助组:一个用户可以属于零个或多个辅助组

二、用户、组的配置文件

  • linux用户、组的配置文件主要如下四个

/etc/passwd 用户账号相关属性配置文件
/etc/shadow 用户密码相关属性配置文件
/etc/gpasswd 组账号相关属性配置文件
/etc/gshadow 组密码相关属性配置文件

  • passwd文件格式: name:passwd:UID:GID:GECOS:directory:shell

    • name: 用户登录名
    • passwd: 用户密码,现在密码已经移至/etc/shadow文件,被占位符x代替
    • UID: 用户ID号
    • GID: 用户所属的主组ID号
    • GECO: 用户信息注释
    • directory: 用户家目录路径
    • shell: 用户默认shell
  • shadow文件格式:login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field

    • login name:用户登录名
    • encrypted password: 加密的密码
      • 加密密码如图
  • $6代表加密方式为SHA512,加密方式很多,例如$1代表MD5加密
  • $AArU9fX$中两个$符号间是一段随机字符,称作盐(salt),用于确保即使是相同密码加密的结果也不同,进一步加强密码安全性
  • 后面的字符是加密密文正文,不同加密方式长度不同,但是只要加密方式相同,密码位数不同加密后的密文位数是相同的
  • 更改密码加密方式:authconfig --passalgo=sha256 --update
  • date of last password change: 上次修改密码时间,从1970-1-1起算的天数

  • minimum password age: 最短密码时间,普通用户更换密码的最短间隔天数,0表示随时可以变更

  • maximum password age: 最长密码时间,用户使用一个密码最长时间,99999表示永不过期

  • password warning period: 密码达到最长时间前提前报警提示的天数,默认7天

  • password inactivity period: 密码达到最长时间后允许修改密码的宽限期,超出后用户被锁定

  • account expiration date: 用户账户有效期,从1970-1-1起算的天数

  • group文件格式:group name:passwd:GID:user list

    • group name: 组名称
    • passwd: 组密码,用占位符x代替,加密密码移至/etc/gpasswd文件
    • GID: 组ID号
    • user list: 以当前组为辅助组的用户,多用户用,分隔
  • gshadow文件格式:group name:encrypted password:administrators:members

    • group name: 组名称
    • encrypted password: 加密的密码,与/etc/shadow文件中的密码加密方式相同
    • administrators: 组管理员,可以修改组密码,多名管理员用,分隔
    • members: 以当前组为辅助组的用户,内容必须与/etc/group文件中的user list相同
  • 注意:修改账号相关设置(e.g. /etc/passwd /etc/shadow /etc/group /etc/gpasswd)时,必须重新登录才能够生效

三、用户和组管理命令

(一)用户管理命令

(1)useradd 用户创建
  • 语法:useradd [options] LOGIN
  • 用法:
-u UID                     <!--指定UID,[UID_MIN, UID_MAX]定义在/etc/login.defs-->
-o                         <!--配合-u 选项,不检查UID的唯一性-->
-g GID                     <!--指明用户所属基本组,可为组名,也可以GID-->
-c "COMMENT"               <!--用户的注释信息-->
-d HOME_DIR                <!--以指定的路径(不存在)为家目录-->
-s SHELL                   <!--指明用户的默认shell程序,可用列表在/etc/shells文件中-->
-G GROUP1[,GROUP2,...]     <!--为用户指明附加组,组须事先存在-->
-N                         <!--不创建私用组做主组,使用users组做主组-->
-r                         <!--创建系统用户,默认不创建家目录,shell为/sbin/nologin-->
  • 实验:创建一个用户billy,指明UID=1010,属于附加组hellopeiyang和natasha,家目录为/app/billy,使用的shell为csh。
    • 命令:useradd -u 1010 -G hellopeiyang,natasha -d /app/billy -s /bin/csh billy

    • getent命令检查hellopeiyang,natasha,billy三个组的/etc/group文件,确认用户列表存放的是以此组作为辅助组的用户

  • 用户创建默认配置文件 /etc/default/useradd
  • 使用useradd -D命令修改用户创建默认配置文件
useradd -D -b /app   <!--当不指定家目录时,自动在/app下新建用户家目录-->
useradd -D -g group  <!--当使用useradd -N选项时,使用设置的组作为主组,默认为users组-->
useradd -D -s shell  <!--当不指定默认shell时,自动使用设置的shell-->
  • 用户家目录默认配置文件 /etc/skel
    使用useradd建立用户家目录时,将/etc/skel下的所有文件复制到家目录中,相当于执行命令cp -a /etc/skel/.[^.]* /home/user
  • newusers passwd格式文件 批量创建用户
  • cat 格式文件 | chpasswd 批量修改用户密码,格式文件格式user name:password
(2)usermod 用户属性修改
  • 语法:usermod [OPTION] login
  • 用法:
-u UID           <!--新UID,必须唯一不重复,除非使用-o 选项-->
-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      <!--设定非活动期限-->
  • 实验:将billy用户的主组改为harry,附加组增加sarah,家目录迁移到/home/billy下,账号于2018年8月31日过期,最后将billy账户锁定
  • 命令:
getent group harry
usermod -g 1004 -aG sarah -md /home/billy -e 2018-08-31 billy <!--注意a在G前,m在d前-->
usermod -L billy
(3)userdel 删除用户
userdel login      <!--删除login用户-->
userdel -r login   <!--删除login用户同时删除家目录-->
(4)id 查看用户相关ID信息

语法:id [OPTION]... [USER]
用法:

-u     <!--显示UID-->
-g     <!--显示GID-->
-G    <!--显示用户所属组的ID-->
-n     <!--显示名称,需配合ugG使用-->
(5)切换用户 su
su user    <!--切换至user用户,但是不切换至user目录、不读取user用户配置文件-->
su - user  <!--切换至user用户,同时切换至user目录并读取user用户配置文件-->
su/ su -   <!--不写用户名默认切换至root用户-->
exit       <!--退出切换的用户,注意不要在切换的用户下再切换用户,会导致系统异常-->
su - root -c 'command'   <!--只使用root身份执行一次command命令即切换回原用户-->
  • root用户切换至普通用户不需要密码,普通用户切换至root用户需要root密码
(6)设置密码 passwd
  • 语法:passwd [OPTIONS] UserName
  • 用法:
-l     <!--锁定指定用户-->
-u     <!--解锁指定用户-->
-e     <!--强制用户下次登录修改密码-->
-n mindays     <!--指定最短使用期限-->
-x maxdays     <!--最长使用期限-->
-w warndays     <!--提前多少天开始警告-->
-i inactivedays     <!--非活动期限-->
--stdin     <!--从标准输入接收用户密码-->
  • 实验:将harry的密码改为"hello",同时密码最短使用期限3天,最长使用期限42天,密码到期前7天提示修改,过期后5天将账户锁定
    • 命令:
echo "hello" | passwd -n 3 -x 42 -w 7 -i 5 --stdin harry
(7) 修改用户密码策略 chage

语法:chage [OPTION]... LOGIN
用法:

-d     <!--LAST_DAY,修改密码上次修改时间-->
-E --expiredate     <!--EXPIRE_DATE,设置账户失效时间-->
-I --inactive     <!--INACTIVE,设置密码修改宽限期-->
-m --mindays     <!--MIN_DAYS,设置密码修改最短间隔时间-->
-M --maxdays     <!--MAX_DAYS,设置密码使用最长期限-->
-W --warndays     <!--WARN_DAYS,设置密码过期前的提前警告时间-->
–l     <!--显示密码策略信息-->
(8)其他用户管理命令
  • chsh -s shell 修改shell
  • chfn 修改用户注释信息
  • finger 查看用户详细信息

(二)组管理命令

(1)创建组 groupadd
  • 语法:groupadd [OPTION]... group_name
  • 用法:
-g GID     <!--指明GID号;[GID_MIN, GID_MAX]定义在/etc/login.defs-->
-o         <!--配合-g属性,不检查GID的唯一性-->
-r         <!--创建系统组-->
(2)修改组属性 groupmod
  • 语法:groupmod [OPTION]... group
  • 用法:
-n group_name     <!--设置新名字-->
-g GID            <!--设置新的GID-->
-o                <!--配合-g属性,不检查GID的唯一性-->
(3)删除组 groupdel
  • 语法 groupdel group_name
(4)更改组密码 gpasswd
  • 语法:gpasswd [OPTION] GROUP
  • 用法:
-a user     <!--将user添加至指定组中-->
-d user     <!--从指定组中移除用户user-->
-A user1,user2,...     <!--设置有管理权限的用户列表-->
  • 实验:创建组david,将用户hellopeiyang,natasha,sarah加入到组中,将natasha从组中移除
    • 命令:
groupadd david
gpasswd -a hellopeiyang,natasha,sarah david
gpasswd -d natasha
  • 结果如下图

    • 第1步,建立组david;


    • 第2步,为组david添加用户hellopeiyang,natasha,sarah;


    • 第3步,将natasha从组david中删除。


  • newgrp命令:临时切换主组,如果用户本不属于此组,则需要组密码
    语法:newgrp group_name

(5)更改和查看组成员 groupmems
  • 语法:groupmems [options] [actions]
  • 用法:
options:
-g, --group group_name     <!--更改为指定组,只有root可以执行,普通用户只能修改所在组-->
actions:
-a, --add username     <!--指定用户加入组-->
-d, --delete username     <!--从组中删除用户-->
-p, --purge     <!--从组中清除所有成员-->
-l, --list     <!--显示组成员列表-->
  • groups 显示用户所属于的组 groups user_name
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容