Linux 用户组管理详解 (linux user的groups)

Linux 是一种开放源代码的操作系统,其应用广泛,尤其是在服务器领域得到广泛应用。在Linux中,用户组的概念就十分重要。用户组是一组拥有相同权限和角色的用户。它允许管理员将用户分组并授予一组通用的访问权限,从而轻松管理用户并保证系统的安全性。在本篇文章中,我们将深入了解 Linux 用户组的管理流程和相关操作。

1. 用户组的概念及作用

在 Linux 系统中,每个用户都可以加入至少一个用户组。与普通用户相比,用户组能够拥有更高的权限,并且 用户组也是操作系统管理的基本单位。用户组的主要作用有以下几个方面:

(1)方便进行身份识别和管理。

当管理员要对一组拥有相似角色和权限的用户进行管理时,用户组就是非常有效和便捷的。通过将多个用户分组,管理员能够更加简便快速地进行权限分配和角色控制。

(2)分配和管理资源权限。

用户组可以便利地分配和管理资源,资源可以是文件、目录、网络端口等等。管理员可以为单个用户或用户组授权,以便他们可以访问管理授权对象。例如,系统管理员可以创建一个只包含web服务器用户的用户组,让这个用户组有访问web服务器的权限,不对系统中的其他资源有任何影响。

(3)提高安全性

通过用户组,管理员可以灵活地控制系统的安全级别。为不同的用户组分配不同的权限,可以防止用户接触或修改他们没有访问权限的资源。这种功能在保护系统安全的同时保证资源的完整性和保密性非常重要。

2. 创建和管理用户组

在Linux系统中,管理员可以通过非常简单的命令行操作来创建和管理用户组。这里我们将针对不同的Linux发行版来介绍用户组的创建和管理方法:

CentOS和RHEL

于CentOS和RHEL操作系统中,您可以使用groupadd命令来创建新用户组。例如,以下命令将创建名为mygroup的新组:

“`

sudo groupadd mygroup

“`

创建成功后,您可以通过以下命令列出所有的用户组:

“`

cat /etc/group

“`

其中包括系统默认的组,也包括你新建的组

Ubuntu和Debian

于Ubuntu和Debian操作系统中,您可以使用groupadd命令来创建新用户组,例如:

“`

sudo groupadd mygroup

“`

创建成功后,您可以使用以下命令将用户添加到组:

“`

sudo adduser username mygroup

“`

或者

“`

sudo usermod -aG mygroup username

“`

其中,username是要添加到添加到组的用户名,-aG选项是将用户添加到组内。您可以通过以下命令列出所有的用户组:

“`

cat /etc/group

“`

3. 删除用户组

如果您要删除不需要的用户组,您可以使用以下命令:

“`

sudo groupdel mygroup

“`

其中,mygroup是要删除的用户组的名称。该命令将删除指定的组,但并不会删除该组中包含的所有用户。如果有任何用户属于该组,则该命令会提示您在继续之前先移除该组中的所有用户。

4. 用户组的权限管理

在Linux系统中,用户组不仅可以管理基于文件的资源,也可以用来管理链路和套接字等其他类型的资源。这里我们将介绍Linux用户组与文件和文件夹的权限管理。

默认情况下,Linux文件和目录的访问权限是由三种不同级别的权限控制的,即用户权限、用户组权限和其他用户的权限,管理员可以使用Linux的图形界面工具或命令行来管理文件和文件夹的访问权限。

例如,您可以使用chmod命令来修改文件权限。例如,以下命令将文件file1的所有者和组的执行权限设置为5,其他用户的执行权限设置为0:

“`

sudo chmod 550 file1

“`

为文件夹设置访问权限与设置文件访问权限类似,只需要在命令中加入-r选项。例如,要将文件夹 /var/www/ 设置为所有用户可读、所有用户组可写、其他用户可执行的权限,请输入以下命令:

“`

sudo chmod -R 754 /var/www/

“`

其中,数字7代表读、写、执行权限,数字5代表读、执行权限,数字4代表只读权限。

在Linux系统中,管理员可以使用chown和chgrp命令来更改文件所有者和所属的组。例如,要将file1 文件的所有者改为administrator,组改为mygroup,请输入以下命令:

“`

sudo chown administrator:mygroup file1

“`

