linuxOPS基础_用户与组管理
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 [选项 选项的值] 原来组的组名称
选项 | 选项说明 |
---|---|
-g | gid缩写,设置一个自定义的用户组ID数字,1000以后 |
-n | name缩写,设置新的用户组的名称 |
示例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
注意:不用任何参数,创建用户,系统会默认执行以下操作:
- 在 /etc/passwd 文件中创建一行关于zhangsan用户的数据
- 在 /etc/shadow 文件中新增了一行关于zhangsan 密码的数据
- 在 /etc/group 文件中创建一行与用户名相同的组,例如zhangsan
- 在 /etc/gshadow 文件中新增一行与新增群组相关的密码信息,例如zhangsan
- 自动创建用户的家目录,默认在/home下,与用户名同名
示例2 添加一个账户并指定其主组
案例 添加一个名为test2的账户并指定其主组为test组
#首先查询/etc/group用户组配置文件,查询用户组test组的id
cat /etc/group | grep test
#然后新增用户并指定用户主组id
useradd -g 1003 test2
用户添加注意事项
- 用户添加时,若没有指定主用户组,则会默认生成一个与用户同名的用户组做为该用户的主组
- 新创建的用户不能用于登录等操作,因为此时用户没有密码,是默认封禁状态不能用于登录等风险操作
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
更多推荐
所有评论(0)