Linux大神进阶四:用户管理

1.用户&用户组的理解

(1)用户:①操作者在系统中的身份;②最底层安全机制的一部分;③用户在系统中以字符和文件的形式存在;
(2)用户组:用户组(group)就是具有相同特征的用户(user)的集合体;我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现。

2.用户的常见命令

2.1命令&注释

功能 命令 注释
1.查看当前用户(whoami) whoami #查看当前用户
2.系统中用户的查看(id) id # 查看指定用户id 信息
id -u #查看用户的uid
id -g #查看用户的gid
id -G #查看用户所在的所有组的id
id -n
3.用户的切换(su) gnome-session-quit --force #注销当前用户,在其他用户登录
su - username #切换用户:①“-”标识在用户身份切换时同时切换当前的环境;②su - 执行高级用户切换到低级时不需要密码;低级到高级或者平级之间切换需要密码③:每次su切换到其他用户时必须要(exit)退出,然后在切换到其他用户④ su command 不会读取目标用户的环境配置文件;su - 读取用户的配置文件
4.新建一个用户(example) #逐步改错的工程
4.1 id westos # 不存在,需要在/etc/passwd文件里面添加
4.2 vim /etc/passwd # 添加需要的用户信息
4.3 su - westos # 切换到用户①cannot change directory to /home/westos: No such file or directory②cannot find name for group ID 8888
4.4 exit>>>mkdir /home/westos>>> vim /etc/group #切换到root用户; ①创建目录②添加组信息
4.4 chown westos.westos /home/westos/ # 修改用户和用户组
4.5 su westos >>> cp /etc/skel/.* . #切换到westos ,拷贝配置文件
4.6 exit>>>su - westos #切换到root ,再次进入,即为新建的用户
5.删除用户(userdel) userdel username #删除用户,但是不删除配置文件
userdel -r username #删除用户,并删除配置文件
*** pkill -9 -u westos >>> userdel -r username*** #强制删除运行的用户(用户切换的时候没有exit)①退出进程②删除用户;
6.1建立用户(useradd) watch -n 1 “tail -n 3 /etc/passwd /etc/group; ls -l /home” #***注意:①建立用户时,读取/etc/login.defs 文件内容 ② 1–标识刷新的频率;③多个命令在一起的话,用;隔开,用“”引起来 ④ctrl+c退出 **
useradd -u 8888 westos #指定用户的uid(总范围:1000-60000 系统占用:201-999)
useradd -g 21 westos #指定用户的初始组id,注意:21用户组时存在的(总范围:1000-60000 系统占用 201-999)
useradd -G 21 westos #指定用户附加组的id,注意:21用户组也必须存在
useradd -c "heihei " westos #指定用户的说明
useradd -d /home/lee westos #指定用户的家目录
useradd -s /bin/sh westos #指定用户的默认shell 注意:不能登录的shell: /sbin/nologin
6.2建立、删除用户组(groupadd、groupdel) groupadd -g 888 westos #建立用户组
groupdel westos #删除用户组
7.更改用户信息(usermod) usermod -l 新名称 # 更改用户的名称
usermod -u 666 westos #更改用户的uid
usermod -g 21 westos #更改用户的初始组
usermod -G 21 westos #更改用户的附加组
usermod -aG 72 westos #添加用户的附加组
usermod -G " " westos # 删除用户的所有附加组
usermod -c “hahaha” westos # 指定用户的文字说明
usermod -d /home/lee westos # 更改用户的家目录的指向,,对文件无影响
usermod -md /home/lee westos # 更改用户的家目录,注意:(改名 ,新建dir)
usermod -s /bin/sh westos # 更改用户的shell
usermod -L westos # 冻结用户
usermod -U westos # 解锁用户

2.2注意

(1)修改配置文件的信息:
①(root)vim /etc/bashrc>>> vim /etc/profile
②(root)对于修改的变量进行赋值; A=2
③切换到其他用户: echo $A
在这里插入图片描述

2.3 结果

Result1-3 whoami —id—su
在这里插入图片描述

