
一.用户及用户组存在的意义1.用户存在的意义系统中的资源是有限的如何合理分配资源这需要3A机制来完成3A机制Linux中的3A机制包括身份认证Authentication、授权Authorization和审计Accounting这些机制共同构成了系统中最底层的安全架构身份认证Authentication验明正身你是谁身份认证是验证用户身份的过程确保只有合法用户才能访问系统。常见的认证方式包括用户名/密码、数字证书、生物识别等。授权Authorization规定权限你能干什么授权是在用户通过认证后根据其身份和角色分配相应的权限决定用户可以访问哪些资源或执行哪些操作。审计Audit全程记录你做过什么审计记录并监控用户访问和操作系统的活动以便在发生安全事件时进行追溯和分析。审计日志是安全审计的重要依据。2.用户组存在的意义用户组是一个逻辑容器并不能单独使用其存在意义在于对用户进行归类和统一授权在系统中有两种组的类型初始组用户建立后自动生成的组是用户的主组附加组用户需要某些权限所加到的组为了取得改组拥有的权力3.用户及用户组在系统中存在的方式在系统中用户和组都是用数字来表示我们对这个数字成为ID用户的ID范围0-655350 root用户的ID1-999 系统用户ID1000-65535 操作用户ID/etc/passwd,/etc/group文件系统中的用户都是以ID的形式存在但是作为操作者对于数字是不敏感的所以我们为用户设定了文字别名并把这个别名填写到了/etc/passwd文件中所以/etc/passwd就是用户信息文件/etc/group就是组信息文件如果用户ID在/etc/passwd文件中有记录那么系统就认为这个用户是存在的相反系统认为这个用户不存在4.创建用户实验#创建用户前#手动添加用户信息vim /etc/passwd#手动添加用户组vim /etc/group#设置登录密码加入生成的密文vim /etc/shadow#整体流程#创建用户后二.用户涉及到的系统配置文件1./etc/passwd用户存放用户信息用分割每一列每行有7列[rootnode2 桌面]# vim /etc/passwd2./etc/group用户组信息文件用分割每行4列[rootnode2 桌面]# vim /etc/group3./etc/shadow用户存认证信息4./etc/skel/.*用户的环境配置文件.bash_profile #环境变量配置文件.bashrc #shell配置文件.bash_history #历史记录.bash_logout #用户退出shell执行命令5./home/username用户的家目录集合6./var/spool/mail/username用户邮件存放文件三.用户管理1.用户信息查看#查看当前用户whoami ##查看当前用户#查看指定用户IDid ##查看用户id信息-u ##查看用户的用户id-g ##查看用户主组id-G ##查看用户所有的组的id-n ##显示名称2.切换用户#切换用户su 用户名称#切换用户及用户环境变量su - 用户##如果root ---- commonuser 不需要后者密码##commonuser ---- root 需要密码##commonuser ---- commonuser 需要密码注意在做用户切换时当使用完毕用户身份及时退出不要在一个shell中反复执行su命令在一个shell中反复执行su命令会导致环境错乱#实验效果3.用户和用户组建立及删除#设置监控监控用户的建立[rootnode2 ~]# watch -n 1 tail -n 3 /etc/passwd /etc/group ;ls -l /home/1)用户建立useradd 用户名-u id username ##uid 2**160-65535##0 表示超级用户##1-200 系统预留id##201-999 系统用户##1000-60000 用户级用户##/etc/login.defs 记录用户建立的默认规则-g id username ##主组id-G id username ##附加组id-d dir username ##指定用户家目录-M username ##建立用户时不建立家目录-c word username ##指定用户说明-s shell username ##指定用shell2)用户删除#用户删除 -r 删除用户的系统配置文件userdel -r 用户名#如果在删除用户时没加-r参数系统的配置文件不会被删除#可以用rm手动删除残留资源3).组建立及删除[rootnode2 ~]# groupadd -g 6666 lee[rootnode2 ~]# groupdel lee4).用户和组的信息管理##更改组信息groupmod -g 组名称##更改用户信息usermod-l #更改用户名称-u #更改用户id-g #更改主组id-G #更改用户附加组身份-aG #添加用户附加组身份-c #更改用户说明-s #更改默认shell-d #更改家目录指向-md #更改家目录指向同时更改家目录名称5).用户认证信息管理#查看密码状态[rootnode2 ~]# passwd -S lee#设置监控[rootnode2 ~]# watch -n 1 tail -n 1 /etc/shadow ; passwd -S lee #编码与解码#root用户修改密码#普通用户修改密码#非交互式修改密码只有root可用#冻结认证passwd -l lee ##冻结账号认证passwd -u lee ##解锁账号认证usermod -L lee ##冻结usermod -U lee ##解锁#密码删除)passwd -d lee#密码使用天数*从1970-1-1算其到今天的时间passwd -e lee ##修改默认使用时间为0chage -d 0 lee ##账号必须改密码才能登陆系统#密码最短有效期passwd -n 1 lee ##lee在1天内不能改密码chage -m 1 lee#密码最长有效期passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结chage -M 30 lee#密码过期警告passwd -w 2 lee ##账号过期前警告时间chage -W 1 lee#认证非活跃天数passwd -i 2 lee ##账号认证最大时间超过后还能用多久chage -I 1 lee#账号认证到期时间chage -E 2026-06-30 ##到2026-06-30这天账号会被冻结6).权力下放在系统中普通用户时无法执行系统管理命令的如果需要普通用户执行系统管理动作那么需要root用户来进行授权visudo ##此命令作用是编辑/etc/sudoers并提供语法检测[rootnode2 ~]# hostname #查看主机名[rootnode2 ~]# which useradd #查看文件的绝对路径#编写命令#测试效果用sudo来实现权力下放#执行userdel命令需要再次编写visudo#可以免密执行