用户管理和组管理
一、用户和组的配置文件
用户账号
超级用户:root用户是linux系统中默认的超级用户,对系统拥有最高权限,当进行系统管理、维护任务时,才建议使用root用户。日常事务处理建议使用普通用户。
普通用户:普通用户账号需要由root用户或者其他管理员用户创建,拥有一定的权限,一般只在在用户自己的家目录中拥有完整权限。
程序用户:经常所说的服务用户
用户的创建:
当创建一个新用户时,系统会自动创建一个和当前用户名相同的组,以及一个邮件账号。
当创建一个新用户时,会有六个文件被改变:用户文件(/etc/passwd)、密码文件(/etc/shadow)、组文件、组的密码文件、家目录(/home/)、邮件账号(/var/spool/mail/)。
组账号
**定义:**由于某种联系将多个用户集合在一起,就构成了一个用户组。
每一个用户至少属于一个组,这个组称为基本组,如果这个用户同时还包括在其他组里面,其他的组被称为该用户的附加组。当组具备某个权限,组内的用户都继承这份权限。
UID、GID
UID:是用户ID,范围在(1~999),其中root用户的UID为0
GID:是组ID,范围在(1000~60000),其中root组的GID为0查看id:格式 :id 【用户名】
用户和组的配置文件
/etc/passwd
文件:
- 用于保存用户名称、宿主目录、登录shell环境等基本信息
- 每段字段用冒号“:”进行分隔
- 总共7个字段 用户名:密码:UID:GID:用户全名(描述信息):主目录:shell环境
基于系统运行和管理的需要,所有的用户都能访问/etc/passwd文件的内容,但是只有root用户能进行修改。早期的时候账号和密码信息是保存在passwd文件中的,不法用户可以获取密码字符串进行暴力破解,存在不安全性,因此后来将密码转存到专门的shadow文件中,而passwd文件的密码用“x”表示。
/etc/shadow
文件
shadow文件又被称为“影子文件”,保存各个用户账号的密码信息,因此对shadow文件的访问进行严格限制。默认只有root用户能够读取文件的内容。
每段字段用冒号“:”进行分隔
总共9个字段
用户名:密码:密码更新时间:密码修改期限:密码有效期:密码有效期截止提醒:密码过期后宽限天数:账号有效期:保留
①账号
②密码(sha-512哈希加密):在第一个¥符中间的数字表示加密方式,第二个¥符中间的时随机生成的salt值。“*” “!!”时,表示此用户不能登录系统。为空,就是该用户登录系统无需密码
③最近更新密码日期:从1970.1.1起到最近修改密码时间间隔天数
④密码不可更变天数:自本次修改密码后,必须经过多少天后才能再次修改密码,默认值为0,表示不限制
⑤密码需要重新变更天数:密码最长有效天数,自本次修改密码后,经过多少天后必须再次修改密码,默认值为99999,表示不限制
⑥变更前警告天数:提前多少天警告用户密码将过期,默认值为7
⑦密码过期后宽限天数:密码过期后多少天将禁止用此用户
⑧账号失效日期(从1970年1月1日起):从1970.1.1起,用户多少天后作废,默认值为空,表示账号永久可用。
⑨保留:保留字段,暂时没有特定的用途修改
/etc/shadow
文件方法:
管理员用户手动修改shadow文件
使用chage命令
chage //格式:chage 【选项】 【用户】 -m //两次改变密码相距最小天数,密码不可更变天数:自本次修改密码后,必须经过多少天后才能再次修改密码,0为任意时间可以修改,不限制 -M //两次改变密码相距最大天数,密码需要重新变更天数:密码最长有效天数,自本次修改密码后,经过多少天后必须再次修改密码,默认值为99999,表示不限制 -W //变更前警告天数:提前多少天警告用户密码将过期,默认值为7 -E //账号过期(失效)时间:从1970.1.1起,用户多少天后作废,默认值为空,表示账号永久可用。 -d //最近一次密码修改时间 -I(大i) //密码过期后宽限天数:密码过期后多少天将禁止用此用户 -l //列出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
/etc/group
文件
组名:组密码:组ID(GID):组用户
/etc/gshasow
文件
组名
组密码:空或者 ! 表示没有密码
用户组管理员名称
组成员
二、管理用户和组(useradd、userdel、usermod)
useradd
添加用户
useradd //格式:useradd 【选项】【用户】
-u //指定用户的UID号,要求该UID号码未被其他用户使用。
-d //指定用户的宿主目录位置。
-g //指定用户的基本组名(或使用GID号)。
-G //指定用户的附加组名(或使用GID号)。
-s //指定用户的登录Shell。
-c //指定描述信息
passwd
设置密码
passwd 用户名(普通用户只用输入命令)
-d //清空指定用户的密码,仅使用用户名即可登录系统。
-l //锁定用户账号。
-S //查看用户账号的状态(是否被锁定)。
-u //解锁用户账号。
usermod
修改用户属性
usermod //格式:usermod 【选项】 【用户】
-u //修改用户的UID号,要求该UID号码未被其他用户使用。
-d //修改用户的宿主目录位置。
-g //修改用户的基本组名(或使用GID号)。
-G //修改用户的附加组名(或使用GID号)。
-s //修改用户的登录Shell。
-L //锁定用户账号
-U //解锁用户账号
userdel
删除用户
userdel //格式:userdel 【用户】
//删除4个配置文件--passwd shadow group gshadow
userdel -r 【用户】
//删除该用户所有的文件,总6个文件,多一个家目录文件、一个邮件的文件
group组的操作
groupadd 组名(创建组)
groupdel 组名(删除组)
gpasswd 组名(设置组密码)
-a 用户 组名 //添加,把用户添加到组里面
-d 用户 组名 //删除,把用户从组里面移除
groups 【用户】 查看用户所属组
三、权限委派
普通用户没有权限去执行的命令,使用sudo权限委派后,把root的身份委派给普通用户,
使其有权限去执行该命令
visudo:只允许当前用户修改sudoers文件
配置sudo提权
-
输入
visudo
指令进入/etc/sudoers
配置文件 -
进入配置文件,找到45-50行左右
输入
Cmnd_Alias HR =/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel
-
在配置文件中找到100-101行左右
输入
adminss ALL=(ALL) HR
其中adminss是普通用户,如果是组用户的话,需要在组名前添加%
号。
使用权限
普通用户使用useradd指令执行添加用户的功能需要在指令前加入sudo
声明提权操作
sudo useradd tom