根据需要,管理员还可以使用Linux的setfacl命令来管理特定组下的用户的ACL访问权限。

5.

在本文中,我们深入了解了Linux用户组的管理和权限控制。Linux用户组的管理可以方便地进行身份识别和角色管理。通过为不同的用户组分配不同的权限,可以保护系统的安全性并提高资源的完整性和保密性。 同时,Linux管理员可以通过简单的命令行操作来创建、删除和管理用户组,以及设置文件和用户组的访问权限,为系统提供更加完善的管理和安全保护。

相关问题拓展阅读:

LInux用户管理

Linux 维持多个人使用同一个用户登录系统, Windows 在修改组策略的情况下,也可以多个使用同一个用户登录

远程连接Linux的方式:SSH协议

远程连接Windows的方郑顷式:RDP协议

安卓手机(Linux系统):root 刷机,使用root用户登录系统

Usage:id

# id ,查看当前登录的用户信息

-u:查看用户的uid

-g:查看用户的gid

-G:查看用户的属组

# id

uid=0(root) gid=0(root) 组=0(root)

# id qiandao

uid=1001(qiandao) gid=1001(qiandao) 组=1001(qiandao)

# id -g cls

1001

# id -u cls

666

# id -G cls

1001

# id

uid=0(root) 用户id

gid=0(root) 用户组的id

组=0(root)

在系统中,不认识root,qiandao,zls

0:超级用户

uid=1001(qiandao)

gid=1001(qiandao)

groups=1001(qiandao)

# ll /etc/passwd

-rw-r–r– 1 root root 916 3⽉ 30 10:26 /etc/passwd

# cat /etc/passwd

用户名 密码占位符 uid gid 注释信息 用户家目录 用户登录shell

root: x: 0: 0: root: /root: /bin/bash

cls: x: 666: 1001: : /home/cls: /bin/bash

wutenglan:x:777:1001:武藤兰老师是个好老师: /home/wutenglan:/bin/bash

# ll /etc/shadow

root root⽉ 30 10:50 /etc/shadow

# cat /etc/shadow

qiandao :!! :18351 :0:99999:7:::

之一列:用户名

第二列:密码,!! 和 * 表示没有密码

第三列:上一次修改用户密码的时间(从1970年开始)/天

第四列:密码最少使用的天数(0 是 无限制)

第五列:密码过期天数 99999天

第六列:在密码过期的前7天,提示需要修改密码了,你的密码还有7天要过期了

第七列:密码过期后敏者N天桥丛薯,强制提示修改密码

第⼋列:账户的失效时间,从1970年开始计算

第九列:保留

root:$6$iM1LuZaUuwyZrIg.$2X2Upu4KHmQoD1hzKHCzJqxPri9PlVDm5MYw/XdQsYgRpJaL

Iy1xWw0aDXLPePZNAcNRmfrYJrJgb6dmbu/.::0:99999:7:::

useradd

adduser

Usage:useradd

默认情况下,在创建⽤户的时候,会创建一个和用户同名的组,并且把该用户加入该组

# useradd zls

-u:(uid)指定uid

-g:(gid)指定gid,也可以指定组名

-G:(Group)指定附加组,如果加入多个附加组则用 逗号隔开

-M:不创建家目录

-s:(shell)指定登录的shell

-c:(comment)添加注释

-d:(directory)指定用户的家目录

-r:帮我们创建一个uid范围是的系统用户,不创建家目录

userdel

Usage:userdel

默认情况下,在删除用户的同时会把同名的用户组也删除,但是如果组内有其他用户,则不会删除组,

只删除用户

-r:删除用户的同时,删除用户的家目录,和用户的其他 邮件目录… (删除净)

usermod

Usage:usermod

-u:修改uid

-g:修改gid

-G:修改附加组

-a:配合-G,在修改附加组的时候,起到追加效果(append)

-m:修改(迁移)家目录,必须配合 -d

-d:指定修改后的家目录

-s:修改登录的shell

-c:修改注释

-l:修改登录的用户名

-L:锁定用户(封号)

-U:解锁用户(解封)

id

whoami

1.什么是用户?

能够正常登录系统的,可以管理系统还有可以管理系统中的进程或者程序

02.Linux与windows系统的用户有什么区别?

linux支持多用户同时登录

windows    默认不支持多用户同时登录

