一、用户与用户组
1.用户及用户组的基本定义
由于系统资源的有限性,所以通过设立多用户方法,针对不同用户分配不同的权限,来做到对系统资源的合理应用和分配。用户的存在要求:1.身份 account2.授权 author 3.认证 auth,而这三者形成的3A机制组成系统中最底层的安全架构。简而言之,用户组就是具有相同权限的用户的集合,以此就可以对用户进行归类和统一管理
2.用户及用户组的存在方式
由于计算机生来对数字敏感,而作为用户的人类则对字符串敏感,所以对计算机用户设立相应的特有id和用户名称(记录到文件当中用户才能存在)。简言之,用户就是/etc/passwd文件中的一行字符用户组存在的方式就是/etc/group 文件中的一行字符。
二、用户切换
1.用户查看
- whoami :显示当前用户
- id :显示用户id信息
- -u :显示当前用户的用户id
- -g :显示用户主组id,又称初始id
- -G:显示用户所有的组的id
- -n :显示名称,需要和上述三者配合使用,包括:-gn,-Gn -a :示当前用户的所有信息
用户id范围:
- 0-65535,
- 0:Linux超级用户id
- 1-999:Liunx系统自用id
- 1000-65535:用户级id
以上ID设定规则都被记录在/etc/login.defs
2.用户切换
su命令:切换用户,参数“-”表示用户工作环境的切换
- su - wetsos(必须存在的普通用户),由root转换到westos(普通用户),不需要密码
- su-root,由westos(普通用户)转换到root,需要root的用户密码
- 注意:在用户切换时当使用完毕用户身份及时退出 不要在一个shell中反复执行su命令,防止shell运行环境崩溃
3.用户涉及到的系统配置文件
- /etc/passwd :用户身份信息文件 (包括用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认)
- /etc/group :组身份信息文件 (包括组名称:组密码:组id:组的附加成员)
- /etc/skel/.* :用户环境配置文件模板
- /etc/shadow :用户认证信息文件
- /home/username :用户家目录
- /var/spool/mail/username :用户邮箱文件
4. 用户和用户组管理
用户和用户组管理涉及用户的删除、添加、修改三个方面,为了便于观察,在建立用户之前可以对用户和用户组进行监控:主要输入命令:watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l home"
用户添加
- useradd kk(username),注:创立的用户之前不存在,
- useradd -u 7788(用户id)kk1 (username)
- useradd -g 72(用户主组id,之前存在)kk2 (username)
- useradd -G 70(用户附加组id,之前存在)kk3 (username)
- useradd -d /mnt(用户家目录)kk4(username)
- useradd -M kk5(username):建立用户时不建立家目录
- useradd -c world kk6(username):用户说明
- useradd -s shell kk7(username):指定用户的shell用户及其系统配置删除 userdel -r kk(username)
用户组添加
- groupadd zl(groupname)
- groupadd -g 7777(用户组id)zll(groupname)
用户组删除
- groupdel zlll(groupname)
用户修改
- usermod -l kk8(new username) kk6 (old username)
- usermod -u 6666 (用户新id ) kk8 (new username)
- usermod -g 21 (用户主组新id ) kk8(new username)
- usermod -G 70(用户附加组新id ) kk8 (new username)
- usermod -aG 7794(用户附加组新id ) kk8 (new username) :添加用户附加组身份
- usermod -c “World” kk8 (new username)
- usermod -d /home/kk8 kk8 (new username) :更改用户家目录指向
- usermod -md /root/Desktop kk8 (new username) :更改家目录指向和家目录名称用户组修改
- groupmod -g 7799(用户组新id) KK(groupadd)
2.用户认证信息管理
查看/etc/shadow,查看文件的passwd(由于/etc/passwd允许所有用户读取,所以系统将用户密码定向到/etc/shadow,而此文件仅root用户可以读取)
用户名称;用户密码的加密字符;用户密码最后一次被修改时间(一般从1970年1月1日开始;密码最短有效期;密码最长有效期;密码过期前警告期(最长有效期截止日期的之前阶段);账号非活跃期:账号到期时间;用户自定义(未使用)
主要输入命令:
- passwd -S kk8(username)
- passwd kk8(username):root用户修改密码,可直接修改
- passwd -d(delete)kk8 (username):密码删除,只有root用户可执行
- westos (普通用户)修改自身密码,见截图。注:新密码的格式必须为:8位以上的无序数 字和字母的组合
- passwd -l kk8(username):冻结用户账号认证
- passwd -u kk8(username):解锁用户账号认证,可以用“-fu”强行解锁
- passwd -e kk5(username)=chage -d kk5(username):修改默认使用时间为0天,所以该账号需要改密码才能登陆
- passwd -n 3 kk5(username)=chage -m 3 kk5(username):kk5用户3天内不得改密码
- passwd -x 100 kk5(username)= chage -M 100 lkk5 (username):kk5用户100内必须更新密码,否则会冻结失效
- passwd -w 7 kk5(username)=chage -w 7 kk5 (username):账号过期前7天警告
- passwd -i 8 kk5(username)=chage -i 8 kk5 (username):账号认证最大时间超过后还能用8天
- chage -E “2022-4-12” kk5(username):账号在2022-4-12会被冻结三、用户权力下放
- 由于普通用户在系统中的权限有限,所以在执行系统管理命令时需要root用户给予相应权限
- 普通用户授权方式为 “sudo”:可以使普通用户使用指定的用户身份呢运行命令
- 授权主要命令:visudo :作用是编辑/etc/sudoers并提供语法检测
- 授权命令需要root输入visudo命令进行授权,由代码的规范性,在100行左右进行授权编辑
- 格式:用户名 主机名 (hostmane命令)=(:root) useradd命令的绝对路径(which命令)
- 再次进入普通用户,输入:sudo useradd xxxx调用相关命令