需要知道:
1.linux系统是一个多用户多任务的操作系统,管理好用户才能保证系统有条不紊的工作
2.linux系统用户存在的意义
系统用户即系统的使用者,用户管理是对文件进行管理,用户的存在是为了回收权力
3.linux系统组存在的意义
用户组是用户的延伸,可以得到身份,共享用户的权力
相当于我是我自己,但我还属于我的家,我和家人就组成了初始用户组
在学校,我属于自己班级的一员,我和班里的同学组成了附加用户组
组的存在是为了共享权力,组和用户是两个不同的机制
组的分类:
初始组 | 用户刚建立时就加入的组 |
---|---|
附加组 | 用户后期加入的组 |
实验步骤:
打开一台虚拟机
一、查看linux系统用户
(1)查看当前正在使用的用户:
whoami 查看当前用户
2)查看系统中用户的信息:
id | 查看正在使用的用户的所有id信息 |
---|---|
id -u | 查看用户的uid |
id -g | 查看用户的gid |
id -G | 查看用户所在的所有组的id |
id -n | 显示名字而不显示id数字 |
(3)切换用户:
gnome–session–quit–force ##注销当前用户,用其他用户登陆
su - 用户名称(前提是该用户在系统当中已经存在,若不存在需要现在超级用户模式下新建立用户)
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
(否则环境不改变)
6.用户在linux系统中的存储方式
其实用户也是文件,对用户的管理就是对文件的管理
用户其实就是以文件的方式存储的,和文件一样
默认shell的指定有哪些可以查看系统中/etc/shells文件
1)用户信息文件: /etc/passwd
说明:用户信息文件里面存储了用户的一些基本信息
包括的内容:用户名称:用户密码:uid:gid:说明:家目录:默认shel
用户名称 用户自己的名字
用户密码 用户自己的密码
uid 用户自己的身份证号
gid 用户所属组的身份证号
说明 默认shell的指定有哪些,可以查看系统中的/etc/shells
家目录 该文件一开始在的目录
默认shell 和系统的聊天软件类型
(2)用户组信息文件: /etc/group
说明:用户组信息文件里面存储了用户所属组(用户组)的一些基本信息
包括的内容:组的名字:组的密码:组的id:组的成员
组的名字 这个组的称谓
组的密码 这个组的密码
组的id 这个组的身份证号
组的成员 该组里面包括了哪些用户
3)认证信息文件: /etc/shadows
说明:认证信息文件里面包括了一些认证信息,比如每个用户登陆时的密码
包括的内容:用户名称:密码(sha512非对称加密)
(4)默认开启shell的配置,用户的骨文件:/etc/skel/.*
说明:骨文件里面存储了默认用户和系统对话工具的相关信息
(5)用户的家目录: /home/username
注意:家目录指的是该用户建立的所属目录
用户其实就是文件的内容以及文件内容所指定的那些文件
uid相当于用户的身份证号 ,真正区别用户的不是名字,而是uid
用户说明和用户名字不一样
组用户为附加用户 ,并不是原有用户
初始组和附加组不一样
目录名称 目录说明 目录下的内容格式 解释说明
/etc/passwd 用户信息文件 用户名称:密码:uid:gid:说明:家目录:默认shell 默认shell的指定有那些可以查看系统中/etc/shells文件,在此文件中,有nologin不可与系统进行交流对话,即不含有交互界面
/etc/group 用户组信息文件 组的名字:组密码:组id:组成员 无
/etc/shadows 认证信息文件 无 无
/etc/skel/.* 默认开启shell的配置,用户的骨文件 无 无
/home/username 用户的家目 无 无
7.用户组的管理(用户组管理命令)
groupadd 用户组名字 建立用户组
groupadd -g 6666 用户组名字 建立用户组并指定用户组的id
groupdel 用户组名字 删除用户组
(1)动态监控每一个命令作用后的状态采用watch命令
实时监控的命令 ### watch -n 监控间隔时间;ctl+c退出
比如:watch -n 1 “tail -n 3 /etc/passwd /etc/group ; ls -l /home/”
(2)用户组的建立:groupadd
groupadd 用户组名
(2)用户组的删除:groupdel
groupdel 用户组名
(3)groupadd -g uid 用户组名字 ###建立用户组并指定用户组的id
用户的管理(用户管理命令)
useradd 用户名 建立用户时,读取/etc/login.defs 文件内容确定规则
useradd -u 6666 用户名 建立用户的同时指定用户uid
useradd -g 21 用户名 指定用户初始组id,“21用户组必须是存在的”
useradd -G 21 用户名 指定用户的附加组id “21用户组必须存在”
useradd -c “xxxxx” 用户名 指定用户的说明
useradd -d /home/lee 用户名 指定用户的家目录
useradd -s /bin/sh 用户名 指定用户的默认shell
直接改用户信息(不用删除再建立,直接改用户信息)
注意:以下为不用再新建用户,直接在已有的用户基础上修改用户的信息
usermod -l 新名称 用户名 更改用户的名称
usermod -u uid 用户名 更改用户uid
usermod -g gid 用户名 更改用户的初始组
usermod -G gid 用户名 更改用户的附加组,可以接组名,也可以接id
usermod -aG id 用户名 添加用户的附加组
usermod -G “” 用户名 删除用户所有附加组的身份
usermod -c “XXX” 用户名 指定用户说明文字
usermod -d /home/lee 用户名 更改用户家目录的指向
usermod -md /home/lee 用户名 更改用户家目录
usermod -s /bin/sh 用户名 更改用户的shell
密码管理(各个部分的修改)
(1)用户密码最后一次被更改的时间:
passwd -e 用户名 ##会改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
chage -d 0 用户名 ##两个命令功能类似
(2)用户密码最短有效期:
passwd -n 1 用户名 ###用户在一天之内不能修改密码
chage -m 1 用户名 ###两个命令的效果一样
(3)用户密码最长有效期:
passwd -x 30 用户名 ###设定用户在30天之内必须修改密码
chage -M 40 用户名
4)密码警告期限:
passwd -w 2 用户名 ###密码过期前两天有警告输出
chage -W 2 用户名
(5)用户非活跃天数:
passwd -i 1 用户名 ###密码过期后仍可登陆系统的天数
chage -I 1 用户名
6)用户到期日:
chage -E 2019-6-6 用户名 ###用户在这一天会被冻结 注意:此时间是从1970-1-1开始计算的累计天数|
用户授权
(1)什么叫用户授权?
一般情况下普通用户是不能新建用户或者新建用户组,只有超级用户有这个权力
现在想让普通用户使用超级用户的权力来建立用户或者用户组
此时需要把超级用户的权力给普通用户,这就叫用户授权
超级用户把自己的权力分享给普通用户,也可以叫权力共享
2)怎样使普通用户采用超级用户的权力?
步骤一:先建立一个普通用户 useradd 用户名
步骤二:再看是否能建立新用户 su - 用户名 (查看是否为普通用户)useradd
步骤三:打开一个文件 visudo (/etc/sudoers)
步骤四:在改文件的任意一行可以写要操作的东西(一般为了规范 在100行作用写)
内容为:用户名字 主机名字(hostname)=(root) NOPASSWD: 要执行的命令/usr/sbin/useradd
步骤五:测试一定要用sudo
当改完visudo时不能退出时,按e回到文件查找错误
最终可以建立用户
注意;无nopasswd时,在普通用户下执行时需要密码,密码可以在超级用户下更改 nopasswd为免密操作 第一次使用超级用户时要使用自己的密码 用root passwd改密码 注意空格问题:=(root)之前不能有空格 注意免密码和不免密码的区别在于有没有 NOPASSWD 超级用户下放权力是可以同时下放好几个,采用分号+空格 分割开