03.使用什么命令可以查看用户是否存在?

# id oldboy

# who

# whoami

root

04.跟用户相关的配置文件都有哪些?分别存放的是什么?

用户存放的信息文件  /etc/passwd

用户存放的密码文件 /etc/shadow

用户组信息文件 /etc/group

05./etc/passwd文件以’:’ 为分割符, 分为7个字段,请说明一下每个字段的具体含义?

字段名称 注释说明

1.用户名称//用户的账号名称

2.密码占位符//存放账户的口令,暂用x表示,密码保存在/etc/shadow

3.用户的UID//用户标识号

4.用户基本组GID      //组标识号

5.用户注释//用户详细信息

6.用户家目录//root家目录是/root普通用户家目录存在/home/username(可自定义)

7.用户登录Shell    //用户登录Linux使用的shell  #cat /etc/shells

06./etc/shadow文件以’:’ 为分割符, 分为9个字段,请说明一下每个字段的具体含义?

字段名称注释说明

1.用户登陆名//用户的账号名称

2.加密后的密码//用户密码,这是加密过的口令(未设密码时为!!)

3.最近一次密码更改时间    //从1970年到最近一次更改密码时间之间过了多少天

4.密码最少使用几天//密码最少使用几天才可以更改密码(0表示无限制)

5.密码最长使用几天      //密码使用多少天需要修改密码(默认99999永不过期)

6.密码到期前警告期限    //密码过期前多少天提醒用户更改密码(默认过期提前7天警告)

7.密码到期后保持活动的天数 //在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定

8.账户到期时间//从1970年起,账户在这个日期前可使用,到期后失效。

9.标志//保留

07.什么是用户的UID?

用户的标识符  它和用户一一对应关系

User Identification  的缩写

08.不同的用户对应UID号范围是多少?

超级用户

系统用户

系统用户  (不需要登录)

1000+普通用户

09.新建用户user1、user2,用户user2不允许登陆到系统中。

# useradd user1

# useradd user2 -s /in/nologin

10.创建普通用户oldboy,其ID号为789

# useradd -u  789 oldboy

# id oldboy

uid=789(oldboy) gid=1003(oldboy) groups=1003(oldboy)

11.创建虚拟用户test,其ID号为666

# useradd -u 666 -s /in/nologin test

12.修改oldboy用户的ID号,修改为777

# usermod -u 777 oldboy

# id oldboy

uid=777(oldboy) gid=1003(oldboy) groups=1003(oldboy)

13.修改用户test的命令解释器,使其可以登录到系统。

# usermod  -s /bin/sh test

# su – test

Last login: Tue Mar 31 15:09:39 CST 2023 on pts/3

# whoami

test

14.删除用户user1.不删除其家目录。

# userdel user1

# ll /home/

total 0

drwxoldboy oldboy 78 Mar 31 15:06 oldboy

drwxtest  test  99 Mar 31 15:16 test

drwxMar 31 15:04 user1

drwxuser2  user2  78 Mar 31 15:05 user2

drwxwww    wwwJanwww

15.删除用户user2,不保留其家目录。

# userdel -r user2

16.给oldboy用户创建一个密码为123,并尝试登录(两种方法实现)

# passwd oldboy

# echo “123” |passwd –stdin oldboy

17批量创建10个用户,前缀是你的姓,后缀为数字序列,比如qian1等。

大佬的方法

#  sed  后项引用

# | xargs 

#  awk 

# cat aa.sh

#!/bin/bash

read -p “请输入你的用户名 ” ming

read -p “请输入这个用户名创建的次数  ” shu

for i in `seq $shu`

do

useradd $ming$i

done

小弟的方法

for

# for i in `seq 10`;do useradd qian$i;done

18.默认情况下管理员创建了一个用户,就会在()目录下创建一个用户主目录

/home

19.如何检查系统中存在oldboy用户,并且显示用户id信息

# id oldboy

uid=777(oldboy) gid=1003(oldboy) groups=1003(oldboy)

20.创建gid为666,名字为www的用户组

# groupadd -g 666 www

21.创建uid为666,gid为666,名字为www的用户

# useradd -u 666 -g 666 www

# useradd -u 666 -g 666 www

useradd: group ‘666’ does not exist