Result4 新建用户的案例
在这里插入图片描述Result5-6 建立/删除用户(组)
在这里插入图片描述Result7.1 usermod

在这里插入图片描述

Result7.2 usermod
在这里插入图片描述

3.用户在系统的存储方式

文件 含义
/etc/passwd #①用户信息文件;②用户名称:密码:uid:gid: 说明:家目录:默认shell ③“默认shell的指定可以查看系统中/etc/shells文件”
/etc/group #①用户组信息文件;②组名字:组密码:组id:组成员
/etc/shadow #认证信息文件
/etc/skel/.* 默认开启shell的配置,用户的骨文件
/home/username #用户的家目录

Result3.1 /etc/passwd每一位的含义 在这里插入图片描述
Result3.2 /etc/group每一位的含义
在这里插入图片描述Result3.3 /etc/shadows每一位的含义
在这里插入图片描述

4.用户密码信息的修改

4.1 常见命令

功能 命令 注释
1.1用户密码(passwd) passwd westos #更改用户的密码
passwd -l westos #在用户密码前加 !!
passwd -u westos #解除密码
passwd -L westos #在用户密码前加!
passwd -S westos #查看密码状态
passwd -U westos #在密码不为空时使用
passwd -d westos #清空westos密码
1.2非交互式更改密码 echo westos passwd --stdin student
2.用户密码最后一次被更改的时间 passwd -e westos #改变用户最后一次改密码时间为0;用户在登录时强制要求改密码
chage -d 0 westos #同上
3.用户密码最短有效期 passwd -n 1 westos #westos 用户在1天之内不能修改密码
chage -m 1 westos #同上
4.用户密码最长有效期 passwd -x 30 westos #设定30天之内必须改密码
chage -M 30 westos #同上
5.密码警告期限 passwd -w 2 westos #密码过期前两天警告
chage -W 2 westos #同上
6.用户非活跃天数 passwd -i 1 westos #密码过期后仍可登录一天
chage -I 1 westos #同上
7.用户到期日 chage -E 2020-10-09 westos #用户在 2020-10-09会被冻结

4.2 注意

(1)passwd(普通用户修改密码的时候)
①必须知道当前用户的原始密码;
②密码不能和账号类似;
③密码不能是有序的数字或者纯字母
④密码如果是纯数字或 字母要>8;
⑤修改密码前先用 ***watch -n 1 “head -n 3 /etc/shadow; echo =========; tail -n 3 /etc/shadow”***

4.3 结果

#Result0 用户间密码的修改
在这里插入图片描述Result1.1 用户密码的修改(passwd)
在这里插入图片描述Result1.2 用户密码的修改(passwd)
在这里插入图片描述 Result1.3 用户密码的修改(chage)
在这里插入图片描述

5. 用户权利的下放

5.1理解

用户权利下放:在系统中超级用户下可以下放给普通用户不能执行的操作下放权限的配置文件:/etc/sudoers

5.2 方式

  1. which command >>>查看命令所在的文件(注意:复制粘贴)
    1)(root)hostname >>>查看主机名(注意;复制粘贴)
    2)(root)visudo
    3.1)在第100行位置编辑(权利下放1)
    johnson hostname=(root) /usr/sbin/useradd >>> #johnson在主机按照root身份执行;
    johnson hostname=(root) NOPASSWD:/usr/sbin/useradd >>>#johnson在主机按照root身份免密执行;
    3.2)在第100行位置编辑(权利下放2,注意大小写)
    Cmnd_Alias CASUALNAME1 = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod
    User_Alias CASUALNAME2 = johnson, tom
    CASUALNAME2 hostname=(root) NOPASSWD: CASUALNAME1

5.3 测试

su - johnson
sudo useradd hello

5.4 结果

Result1 权利下放1
在这里插入图片描述Result2 权利下放2*
在这里插入图片描述

6. TEST

(1)
在这里插入图片描述(2)找工作
要求每一个用户的家目录都包含student,在 mkdir student /etc/skel/.*

发布了33 篇原创文章 · 获赞 8 · 访问量 2298

猜你喜欢

转载自blog.csdn.net/Pierce110110/article/details/101938303