用户和组 之 增删改

  要对计算机系统进行相关的操作,就需要有账号,如果很多账号需要对同一文件具有相同的操作权限,那么这个时候就涉及到组的概念了,我们可以将不同的账号加入同一组中,使得该组的所有账号拥有相同的操作权限。日常的linux运维中,就需要对账号和组进行管理,本文就用户和组的增删改操作进行探讨。

用户和组的关系

用户和用户组的对应关系有:一对一、一对多、多对一和多对多;下图展示了这种关系:

一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。

一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。

多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。

多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

id概念

linux中,一般情况下用户和组都会分配到一个专有的id,这个id也可以在创建时手动自动,系统对账号的管理是由id决定的,而非id对应的名称或者是组名。比如同一id,名称更改后,这个id的所拥有的权限还是一样的,但是同一名称,将id调整后,所拥有的权限可能是不一样的,比如讲普通用户的uid调整为0,那么用户将获得和root一样的权限。简单来说,进程所能够访问资源的权限取决于进程的运行者的身份,而id就是所谓的身份。

在CentOS 6x 以及老版本 和 CentOS 7x里有在系统id的分配上有了变更

Linux用户: Username/UID

管理员:root, 0

普通用户:1-65535

系统用户:1-499, 1-999(CentOS7)  对守护进程获取资源进行权限分配

登录用户: 500+, 1000+(CentOS7)

Linux组:Groupname/GID

管理员组:root, 0

普通组:

系统组:1-499, 1-999(CENTOS7)

普通组:500+, 1000+(CENTOS7)

在linux的组里,还分为主要组和附加组。一个用户必须属于一个,且仅有一个的主要组,但是一个用户可以同时加入多个附加组里。

默认情况下,主要组是和用户是同名的,而且主要组也是仅包含一个用户,这样的组也叫私有组

配置文件

Linux用户和组的主要配置文件有如下四个:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

格式:账号:密码:UID:GID:描述:家目录:shell

描述:是关于账号的描述,可以通过chfn这个命令来更改描述信息。

这里的UID和GID默认情况下是一致的,但是通过手动指定可以不一致

例子,系centOS6统里有账号UID和GID此时最大值为524,执行以下的语句

groupadd -g 526 hong

useradd terry4

useradd terry5

此时/etc/passwd的结果如下

terry4:x:525:525::/home/terry4:/bin/bash

terry5:x:526:527::/home/terry5:/bin/bash

可以看到,虽然我们没有指定新用户 terry5的GID,但是UID 不等于 GID ,是由于,terry4的GID是525,526已经被hong通过手动方法新建指定了,所以系统默认新生成的GID为527.如果要使得UID 和 GID新建的账号一致,可以通过手动指定。

/etc/group:组及其属性信息

格式:组名:密码:GID:用户列表

用户列表:把该组作为附加组的用户

密码:通过gpasswd设定,指用户输入该密码就可以通过newgrp临时切换到该组,即将该组作为临时的附加组,获取到附加组的相关组的权限,取消密组码后,只有成员才可以通过newgrp命令切换入该组。

/etc/shadow:用户密码及其相关属性

格式:用户名:加密密码:最后一次改密码的时间:密码最小使用时间:密码最长使用时间:密码警告期:密码宽限期:账号过期时间:保留区间

最后一次改密码的时间 和 账号过期时间 都是相对1970年1月1日的天数。

加密密码:格式为$加密方式$盐值$加密后的密码,盐值的作用是保证了加密的强度,这个值是随机数,相同密码在盐值不一样的情况下,加密后的密文是不一样的。

警告期:用户在密码过期前几天,提醒用户更改密码

密码宽限期:用户在密码过期后的几天,可以更改密码,如果还不更改密码,该账户将会被系统锁

/etc/gshadow:组密码及其相关属性

格式:组名:密码:管理者:成员

密码:格式和/etc/shadow里密码格式一样

管理者:指该用户可以将其他用户加入到该组里,通过gpasswd -a添加成员

成员:把该组作为附加组的用户,用逗号隔开不同的用户

新建用户的相关文件

/etc/default/useradd