22.创建uid为888,注释信息为”虚拟用户”,不创建家目录,不能登录系统,名字为oldboyedu的用户

# useradd -u 888 -c “虚拟用户” -M  -s /in/nologin oldboyedu

23.假设公司研发部的用户yanfa和dev属于组yf,财务部的用户caiwu和money属于组cw,根据要求创建用户及组。

# groupadd yf

# groupadd cw

# useradd yanfa -g yf

# useradd dev -g yf

# useradd caiwu -g cw

# useradd money -g cw

# id yanfa

uid=1021(yanfa) gid=1024(yf) groups=1024(yf)

# id caiwu

uid=1023(caiwu) gid=1025(cw) groups=1025(cw)

24.报如下错误是什么原因,并怎么解决

(1)

# id qzg

id: qzg: no such user

没有这个用户

(2)

# useradd aaa -s /in/nologin

useradd: group aaa exists – if you want to add this user to that group, use -g.

aaa用户组已经存在

(3)

# su – qzg1

This account is currently not available.

这个用户无法登录系统

25.oldboy8用户的用户名修改成oldboy888

# usermod -l oldboy888 oldboy8

26.创建zls用户,指定UID5001,基本组students 附加组sa,dba 注释信息:one newB user, 登陆的shell:/bin/bash

曾导博客上的题

27.linux系统存放所有用户密码信息的文件是?

/etc/shadow

28.存放用户账户信息的配置文件是?

# ll /etc/default/useradd

-rw-r–r–. 1 root root 119 Nov/etc/default/useradd

# ll /etc/login.defs

-rw-r–r–. 1 root root 2023 Nov/etc/login.defs

/etc/passwd

29.建自己姓名全拼用户,UID5000,基本组students,附加组sa,注释信息:2023 new student,登陆shell:/bin/bash

# groupadd students

# groupadd sa

# useradd -ug students -G sa -c “2023 new student” -s /bin/bash qianzhigang

# cat /etc/passwd|tail -1

qianzhigang:x:5000:1027:2023 new student:/home/qianzhigang:/bin/bash

# id qianzhigang

uid=5000(qianzhigang) gid=1027(students) groups=1027(students),1028(sa)

30.建用户useroldboy,附加组bin和root,默认shell为/bin/bash,注释信息”user1_info”

# useradd -G bin,root -c “user1_info” -s /bin/bash  useroldboy

# id useroldboy

uid=5001(useroldboy) gid=5001(useroldboy) groups=5001(useroldboy),0(root),1(bin)

31.新建一个用户jack,指定uid为330

# useradd -u 330 jack

(1)修改jack的uid为666,用户名改为jacky

# usermod -u 666 jack

# id jack

uid=666(jack) gid=5002(jack) groups=5002(jack)

# usermod  -l jacky jack

# id jacky

uid=666(jacky) gid=5002(jack) groups=5002(jack)

(2)把jacky的密码设置为123

passwd  jacky

# echo “123”| passwd –stdin jacky

(3)切换控制台,用jacky帐户登录系统

# su – jacky

#

(4)换回控制台,用命令将jacky锁定,验证jacky能否再次登录系统,解锁后再次尝试能否登录系统

# usermod -L jacky

# usermod -U jacky

32.迁移jacky用户的家目录到/tmp/jacky

# usermod -md /tmp/jacky  jacky

33.批量创建10个用户,用户名为oldboy1 oldboy2 oldboy3 …. oldboy10

# for i in `seq 10`;do useradd oldboy$i;done

# echo kkk{1..10}|xargs -n1|sed -r ‘s#(.*)#useradd \1#g’|bash

linux下用id命令显示为 uid=1001(user) gid=100(users) groups=100(users),16(dialout),33(video)

uid:是用户的埋陆猛UID号,用于标识弯桥悉银用户的

gid:是用户所属组的ID号,用于标识一个组的

groups:用户所属于的组

id命令显示的没旅是当前用户的uid、gid等的相关信息。uid是Linux中对用户的唯一标识,这条命枯返凳中的

uid=1001(user)标识你当前登陆的用户是user1,它的uid是1001; gid=100(users)表示它的首要组世答是users组,这个组的gid是100;groups=100(users),16(dialout),33(video) 表示它的附属组是dialout,video。

关于linux user的groups的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux 用户组管理详解 (linux user的groups)