linux用户与组概念

Linux的多用户多任务

​ Linux 系统是一个多用户多任务的操作系统,所谓多用户多任务,是指支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。

​ 例如:

​ 小明所在的运维团队一共有四个人,分别有大毛,二毛,三毛,大毛负责网站,他的账户叫wangzhan, 二毛负责数据库,他的账户叫shujuku。

​ 在同一时间,大毛和二毛都可以登录这台服务器,大毛可以查询网站的日志,二毛可以处理数据库的问题,他们之间互不影响。

​ 由于我们设置了权限,大毛只能访问网站的日志,无法访问数据库;二毛可以处理数据库问题,但是不能访问网站的日志。这就实现了我们的多用户多任务的运行机制。

什么是用户

​ 任何一个运维人员想要登录服务器,都必须先申请一个账号,然后以这个账号的身份进入系统,就像我们前面说的wangzhan这个账号。
​ 每个账号都拥有一个唯一的用户名和各自的密码,用户在登录时输入正确的用户名和密码后,就能够进入系统,默认会进入到这个用户自己的主目录

什么是用户组

​ 用户组是具有相同特征用户的逻辑集合,简单来说,就是具有相同权限的用户的集合
​ 例如:人事部有20名员工,他们都需要访问一个文件夹,如果我们给这20个用户的账号分别设置权限,这样太麻烦了,所以我们会建立一个用户组叫HR,对这个组设置权限,将这20个用户加入这个组就可以了。

为什么需要了解用户和组

服务器要添加多账户的作用

​ 针对不同用户分配不同的权限,不同权限可以限制用户可以访问到的系统资源
​ 提高系统的安全性
​ 帮助系统管理员对使用系统的用户进行跟踪

用户和用户组的关系

​ A 一个用户可以属于一个用户组,具有此用户组的权限

​ HR组可以访问/hrfile的文件夹,当user01属于HR组,那么user01就可以访问/hrfile这个文件夹

​ B 一个用户可以属于多个用户组,此时具有多个组的共同权限

​ HR可以访问/hrfile的文件夹,运维可以访问/yunweifile的文件夹,当user01同时属于HR组和运维组,那么user01可以访问 /hrfile和/yunweifile

​ C 多个用户可以属于一个用户组,多个用户都具有此用户组的权限。

主组:指用户创建时默认所属的组,每个用户的主组只能有一个。创建用户时会同时创建一个和用户名相同的组

​ 例如:添加用户xiaoming,在建立用户 xiaoming 的同时,就会建立 xiaoming 组作为 xiaoming 用户的初始组。

附加组:每个用户只能有一个主组,除主组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。
每个用户的附加组可以有多个,而且用户可以有这些附加组的权限。

通常用户和用户组的管理,包含以下工作:

☆ 用户组的管理

☆ 用户账号的添加、删除、修改以及用户密码的管理

注意三个文件:

☆ /etc/passwd 用户配置文件,存储用户的基本信息

☆ /etc/group 存储用户组的信息

☆ /etc/shadow 存储用户的密码信息

用户和组的关系

在这里插入图片描述

理论上Linux系统中的每个用户在创建时都应该有一个对应的用户组,这个组就称之为用户的主组。同时,有些情况下,某个用户需要临时使用某个组的权限,那这个组就称之为这个用户的附属组或附加组。

主组只能拥有一个,但是附属组或附加组可以同时拥有多个 => 亲爹,干爹(多个)

用户组操作

用户组的操作无疑三件事:用户组的添加、用户组的修改以及用户组的删除操作

组:group

添加:add

修改:mod

删除:del

用户组的添加

基本语法:

groupadd [选项]  用户组的组名称

选项说明:
-g :代表用户组的组ID编号,自定义组必须从1000开始,不能重复

注意:linux下我们执行完命令,有时候会没有任何提示,直接回到#提示符,这种状态表明,命令执行成功,没有报错。“没有消息就是最好的消息”

示例1:添加一个用户组

案例:在系统中添加一个hr的用户组

groupadd hr

存储用户组信息的文件:/etc/group

使用cat命令,查看/etc/group文件,我们可以看到如下图所示
在这里插入图片描述
/etc/group文件结构:

wheel : x : 10 : qayrup
用户组名 : 密码(占位符) : 用户组ID : 这个组包含的用户(附属组)

示例2:添加一个用户组并指定编号

案例:在系统中添加一个test的用户组并指定定编号1100

groupadd -g 1100 test

拓展:添加的用户组在那

默认情况下,添加的用户组都会放在一个系统文件中,文件位置=>/etc/group
如下,查看/etc/group后三条信息

tail -3 /etc/group

在这里插入图片描述

/etc/group文件解析

由以上命令的执行结果可知,在/etc/group文件中,其一共拥有三个冒号,共四列。每列含义:

**第一列:**用户组的组名称
**第二列:**用户组的组密码,使用一个x占位符
**第三列:**用户组的组ID编号,1-999代表系统用户组的组编号,1000以后的代表自定义组的组编号
CentOS6 => 1-499,500…
CentOS7 => 1-999,1000…
**第四列:**用户组内的用户信息(如果一个用户的附属组或附加组为这个组名,则显示在此位置)

用户组的修改

# groupmod [选项 选项的值] 原来组的组名称
选项选项说明
-ggid缩写,设置一个自定义的用户组ID数字,1000以后
-nname缩写,设置新的用户组的名称
示例1:修改用户组名称

案例:把hr用户组更名为qayruptest

groupmod -n qayruptest hr

在这里插入图片描述

示例2 修改用户组id

案例:把test用户组的组编号由1100更改为1003

groupmod -g 1003 test

在这里插入图片描述

示例3 修改用户组名称同时修改其id

案例:把test组的组名称更改为hello且用户组的组编号更改为1124

 groupmod -g 1124 -n hello test

在这里插入图片描述

用户组的删除

 groupdel 用户组名称
示例1

案例:使用groupdel删除hello用户组

groupdel hello

在这里插入图片描述

用户管理

用户:user

添加:add

修改:mod

删除:del

用户的添加

useradd [选项 选项的值] 用户名称
选项选项说明
-g代表添加用户时指定用户所属组的主组,唯一的组信息(重要)
-s代表指定用户可以使用的Shell类型,默认为/bin/bash(拥有大部分权限)还可以是/sbin/nologin,代表账号创建成功,但是不能用于登录操作系统。/bin/bash => 给人使用的(运维工程师)/sbin/nologin => 给软件使用的
-G代表添加用户时指定用户所属组的附属组或附加组,可以指定多个,用逗号隔开即可(了解)
-u代表添加用户时指定的用户ID编号,CentOS6从500开始,CentOS7中从1000开始(了解)
-c代表用户的备注信息,cqw:123456:(陈权伟的账号)
-d代表用户的家目录,默认为/home/用户名称。可以使用-d进行更改
-n取消建立以用户名称为名的群组(了解)
示例1 添加一个账户

案例:在系统中创建一个linuxuser账号

useradd linuxuser

在这里插入图片描述
注意:不用任何参数,创建用户,系统会默认执行以下操作:

  1. 在 /etc/passwd 文件中创建一行关于zhangsan用户的数据
  2. 在 /etc/shadow 文件中新增了一行关于zhangsan 密码的数据
  3. 在 /etc/group 文件中创建一行与用户名相同的组,例如zhangsan
  4. 在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息,例如zhangsan
  5. 自动创建用户的家目录,默认在/home下,与用户名同名
示例2 添加一个账户并指定其主组

案例 添加一个名为test2的账户并指定其主组为test组

#首先查询/etc/group用户组配置文件,查询用户组test组的id
cat /etc/group | grep test

在这里插入图片描述

#然后新增用户并指定用户主组id
useradd -g 1003 test2

在这里插入图片描述

用户添加注意事项

  1. 用户添加时,若没有指定主用户组,则会默认生成一个与用户同名的用户组做为该用户的主组
  2. 新创建的用户不能用于登录等操作,因为此时用户没有密码,是默认封禁状态不能用于登录等风险操作

etc/passwd存储用户信息的文件解析

使用vim命令打开/etc/passwd文件,如下图所示:
在这里插入图片描述
其中各项意思为

root : x : 0 : 0 : root : /root : /bin/bash
用户名 : 密码占位符 : 用户ID : 用户组ID : 注释 : 家目录 : 解释器shell

用户名:登录linux时使用的用户名
密码:此密码位置一般情况都是"x",表示密码的占位,真实密码存储在/etc/shadow
用户ID:用户的识别符,每个用户都有唯一的UID【-u】
用户组ID:该用户所属的主组ID;【-g】

注释:解释该用户是做什么用的;【-c】
家目录:用户登录进入系统之后默认的位置;【-d】
解释器shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,转换成机器语言,传递给内核处理;如果解释器是==/bin/bash 表示用户可以登录到系统==,/sbin/nologin表示该用户不能登录到系统【-s】

用户信息查询

主要功能:查询某个指定的用户信息

id 用户名称
示例1:查询指定用户信息

案例:查询linuxuser用户的信息

id linuxuser

在这里插入图片描述

usermod (user modify)修改用户

命令:usermod(user modify)

语法:# usermod [选项 选项的值] … 用户名

作用:修改用户的各种属性

选项:-g:表示指定用户的用户主组,选项的值可以是用户组的ID,也可以是组名

​ -G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名

​ -u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】

​ -L:锁定用户,锁定后用户无法登陆系统lock

​ -U:解锁用户unlock

​ -c<备注>:修改用户帐号的备注文字

​ -d<登入目录>:修改用户登入时的目录

​ -s:修改用户登入后所使用的shell

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