day07
多用户多任务的管理系统
linux管理模式私有模式: 每一个用户对应一个和用户同名的组
公有模式
1.用户类别(65535个用户)
管理员: root 0
普通用户:redhat 1-60000
系统用户: 系统安装自动创建 1-200 201-999
一般用户: 手动添加 1000-60000
1.1创建用户
useradd 用户名
/usr/sbin/useradd
-u 更改用户UID
-g 更改用户的基本组(主组)
-G 更改用户的附加组
-c 注释信息
-d 家目录
-s 更改shell字段(可交互式shell、非交互式shell)
1.2查看用户
grep ‘^用户名’ /etc/passwd
id 用户名
cat /etc/passwd 用户配置文件
xiao1:x:1001:1001::/home/xiao1:/bin/bash
用户名:密码的占位符:UID:GID:注释、描述字段:用户的家目录:shell字段/bin/bash /sbin/nologin
1.3修改用户
usermod [option…] [选项参数] 用户名
-l 修改用户登录名称 #usermod -l newxiao1 xiao1 把xiao1改名为newxiao1
-u 更改用户UID #usermod -u 1111 newxiao1 #usermod new1xiao1 -u 1111
-g 更改用户的基本组(主组) #usermod -g redhat newxiao1
-G 更改用户的附加组 #groupadd g1 #usermod -G g1 newxiao1
-c 注释信息 #usermod -c 18123827227 newxiao1
-d 家目录
-s 更改shell字段(可交互式shell、非交互式shell)
#usermod -s /sbin/nologin newxiao1
eg:
usermod -l newname -u 1234 -g 1000 -c dashazi name
1.4删除用户
userdel -r 用户 删除用户以及创建用户相关的所有文件
1.5用户设置/修改密码
passwd [用户名]
-d 删除用户密码
-l 锁定用户密码
-u 解锁用户密码
管理员:可以指定用户名更改系统任意用户的密码不需要输入之前的密码,不严格匹配密码等级设置
普通用户:不可以指定用户名,只能更改自己的密码,需要输入之前的密码,严格匹配密码等级设置
echo mima | passwd --stdin 用户名
chpasswd
[root@www ~]# cat users
redhat:1234
root:1234
xiao1:1234
[root@www ~]# cat users | chpasswd
[root@www ~]# echo redhat:123456 | chpasswd
1.6破解密码:
关机-->开机-->鼠标进入启动界面-->第一个引导菜单-->e --->找到linux这一行在行尾添加rd.break
--->ctrl-x--->mount -o remount,rw /sysroot --->chroot /sysroot -->passwd root-->设置密码--确认密码--->touch /.autorelabel -->exit --exit (等待)
2.组类别
管理组: root 0
普通组: 1-60000
系统组
一般组
主组,基本组、私有组,用户的默认组
附加组,额外组 用户组默认组之外的组
2.1组添加
groupadd 组名
2.2查看组
grep ‘^组名’ /etc/group
cat /etc/group 组配置文件
root:x:0:
组名:组密码占位符:GID:组中的用户名
2.3修改组信息
groupmod [option…] [选项参数] 组名
-n 修改组名 #groupmod -n grp1 g1
-g 修改组id #groupmod -g 2222 g1
2.4删除组
groupdel 组名
2.5设置,修改组密码
gpasswd 组名
gpasswd 组名 设置组密码
-r 删除组密码
-a 把指定用户加入组 #usermod -G g1 redhat == #gpasswd -a redhat g1
-M 指定多个用户加入组(指定新的组成员列表) #gpasswd -M user1,user2,user3 g1
-d 将指定用户从组中移除 #gpasswd -d user1 g1
-A 指定组长(可以在组中添加成员或删除一个组用户) #gpasswd -A user2 g1
-R 锁定组(用户知道组密码也不能验证登录)
2.6 登录新组
newgrp 组名
练习题
1.新建组,shengchan,caiwu,jishu
#groupadd shengchan
#groupadd caiwu
#groupadd jishu
2.新建用户要求如下:
* wjx 是shengchan组的附加用户
* liuy 是caiwu组的附加用户
* zxx 是jishu组的附加用户
* 新建admin用户,此用户不属于以上提到的三个部门,以上用户密码设置为redhat
#useradd wjx
#usermod -G shengchan wjx == #useradd -G shengchan wjx
#useradd -G caiwu liuy
#useradd zxx
#gpasswd -a zxx jishu
#useradd admin
(1)#passwd wjx
(2)#echo redhat | passwd --stdin liuy
(3)#echo zxx:redhat | chpasswd
(4)#vim file
wjx:redhat
liuy:redhat
zxx:redhat
admin:redhat
#cat file | chpasswd
3.实验
创建学习组1,学习组2 ;他们的组gid分别为1111,2222,添加成员并将uid为1088,
和uid为1066的成员为两组的组长,其中一组组长有一个‘外号’laoda。
不同学习组成员进入其他组需要密码才能进入(设置密码);即使密码泄露也不希望组之外的成员进入。
添加组
#groupadd std1
#groupmod -g 1111 std1
#groupadd -g 2222 std2
创建用户
#useradd user1
#useradd -u 1088 user2
把用户加入组
#usermod -G std1 user1
#gpasswd -a user2 std1
#gpasswd -A user2 std1
#useradd da1
#useradd -u 1066 da2
#gpasswd -M da1,da2 std2
#gpasswd -A d2 std2
#usermod -c laoda user2
组密码设置
#gpasswd std1
#gpasswd std2
#gpasswd -R std1
#gpasswd -R std2
不允许用户远程登录
usermod -s /sbin/nologin u1
passwd -d u1
passwd -l u1
扩展
/etc/shadow 用户密码文件
用户名:加密密码:最后一修改密码的天数(1970):密码生效最短时间:最长时间:警告时间:延长时间:精确过期时间(1970):保留字段
/etc/gshadow 组密码信息
组名:组密码:组长:组成成员
/etc/default/useradd 用户创建默认加载的配置文件
参数 | 含义 |
---|---|
GR0UP=100 | 这个选项用于建立用户的默认组,也就是说,在添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在添加用户时会自动建立和用户名相同的组作为此用户的初始组。也就是说这个选项并不会生效。 Linux 中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个和用户名相同的用户组作为用户的初始组;另一种是公共用户组机制,系统用 GID 是 100 的用户组作为所有新建用户的初始组。目前我们采用的是私有用户组机制。 |
HOME=/home | 指的是用户主目录的默认位置,所有新建用户的主目录默认都在 /home/下。 |
INACTIVE=-1 | 指的是密码过期后的宽限天数,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,代表所有新建立的用户密码永远不会失效。 |
EXPIRE= | 表示账号过期时间,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有失效时间,永久有效。 |
SHELL=/bin/bash | 表示所有新建立的用户默认 Shell 都是 /bin/bash。 |
SKEL=/etc/skel | 在创建一个新用户后,你会发现,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中自动复制过来的。因此,更改 /etc/skel 目录下的内容就可以改变新建用户默认主目录中的配置文件信息。 |
CREATE_MAIL_SPOOL=yes | 指的是给新建用户建立邮箱,默认是创建。也就是说,对于所有的新建用户,系统都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名相同。 |
/etc/login.defs 登录用户默认匹配的配置文件
注:配置文件中的#表示注释
MAIL_DIR /var/spool/mail \#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
PASS_MAX_DAYS 99999 \#密码最大有效期
PASS_MIN_DAYS 0 \#两次修改密码的最小间隔时间
PASS_MIN_LEN 5 \#密码最小长度,对于root无效
PASS_WARN_AGE 7 \#密码过期前多少天开始提示
#创建用户时不指定UID的话自动UID的范围
UID_MIN 500\#用户ID的最小值
UID_MAX 60000 \#用户ID的最大值
#自动组ID的范围
GID_MIN 500\#组ID的最小值
GID_MAX 60000 \#组ID的最大值
USERDEL_CMD /usr/sbin/userdel_local \#当删除用户的时候执行的脚本
CREATE_HOME yes \#使用useradd的时候是够创建用户目录
USERGROUPS_ENAB yes \#用MD5加密密码