系统资源是有限的,如何合理分配系统资源? 在这个问题解决时必须要有连个资源配合 1.身份 account 2.授权author 3.认证auth 3A机制,3A机制组成系统中最底层的安全架构
用户组是一个逻辑容器 对用户进行归类和统一授权
电脑对数字敏感,而人类对字符串敏感名称,id就是名称 ,必须要记录到文件当中,用户才能存在。 用户就是/etc/passwd文件中的一行字符; 用户组存在的方式就是/etc/group 文件中的一行字符。
whomai ##查看当前用户 id ##查看用户id信息 -u ##查看用户的用户id -g ##查看用户主组id 例:查看root用户主组id -G ##查看用户所有的组的id -n ##显示名称 用户id范围:0-65535 0: ##Linux超级用户ID 1-999: ##Liunx系统自用ID 1000-65535: ##用户级ID 注:以上ID设定规则都被记录在/etc/login.defs
su username 注:上述情况只切换了身份,未切换环境,同时切换用户和环境指令为:su – 用户名 注: (1)如果root ----> commonuser 不需要后者密码 (2)commonuser ----> root 需要密码 (3)commonuser ----> commonuser 需要密码
注: (1)在做用户切换时,当使用完毕用户身份及时退出,否则会在进程中占用系统资源。 (2)不要在一个shell中反复执行su命令 (3)在一个shell中反复执行su命令会导致环境错乱
/etc/passwd ##用户身份信息文件 #用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell 例:vim /etc/passwd /etc/group ##组身份信息文件 #组名称:组密码:组id:组的附加成员 /etc/skel/.* ##用户环境配置文件模板 /etc/shadow ##用户认证信息文件 /home/username ##用户家目录 /var/spool/mail/username ##用户邮箱文件
watch -n 1 “tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home” 注:< crtl >+< c >退出监控
useradd username -u id username ##uid 2**16=0-65535 例:建立一个id为888,用户名为fake的用户 ##0 表示超级用户 ##1-200 系统预留id ##201-999 系统用户 ##1000-60000 用户级用户 ##/etc/login.defs 记录用户建立的默认规则 -g id username ##主组id 例:建立一个主组id为990的用户fake useradd -g 990 fake -G id username ##附加组id -d dir username ##指定用户家目录 -M username ##建立用户时不建立家目录 -c word username ##指定用户说明 -s shell username ##指定用shell
userdel -r username ##用户删除 -r表示删除用户的系统配置文件,如果删除时没有加-r,再建立该用户时会报错,需手动删除。
groupadd groupname ##组建立 -g id groupname ##指定组名称 groupdel groupname ##组删除
usermod -l #更改用户名称 例:把fake用户名改为faker usermod -l faker fake -u #更改用户id 例:fake用户id改为888 usermod -u 888 fake -g #更改主组id 例:fake用户的主组id改为1000 usermod -g 1000 fake -G #更改用户附加组身份 例:不改变id把fake加入light成员里面 usermod -G light fake 改变之后的fake用户有两个身份 例:fake用户有两个附加组身份 usermod -G 72, light fake 例:fake用户两个附加组身份清零 usermod -G 0 fake -aG #添加用户附加组身份 例:用户fake在原有身份基础上增加一个附加组身份 usermod -aG 10 fake 例:去掉fake用户所有附加组身份 usemod -G “ “ fake -c #更改用户说明 例:fake用户更改用户说明fake is liar uermod -c “fake is liar” fake -d #更改家目录指向 例:更改用户fake的家目录为/home/biubiu usermod -d /home/biubiu fake -md #更改家目录指向同时更改家目录名称 注意上面两个图的区别
-s #更改默认shell 例:把fake用户的shell改为/bin/sh usermod -s /bin/sh fake -L #冻结账号 -U #解锁 groupmod -g ##更改用户组id 例:更改用户组id为10000 groupmod -g 10000 fake
/etc/shadow 文件内容说明 用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)
passwd -S lee ##查看密码状态
passwd lee ##只有root可以执行 “echo 123 | passwd --stdin lee” passwd ##普通用户改密码 Current password: #输入原始密码 New password: ##输入新密码(8位以上无序数字+无序字母组合) Retype new password: ##重复输入 passwd: all authentication tokens updated successfully.
passwd -l lee ##冻结账号认证 passwd -u lee ##解锁账号认证
passwd -d lee #密码使用天数 *从1970-1-1算其到今天的时间 passwd -e lee ##修改默认使用时间为0 chage -d 0 lee ##账号必须改密码才能登陆系统 #密码最短有效期 passwd -n 1 lee ##lee在1天内不能改密码 chage -m 1 lee #密码最长有效期 passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结 chage -M 30 lee 例:用户light密码最长有效期设置为30天 passwd -x 40 light
#在系统中普通用户时无法执行系统管理命令的 #如果需要普通用户执行系统管理动作那么需要 #root用户来进行授权 普通用户授权方式 “sudo” 作用: 可以使普通用户使用指定的用户身份运行命令 授权方法: visudo ##此命令作用是编辑/etc/sudoers并提供语法检测 在文件的100行左右 ##代码规范性 格式:username hostname=(newusername) [NOPASSWD:] /command, /command1
例:纠错提醒 命令:lee linux.westos.com=(root) /usr/sbin/useradd 解释:lee用户在linux.wesots.com主机=(用超级用户身份) 执行useradd命令 命令:westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel 解释:westos用户在linux.wesots.com 使用超户免密执行useradd 和 userdel
测试: su - lee sudo useradd westostest ##在lee第一次使用sudo命令时需要输入lee密码 exit #退出lee su - westos sudo userdel -r westostest ##westos可以免密执行userdel 命令