一、用户账号
ssh登录系统处理过程
1、查找账户在/etc/passwd 中是否存在,不存在跳出,存在则读出UID与GID(从/etc/group)
2、读取/etc/shadow找出对应的账户与UID,核对密码
3、校验通过,登录成功
/etc/passwd文件结构
root:x:0:0:root:/root:/bin/bash
用:分隔,共有7个字段,含义分别是:
1、账户,用于对应UID
2、密码,早期使用,为了安全统一使用x了,密码存储在/etc/shadow
3、UID,用户标识符
0:系统管理员
1~499:系统账户
500-65535:用户
4、GID,/etc/group关联
5、用户信息说明,
6、主文件夹,默认的用户主文件夹
7、shell,用户可取得的shell环境
/etc/shadow文件结构
root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::
1、账户名称
2、密码
3、最近更改密码的日期,从1970-1-1到更改密码时的天数
4、密码不可被改动的天数,与字段3对比。比如设置为5,用户于2018-07-10修改了密码,那么在2018-07-15之前不能再修改密码
5、密码需要重新修改的天数,与字段3对比。即密码多久过期。比如设置为5,即表示5天后密码失效
6、密码需要修改期限前的警告天数,与字段5对比。当密码临近过期时,根据该字段的设置在过期前多久给用户提示
7、密码过期后的账户宽限时间(密码失效日),与字段5对比。密码失效后多久内仍可登录
8、账户失效日期,即过了该日期,此账户将无法使用
9、保留字段
/etc/group文件结构
root:x:0:root
1、用户组名称
2、用户组密码,密码已使用/etc/gshadow文件
3、GID,用户组id
4、用户组支持的账户名称
/etc/gshadow文件结构
root:::root
1、组名
2、密码
3、用户组管理员的账户
4、该用户组下的账户
有效与初始用户组
初始用户组:
当用户登录,即会拥有/etc/passwd下该账户对应的GID即用户组相关权限(第四个字段),该GID即是用户的初始用户组。
有效用户组:
当用户创建一个文件或目录时,有效用户组决定了新文件所属用户组
groups 查看用户组,输出的第一个为有效用户组
newgrp 切换有效用户组,命令:newgrp 用户组名
二、账号管理
用户新增与删除
命令:
useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-c 说明列] [-d 主文件夹绝对路径] [-s shell] 用户账户名
-s 后面接shell,未指定时默认使用/bin/bash
当使用命令:useradd 用户名 ,创建用户时,系统会根据默认值创建用户信息。默认值可通过:useradd -D 命令查看
用户创建后使用命令:passwd 账户名 为新建用户设置密码,若想修改当前用户密码使用命令:passwd即可
命令:passwd [--stdin] :可使用前一个管道的数据作为密码输入
命令:usermod username 修改用户信息
命令:userdel username 删除用户相关数据
userdel [-r] username
-r :删除用户主目录
用户功能
finger [-sm] username 查看用户信息
-s 列出用户的账户、全名、终端代号与登录时间等
-m 列出与username相同者
chsh [-ls]
-l 列出可用的shell
-s 设置修改自己的shell
id [username]
未输入username,表示查看当前用户id信息
新增与删除用户组
groupadd [-g GID] [-r] 用户组名
-g 接系统已有GID,表示直接赋予该GID
-r 新建系统用户组
groupmod [-g GID] [-n groupname] 用户组名
-g 修改gid为指定数据
-n 修改用户组名为指定数据
groupdel [groupname]
删除指定用户组,当某个用户组为用户的初始用户组时无法删除
四、用户身份切换
su
su - 可将身份切换为root,但需要密码
su [-lm] [-c 命令] [username]
- : 代表使用login-shell的配置文件读取方式登录系统,未指定用户表示切换为root
-l :login-shell方式,后面加目标用户名
-m :使用当前的环境配置
-c :执行一次命令,后接命令
exit 退出su
sudo
sudo切换不需要目标用户密码,只有在/etc/sudoers 中的用户才能执行sudo
sudo [-b] [-u 新用户账户]
-b : 将后续的命令让系统自动执行,而不与目前的shell产生影响
-u : 后接欲切换的用户账户,不加此参数表示切换root
visudo : 修改/etc/sudoers的命令
用户账户 登录者的来源主机 可切换的身份 可执行的命令
root ALL = (ALL) ALL
该用户组的用户
%admin ALL = (ALL) ALL
%代表后面接的是用户组,那么在该用户组下的用户就能使用sudo命令