一、课上笔记二、添加账号三、切换用户四、账户分类五、增加、修改、删除、查找用户六、组管理1、修改组:2、增加、删除、修改组七、密码管理1、密码保存文件:2、修改密码:3、锁定账号:4、锁定密码:5、创建用户脚本,实现循环创建用户
一、相关知识
普通用户的活动范围:家目录、/tmp/目录
查变量的时候 echo $PATH 要加上符号
利用su命令切换用户的时候加 - 与不加的区别:
有-:完全的切换用户,包括权限等
无-:系统不会改变环境变量($PATH)
二、添加账号
1、通过用户登录操作系统,使用计算机资源,操作系统通过识别用户来分配不同权限
//创建用户,切换用户登录
useradd Ljh1
passwd Ljh1
id Ljh1 //显示指定用户或当前用户(当未指定用户时)的用户与组信息。
uid=1000(robin) gid=1000(robin) 组=1000(robin)
//切换robin账号登录系统,此时所有操作都是以robin身份来执行的
[root@Ljh1 opt]# su - robin
上一次登录:四 7月 22 21:43:30 CST 2021从 192.168.208.132pts/2 上
[robin@Ljh1 ~]$
[robin@Ljh1 ~]$ 登出
//从远端主机,通过robin账号登录该主机。
[root@localhost ~]# ssh robin@192.168.208.129
robin@192.168.208.129's password:
Last login: Fri Jul 16 21:52:02 2021
问题: 普通账号和超级用户登录系统后,有什么区别?比如是否可以随意创建文件及目录?或者随意删除?
有用户权限的区别,普通用户只可以在/tmp/目录和家目录下活动,不可以随意删除
三、切换用户
su robin
[root@web1 ~]# whoami
root
[root@web1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@web1 ~]# su robin //切换用户时不加-横杠,系统不会改变环境变量
[robin@web1 root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
su - robin
[robin@web1 root]$ exit
[root@web1 ~]# whoami
root
[root@web1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@web1 ~]# su - robin #切换用户时加-,可以切换环境变量
上一次登录:四 7月 22 22:16:24 CST 2021pts/0 上
[robin@web1 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/robin/.local/bin:/home/robin/bin
[robin@web1 ~]$
四、账户分类
用户分类
系统每创建一个用户会分配一个ID号(也可自行指定),称为UID(User ID),系统通过UID来识别用户。
1、超级用户 0
2、系统用户 1-999 1-200 系统常用程序使用, 201-999 web database(不能登录系统,但是可以以该用户身份启动程序)
3、普通用户 1000
用户组分类
组分类用户组可以批量管理用户,用户组对应的ID号称为GID(Group ID )
1、超级用户组 0
2、系统用户组 1-999
3、普通用户组 1000
user1 uid= gid=
user2
[root@localhost ~]# vim /etc/passwd
robin❌1000:1000:robin:/home/robin:/bin/bash
用户名密码占位符uidgid描述家目录shell
五、增加、修改、删除、查找用户
//创建用户时的选项,ID会按照当前最大ID顺延+1
-u uid
-g gid
-c 描述
-d 家目录 (默认不设置)
-s shell位置 (/bin/bash, /sbin/nologin)
-G groups
//增加
useradd jack
//删除
userdel -r jack删除用户
-r 删除用户同时删除家目录
//修改
usermod jack
usermod -u 2500 jack //修改jack的用户ID
usermod -g upup jack //g后面+数字:修改组ID,+组:修改第一所属组
usermod -c 'test user' jack //修改注释信息
usermod -d /jackdir jack-d //修改用户家目录
usermod -s /bin/bash jack //修改是否远程登陆
//修改家目录
方法一:
usermod -d /tmp/jack jack
mv /home/jack /tmp/
方法二:
usermod -m -d /home/jack jack
//查找
id username
su - username
vim /etc/passwd
ssh username@localhost
六、组管理
1、修改组:
groups 用户 //这个用户属于哪些组
usermod -G u11 u1 将u1加入到u11组中
将一个用户加入到多个组中+a,在一个组中添加多个用户不用+a
usermod -g u1 u11 //将u11 的所属组修改为u1
groupmems -l -g g10:查看组成员都有谁
groups 用户 //这个用户属于哪些组
//分别创建两个用户 u1、u11
[root@web1 ~]# tail -1 /etc/passwd
u11:x:1010:1010::/home/u11:/bin/bash
[root@web1 ~]# su - u11
上一次登录:三 7月 14 19:02:36 CST 2021pts/0 上
//以u11身份在/tmp/目录下创建文件并编辑
[u11@web1 ~]$ touch /tmp/u11.txt
[u11@web1 ~]$ vim /tmp/u11.txt
hello 123
//切换到u1身份
[u11@web1 ~]$ su - u1
密码:
上一次登录:三 7月 14 19:17:46 CST 2021pts/0 上
[u1@web1 ~]$ vim /tmp/u11.txt 发现权限为只读,(尝试修改看是否成功)
[u1@web1 ~]$ 登出
[u11@web1 ~]$ 登出
//切换回超级用户
[root@web1 ~]#
usermod -G u11 u1 将u1加入到u11组中
[root@web1 ~]# ll /tmp/u11.txt
-rw-rw-r--. 1 u11 u11 19 7月 14 19:18 /tmp/u11.txt
grep u11 /etc/group 验证u1是否加入了u11组中,结果已经在组中
u11:x:1010:u1
id u11
groups u1 //查看用户属于哪些组
user1 : user1 user2
[root@web1 ~]# su - u1
上一次登录:三 7月 14 19:20:15 CST 2021pts/2 上
[u1@web1 ~]$
[u1@web1 ~]$
[u1@web1 ~]$ vim /tmp/u11.txt 发现可以编辑
//如何看某用户对文件有什么权限?
su - u11
touch /tmp/u11.txt
root@web1 ~]# ll /tmp/u11.txt
-rw-rw-r--. 1 u11 u11 19 7月 14 19:18 /tmp/u11.txt u1
rw- rw- r--
所有者 所属组 其他人
1、先看u1是否是文件u11.txt的 所有者,是就看所有者权限,否则继续向下匹配
2、看u1是否是文件的所属组成员,是则看文件所属组权限,否则继续向下匹配,就属于其他人权限
natasha
whoami --- natahsa
su - root
usermod -G u11 natasha
id natahsa
grep natahsa /etc/group
u11:x:1011:natasha
su - natahsa
vim /tmp/u11.txt
ADSFAF 可修改
1、创建用户tom1 ,查看该用户信息,和组信息
whoami ---- root
useradd tom1
passwd tom1
grep tom1 /etc/passwd
grep tom1 /etc/group
2、切换tom1登录系统,在/tmp下创建文件/tom1.txt
su - tom1
touch /tmp/tom1.txt
vim /tmp/tom1.txt
hello123
3、并查看文件的详细信息,主要查看文件权限及所有者、所属组
ll /tmp/tom1.txt
4、切换超级用户root后,再创建用户tom2,切换tom2登录,编辑/tmp/tom1.txt,发现没有写入权限
su - root
useradd tom2
passwd tom2
su - tom2
vim /tmp/tom1.txt #发现没有写入权限,只有只读,如何才能写入呢,看下一步
5、切换至root,将tom2加入到tom1组内,查看tom2是否在tom1组内
su - root
usermod -G tom1 tom2
grep tom1 /etc/group
6、切换tom2登录,编辑/tmp/tom1.txt,发现可以写入和读取。
su - tom2
vim /tmp/tom1.txt 可以编辑
2、增加、删除、修改组
[root@localhost ~]#groupadd upup //增加组
[root@localhost ~]# groupadd -g 3000 uplooking //修改组ID
[root@localhost ~]# groupdel uplooking //删除组
[root@localhost ~]# groupmod -n newuplooking uplooking //修改组名
[root@localhost ~]# groupmems -l -g g10 //查看这个组里都有谁
[root@localhost ~]# vim /etc/group
upup:x:2006:
组名组密码组的ID用户列表
七、密码管理
1、密码保存文件:
vim /etc/shadow
robin:!!:17302:0:99999:7:::
!! 锁定密码状态
永久不能登录系统
密码的最后一次修改时间(从1970年1月1日至今的天数)18834=今天
密码的最小时间(和第三列比较,密码修改相隔时间,或理解为密码自最后一次修改后多少天内不能再重复修改)
密码的最大时间(密码有效期) 99999表示永久不过期(和第3列比,相当于自最后一次修改多久后必须变更密码,否则过期)
密码过期前警告时间(和第5列比,在过n天你的密码就过期了,需要重设密码。)
密码过期后帐号(宽限时间,第五列密码的最大时间到期后,还可以使用系统的宽限时间,该期间中可以继续使用系统,但是再次登入系统时强制修改密码,否则无法进入)
帐号有效期(账号实效后,无论密码是否过期都不能使用。)
保留列
2、修改密码:
echo redhat | passwd --stdin user1 //交互式修改密码
3、锁定账号:
[root@localhost ~]# usermod -L user1 //锁定
[root@localhost ~]# su - user2
Last login: Thu Dec 16 14:05:46 CST 2021 on pts/0
[user2@localhost ~]$ su - user1
Password:
su: Authentication failure
[root@localhost ~]# usermod -U user1 //解除锁定
[root@localhost ~]# su - user2
Last login: Thu Dec 16 16:26:26 CST 2021 on pts/0
[user2@localhost ~]$ su - user1
Password:
\Last login: Thu Dec 16 14:16:38 CST 2021 on pts/0
Last failed login: Thu Dec 16 16:26:37 CST 2021 on pts/0
There was 1 failed login attempt since the last successful login.
4、锁定密码:
passwd -l robin
passwd -S robin
passwd -u robin
5、创建用户脚本,实现循环创建用户
for i in {1..3};do useradd U$i;done
//其他,感兴趣自己做
2、scripts
#!/bin/bash
echo 'hello world'
3、vim /root/user.sh
#!/bin/bash
for i in {1..3};do
useradd user$i
echo 123456 | passwd --stdin user$i
done
sh /root/user.sh