一、用户存在的意义
1) 在有限的系统资源里,如何做到合理系统分配,这就需要有资源的配合,以下是常见单词:
1、身份 account
2、授权 author
3、认证 auth
2)用户组是一个逻辑容器,对用户进行归类和统一授权
二、用户切换
1、用户就是 /etc/passwd文件中的一行字符,用户组存在的方式就是/etc/group 文件中的一行。
2、用户的查看
whoami -----------------------------------查看当前用户
id --------------------------------查看当前用户
-u -------------------------------查看用户的用户id
-g--------------------------------查看当前用户主组id
-G-------------------------------查看当前用户的组id
-n ---------------------------------显示名称
id范围:
{
0: Linux超级用户id
1-999:Linux系统自用id
1000-65535:用户及ID
以上ID 设定规则都被记录在/etc/Login.defs
}
3、用户切换
su - username
注意:不能切换太多,不然过多会容易导致后台出错
如果root-------->commonuser 不需要后者密码
commonuser------>root 需要密码
commonuser----->commonuser 需要密码
4、用户涉及到系统配置文件
/etc/passwd --------------------------用户身份信息
显示用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell
/etc/group ----------------------------组身份信息文件
组名称:组密码:组id:组的附加成员
/etc/skel/.* ----------------------------用户环境配置文件模板
/etc/shadow ----------------------------用户环境配置文件模板
/home/username ----------------------------用户家目录
/var/spool/mail/username ------------------用户邮箱文件
5、用户和用户组建立及删除
这里显示passwd和group里的后三行,(" tail -n 3 /etc/passwd /etc/group ;echo "),后面能方便我们监控,根据后续命令,可在前加 watch -n 1 " " ,这样就可以时时更新。
我们提前建立指定组名称,这样才能把west的gid 附加上,这是前提,此处可以看到这里的主组id是6666,uid也是6666,我们在给用户建立uid时尽量使用1000-60000之间数字。
具体指令:
useradd
-u id username -----------------建立用户的uid
-g id username -----------------建立用户gid
-G id username -----------------建立用户附加组组id
-d dir username ----------------建立用户家目录
-M username -----------------建立用户时不加家目录
-c word username -----------------指定用户说明
-s shell username -----------------指定用户shell
userdel -r username ---------------------删除用户
但是要想建立用户gid必须提前建立group,即
groupadd -g groupname ------------------组建立
6、用户和用户组管理
usermod是修改用户信息的方法,我们更改了west的名称,更为pro,主组id为72和21,添加用户附加组身份,以下是较全的命令行:
usermod
-l ------------------------------更改用户名称
-u -----------------------------更改uid
-g ------------------------------更改主组id
-G ------------------------------更改用户附加组身份
-aG -----------------------------添加用户附加组身份
-c -----------------------------更改用户说明
-d -----------------------------更改家目录指向
-md -----------------------------更改家目录
-s ------------------------------更改默认shell
-L -----------------------------冻结账号
-u -----------------------------解锁
groupmod -g -------------------更改用户组id
7、用户认证信息
在文件内容说明时 所包含的内容:用户名称-用户密码的加密符-用户最后一次被修改的时间-密码最短有效期-密码最长有效期-密码过期前警告-账号非活跃期-账号到期时间-用户自定义
在上途中我们利用超级用户更改用户westos,查看它的密码状态,并冻结解冻各一次,更改的具体命令行:
冻结认证: passwd -l westos 冻结westos
passwd -u westos 解冻westos
密码删除 passwd -d westos
密码使用天数:
passwd-e westos ----------- 修改默认使用时间
chage -d 0 westos ----------------账号必须该密码才能登陆
密码最短有效期:
passwd -n 1 westos ---------------------westos在1天内不能改密码
chage -m 1 westos
密码最长有效期:
passwd -x 40 westos -------------------westos40天内用户必须该密码否则会冻结
chage -M 40 westos
密码过期警告
passwd -w 2 westos ---------------------------账号过期前警告时间
chage -W 2 westos
认证非活跃天数:
passwd -i 2 westos -------------------------账号认证最大时间超过后还能用多久
chage -I 2 westos
账号认证到期时间:
chage -E “2020-05-11”-----------------------到2020-5-11这天账号会被冻结
8、用户权力下放
普通用户授权方式是"sudo",而超级用户可用visudo进行编辑/etc/sudoers并提供语法检测,我们编辑westos,进入文件在100行进行编辑,加入username hostname=(newusername) [NOPASSWD:] /command, /command1 这个 命令行,意思就是赋予username指令1,指令2,这里hostname我们直接在shell里输入查看并复制,再把此语句的hostname更换,就会赋予权限,推出后进行测试
测试:
su - westos
sudo conmand1 westostest 这里会出现输入密码,也可在授权时设置不需要密码登录
sudo conmand2 westostest
exit