1.什么是用户
用户是操作者在系统中的身份
用户是系统最底层的安全机制的一部分
用户在系统中以字符和文件的形式存在
2.linux 系统组存在的意义
- 用户组是用户的延伸,可以得到身份,共享用户的权力
- 相当于我是我自己,但我还属于我的家庭,我和我的家庭就组成了初始用户组
- 在学校,我属于自己的班级的一员,我和我的班里的同学就组成了附加用户组
- 组的存在是为了共享权力,组和用户是两个不同的机制
组的分类:
初始组 | 用户刚刚建立就加入的组 |
---|---|
附加组 | 用户后期加入的组 |
3.怎样查看linux系统用户
(1)查看当前正在使用的用户
whoami 查看当前用户
(2)查看系统中用户的信息:
id | 查看正在使用的用户的所有id信息 |
---|---|
id -u | 查看用户的uid |
id -g | 查看用户的gid |
id -G | 查看用户所在的所用组id |
id -n | 显示名字而不显示id字数 |
eg:
(3)切换用户:
gnome-session-quit-force ## 注销当前用户,用其他用户登陆
su - 用户名称(前提是该用户在系统当中存在)
注意:
- su - 中 “ - ”表示在用户切换是同时切换当前用户的环境
- su - 执行时高级用户切换到低级用户不需要密码,高级用户到低级用户需要密码,平及用户之间的切换因为需要密码
- 每次su - 切换到其他用户操作后,必须先退出在当前用户,在切换,即su -,否则容易造成用户使用资源紊乱。
4. 用户在linux 系统中的存储方式
用户在系统中的存在方式也是文件,对用户的管理就是对文件的管理
(1)用户信息文件: /etc/passwd
说明:用户信息文件里面存储了用户的一些基本信息
包括的内容:用户名称,用户密码,uid,gid,说明,家目录,默认shell
用户名称 | 用户自己的名字 |
---|---|
用户密码 | 用户自己密码 |
uid | 用户自己的身份证号 |
gid | 用户所属组的id |
说明 | 系统默认的shell有哪些,可以查看/etc/shells文件 |
家目录 | 打开shell默认所在的目录 |
默认shell | 默认和系统对话shell类型 |
(2)用户组信息文件:/etc/group 文件
说明:用户组信息文件里面存储了用户所属组(用户组)的一些基本信息
包括的内容:组的名字,组的密码,组的id,组的成员
(3)认证信息文件:/etc/shadow
说明:认证信息文件里面包括了一些认证信息,比如每个用户登陆时的密码
包括的内容:用户名称,用户密码,密码已经使用时间,密码最短有效期,密码最长有效期,密码到期前警告,密码非活跃天数,密码到期日等
(4)默认开启shell的配置,用户的骨文件:/etc/skel/.*
说明:骨文件里面存储了默认用户和系统对话工具的 相关信息
(5)用户的家目录:/home/username
注意:家目录指的是该用户建立的所属目录
5.用户组的管理(用户组管理命令)
groupadd 用户组名字 | 建立用户组 |
---|---|
gropupadd -g 6666 用户组名字 | 建立用户组并指定用户组的id |
groupdel 用户组名字 | 删除用户组 |
(1)动态监控每一条命令作用后的状态采用watch命令
eg:watch -n 1 "tail -n 3 /etc/passwd /etc/group; ls -l /home/"
(2)用户组的建立:groupadd
groupadd 用户名
groupdel 用户名
groupadd -g uid 用户组名字 ##建立用户组并指定用户组id
6.用户的管理
- 用户的建立
useradd用户名 | 建立用户时,读取/etc/login.defsa文件内容确定规则 |
---|---|
useradd -u 6666 用户名 | 建立用户的同时指定用户id |
useradd -g 21 用户名 | 建立用户的同时指定用户uid,21用户组必须存在 |
useradd -G 21 用户名 | 指定用户的附加组id,“21用户组必须存在” |
useradd -c “xxxx” 用户名 | 指定用户的说明 |
useradd -d /home/lee 用户名 | 指定用户的家目录 |
useradd -s /bin/sh 用户名 | 指定用户的默认shell |
2.用户的删除
userdel
userdel student ##删除用户但不删除用户的配置文件
userdel -r student ##删除用户并删除用户的配置文件
用户信息监控命令
watch -n 1 “tail -n 3 /etc/passwd /etc/group;ls -l /home”
useradd -u 8888 westos ##指定用户uid建立用户
useradd -g 21 xixi ##指定用户gid建立用户,组id必须是存在的,如不存在可以先建立组
useradd -G 8888 haha ##指定用户附加组id建立用户,附加组id必须存在
useradd -c “hello linux” westos ##指定用户的说明建立用户
useradd -d /home/lee lee ##指定用户家目录建立用户
useradd -s /bin/sh zas ##指定用户的默认shell
groupadd ##建立用户组
groupadd -g 888 westos ##建立用户组并指定用户组的id
groupdel ##删除用户组
7.直接更改用户信息
useraddmod -l 新名称 | 用户名称 |
---|---|
usermod -u uid 用户名 | 更改用户uid |
usermod -g gid 用户名 | 更改用户初始组 |
usermod -G gid 用户名 | 更改用户附加组,可以接组名,也可以接id |
usermod -aG gid 用户名 | 添加用户的附加组 |
usermod -G “ ” 用户名 | 删除用户所有附加组的身份 |
usermod -c “xxx” 用户名 | 指定用户说明文字 |
usermod -d /home/lee 用户名 | 更改用户家目录的指向 |
usermod -md /home/lee 用户名 | 更改用户家目录 |
usermod -s /bin/bash | 更改用户的bash |
(1)usermod -l 新名称 用户名称 ##更改用户的名称
usermod -u 6677 用户名称 ##更改用户的uid
usermod -g 21 用户名称 ##更改用户的初始组
usermod -G 8888 用户名称 ##更改用户的附加组
usermod -aG 72 用户名称 ##添加用户的附加组
usermod -G “” 用户名称 ##删除用户的所有附加组的身份
usermod -c “hhhh” 用户名称 ##更改用户的说明文字,也可以指定为“”即删除说明
usermod -d /home/lee 用户名称 更改用户家目录的指向(不改变家目录名字,只改变家目指向)
usermod -md /home/lee 用户名称 (更改用户家目录名称及指向)
usermod -s /bin/sh 用户名称 ##更改用户的shell
8.用户信息认证
/etc/shadow 这个文件记录用户的认证信息
例如:
【1】【2】【3】【4】【5】【6】【7】【8】【9】
westos: !!! : 17895 : 0 : 99999 : 7 : : : ##共有9项内容(此文件一共有9列)
【1】westos 用户名称
【2】!!! 用户密码:用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现“!”那么用户被冻结
【3】17895 用户密码最后一次被更改的时间
此时间计算是从1970-1-1开始计算的累计天数
【4】0 用户密码最短有效期限(用户在这个天数之内不能修改密码)
【5】99999用户密码最长效期限,用户必须再此有效期内更新密码,如果超时会被冻结
【7】用户的非活跃天数,即:密码在最长有效期过后仍然可以使用的天数
【8】用户到期日,默认为空,表示帐号一定会被冻结的时间点,此时间计算是从1970-1-1开始计算的累计天数
【9】用户自定义列,目前没有启用
(1)passwd -S 用户名 ##查看用户密码信息
(2)用户密码
passwd 用户名称 ##更改westos密码
passwd -l 用户名称 ##在用户名称前加入“!!”,锁定用户密码
passwd -u 用户名称 ##解锁用户密码
usermod -L 用户名称 ##在用户名称前加入“!”
usermod -U 用户名称 ##在密码不为空时使用
passwd -d 用户名称 ##清空用户密码
注意:
普通用户修改密码时
1.必须知道当前用户的原始密码
2.密码不能和帐号名称相似
3.密码不能是有序的数字或有序纯字母
4.密码如果是纯数字或密码 要>8
监控watch -n 1 " tail -n 3 /etc/shadow "
passwd 用户名称 ##更改westos密码
passwd -l 用户名称 ##在用户名称前加入“!!”,锁定用户密码
passwd -u 用户名称 ##解锁用户密码
usermod -L 用户名称 ##在用户名称前加入“!”
usermod -U 用户名称 ##在密码不为空时使用
passwd -d 用户名称 ##清空用户密码
!!表示被封锁,该账户不能登陆
passwd 比usermod强度更强
9.密码管理
(1)用户密码最后一次被更改的时间
passwd -e 用户名称 ##会改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
chage -d 0 用户名称 ##两个命令作用类似
(2)用户密码最短有效期
passwd -n 20 用户名称 ##用户在20天之内必须修改密码
chage -m 40 用户名称 ##用户在40天之内必须修改密码
(3)用户密码最长有效期
passwd -x 20 用户名称 ##用户在20天之内必须修改密码
chage -M 40 用户名称 ##用户在40天之内必须修改密码
(4)密码警告期限
passwd -w 2 用户名称 ##密码过期两天有警告输出
chage -W 2 用户名称 ##密码过期两天有警告输出
(5)用户非活跃天数
passwd -i 1 用户名称 ##密码过期后仍可登陆系统的天数
chage -I 1 用户名称 ##密码过期后仍可登陆系统的天数
(6)用户到期日
chage -E 2019-11-11 用户名称 ##用户在2019-11-11日会被冻结
(7)用户自定义列,目前没有启用
10. 用户授权
(1)什么是用户授权?
超级用户把部分权力给普通用户的过程,叫用户授权。
(2)权力下放文件为 /etc/sudoers
此文件可以用vim直接编辑,但是不提供语法检测
也可使用visudo编辑此文件,visudo命令提供语法检测文件
(3)怎样使一个普通用户拥有新建用户的权力?
步骤一: 新建普通用户: useradd westos(westos为用户名)
步骤二:打开文件visudo 或者(/etc/sudoers)
步骤三:
在100行左右
添加 用户 主机名称 = (得到的用户身份) 命令
westos localhost = (root) NOPASSWD :/usr/sbin/useradd
查看主机名称:可用hostname命令
步骤五:
测试一定要加sudo
切换成westos ,输入sudo useradd ll ,然后id ll,即可看到用户