/etc/skel/*

/etc/login.defs

etc/default/useradd文件的内容,提示useradd default file,创建用户时使用的默认文件

GROUP = 100表示用户组ID

HOME = /HOME表示家目录的位置

INACTIVE = -1表示是否启用帐号过期停权,-1表示不启用。

EXPIRE=表示账号是否启用过期设置无表示不启用

SHELL = /bin/bash表示账号使用shell种类

SKEL = /etc/skel表示账号使用默认文件内容, 可以理解为添加用户的目录默认文件存放位置。也就是说,当用户用useradd添加用户时,用户主目录下的文件都是从这个目录中复制的

CREATE_MAIL_SPOOL=yes表示是否创建邮箱缓存yes表示创建

/etc/skel–当系统内增加新用户时,该目录下的所有文件都将被自动复制到该用户的主目录默认时,这些文件中的大部分都是以(.)文件

/etc/login.defs文件定义了与/etc/passwd和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。

用户和组管理命令

用户管理命令

useradd:添加用户

userdel:删除账号

usermod:修改使用者账号

组帐号维护命令

groupadd:添加组

groupdel:删除群组

groupmod:修改群组

下面我们通过增,删,改的顺序依次介绍

增加 用户

useradd[options] LOGIN

-u 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: 创建系统用户CentOS 6: ID<500,CentOS 7: ID<1000

例子:

useradd -c "test terry6" -d /home/terry6 -G terry3 terry6

表示增加用户terry6,描述为 test terry6,指定用户的家目录为/home/terry6,并增加附加组为terry3

增加 组

groupadd[OPTION]... group_name

-g GID: 指明GID号;[GID_MIN, GID_MAX]

-r: 创建系统组:CentOS 6: ID<500,CentOS 7: ID<1000

例子

groupadd -g 528 terry7

表示增加组terry7,并指定GID 为528

删除 用户

userdel[OPTION]... login

-r: 删除使用者账号及相关文档,如用户的家目录及邮箱的目录,反正,如果没有-r,则只删除账号,相关文档没删掉

例子

userdel -r terry6

表示删掉terry6,并且把terry6家目录及邮箱的目录都删掉

删除 组

groupdel

groupdel GROUP

例子

groupdel terry3

表示删掉了terry3这个群主,但是terry3这个账号还是存在,如果有任何一个群组的使用者在线上的话就不能移除该群组。如terry3还是用户terry3的主组,最好先用命令usermod -g移除用户terry3使用者后再移除群组。注意,userdel删除用户的同时把用户的主组也删掉了。

修改 用户

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 -s /bin/bash -d /home/terry7 -e 2017-09-30 terry8

表示把terry8 的账号的shell设置为/bin/bash,家目录修改为/home/terry7,过期日期设置为2017-09-30

修改 组

groupmod[OPTION]... group

-n group_name: 新名字

-g GID: 新的GID

例子

groupmod -n terry3n -g 523 terry3

表示把terry3的组名改成terry3n,GID改为523

除了以上的两个命令对用户和组进行修改外,以下的命令也可以修改相关的属性

pwck:检查账号的信息,比如账号没有家目录,或者没有密码,就会报异常

grpck:检查组信息,比如同一组在/etc/group和/etc/gshadow的成员中不一致,就会报异常

修改密码

passwd[OPTIONS] UserName: 修改指定用户的密码,仅root用户权限,普通用户也可以通过passwd: 修改自己的密码

常用选项:

-l:锁定指定用户

-u:解锁指定用户

-e:强制用户下次登录修改密码

-n mindays: 指定最短使用期限

-x maxdays:最大使用期限

-w warndays:提前多少天开始警告

-iinactivedays:非活动期限

--stdin:从标准输入接收用户密码

echo "PASSWORD" | passwd--stdinUSERNAME

修改用户密码策略

chage[OPTION]... LOGIN

-d LAST_DAY

-E --expiredateEXPIRE_DATE

-I --inactive INACTIVE

-m --mindaysMIN_DAYS

-M --maxdaysMAX_DAYS

-W --warndaysWARN_DAYS

–l 显示密码策略

例子

chage-d 0 tom 下一次tom登录强制重设密码

gpasswd[OPTION] GROUP

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

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

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

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

groupmems[options] [action]

options:

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

Actions:

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

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

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

-l, --list 显示组成员列表

例子

groupmems -g tom -p

表示清除组tom的成员列表

groups [OPTION].[USERNAME]... 查看用户所属组列表

以上就是关于linux系统中用户和组 增 删 改 的相关概念和命令。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容