Linux 用户管理和组的管理
一、Linux下用户管理
Linux下一切皆文件,所以用户管理的是对相应的文件进行管理
㈠用户的分类:
1、超级用户
超级用户,也叫管理员,root。该用户(root)具有所有权限,UID=0 并且绝对只能是0。
2、系统用户
系统用户,也叫程序用户。一般都是由程序创建,用于程序或者服务运行时候的身份。 默认不允许登录系统。1<=UID<=499 比如后面要学的web服务的管理用户apache,文件共享ftp服务的管理用户ftp等 注意:Centos7/RHEL8中,系统用户UID范围:1<=UID<=999
3、普通用户
普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。 默认可以登录系统。500<=UID<=60000 注意:Centos7/RHEL8中,普通用户UID范围:1000<=UID<=60000
特别说明:
1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息
2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等
3. 今天我们讨论的用户指的是普通用户,即由管理员创建的用户
㈡用户的基本管理:
1.创建用户(useradd)
用法:
useradd [选项] 用户名
> 常用选项:
> -u 指定用户uid,唯一标识,必须唯一
> -g 指定用户的默认组(主组)
> -G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
> -d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
> -s 指定用户默认shell
练习:
[root@localhost ~]# useradd student
[root@localhost ~]# id student
uid=1008(student) gid=1008(student) 组=1008(student)
[root@localhost ~]# su student
[student@localhost root]$ ls
1.sh 模板 图片 下载 桌面 ddd sh test2
公共 视频 文档 音乐 anaconda-ks.cfg initial-setup-ks.cfg test top.txt
2.用户密码设置(passwd)
用法:
passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码
echo 123|passwd --stdin stu2
练习:
[root@localhost ~]# passwd student
更改用户 student 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
#(---------切换身份试试------)
[root@localhost ~]# su student
[student@localhost root]$ passwd
更改用户 student 的密码 。
Current password:
Current Password:
passwd: 鉴定令牌操作错误 (密码必须为中级规范以上)
[student@localhost root]$ passwd
更改用户 student 的密码 。
Current password:
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[student@localhost root]$ exit
exit
#(---------切换root身份------)
[root@localhost ~]# echo 123|passwd --stdin student
更改用户 student 的密码 。
passwd:所有的身份验证令牌已经成功更新。
3.修改用户信息(usermod)
用法:
usermod [选项] 用户名
> 常用选项:
> -u 指定用户uid,唯一标识,必须唯一
> -g 指定用户的默认组(主组)
> -G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
> -d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
> -s 指定用户默认shell
> -m 移动用户家目录,和-d一起使用
练习:
[root@localhost ~]# id student
uid=1008(student) gid=1008(student) 组=1008(student)
#(---------修改位置------)
[root@localhost ~]# usermod -u 1100 student
[root@localhost ~]# tail -5 /etc/passwd
user05:x:1007:1007::/home/user05:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
nginx:x:976:899:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
student:x:1100:1008::/home/student:/bin/bash
4.删除用户(userdel)
用法:
userdel [选项] 用户名
> 常用选项:
> -r 删除用户并且移除其家目录和邮箱
> -f 强制删除正在登录的用户
练习:
[root@localhost ~]# userdel -r student
[root@localhost ~]# id student
id: “student”:无此用户 (无此用户就是被删除了~)
二、Linux下组管理
㈠ 组和用户的关系
核心:组的目的是为了方便管理用户
用户是操作系统上管理维护系统或服务的人 组是用户的一个属性信息 任何一个用户默认都会有一个主组(默认组) 一个用户除了主组也可以有多个其他组(附加组)
一问:用户的主组和附加组到底有啥关系呢?
答:用户的主组和附加组半毛钱关系都木有
二问:那要这个主组或者附加组有啥用呢?
答:肯定是有用的,组的目的是方便管理用户,用户的目的是管理操作文件,文件就有权限这个属性。
㈡ 组的管理
1.创建组(groupadd)
用法:
groupadd [选项] 组名
> 常用选项:
> -g 指定组的GID(编号),默认唯一
练习:
[root@localhost ~]# groupadd admin6
[root@localhost ~]# tail -5 /etc/group
user05:x:1007:
apache:x:48:
nginx:x:899:
mysql:x:27:
admin6:x:1008:
[root@localhost ~]# groupadd -g 1111 stsadmin
[root@localhost ~]# tail -5 /etc/group
apache:x:48:
nginx:x:899:
mysql:x:27:
admin6:x:1008:
stsadmin:x:1111:
2.删除组(groupdel)
用法:
groupdel 组名
练习:
[root@localhost ~]# groupdel admin6
[root@localhost ~]# tail /etc/group
admin:x:900:user01,user02
user01:x:1003:
user02:x:1004:
user03:x:1005:
user04:x:1006:
user05:x:1007:
apache:x:48:
nginx:x:899:
mysql:x:27:
stsadmin:x:1111:
3.组成员管理(gpasswd)
用法:
gpasswd [选项] 组名
常见选项:
> -a 添加用户到组
> -d 从组中删除成员
> -A 指定管理员
> -M 指定组成员,可以批量添加用户到组中
> -r 删除密码
gpasswd 组名 给组设置密码
练习:
[root@localhost ~]# usermod -G stsadmin user03
#(---------使用gpasswd -a用法------)
[root@localhost ~]# gpasswd -a user03 stsadmin
正在将用户“user03”加入到“stsadmin”组中
[root@localhost ~]# id user03
uid=1005(user03) gid=1005(user03) 组=1005(user03),1111(stsadmin)
[root@localhost ~]# tail /etc/group
user01:x:1003:
user02:x:1004:
user03:x:1005:
user04:x:1006:
user05:x:1007:
apache:x:48:
nginx:x:899:
mysql:x:27:
admin6:x:1008:
stsadmin:x:1111:user03
#(---------使用gpasswd -d 移除------)
[root@localhost ~]# gpasswd -d user03 stsadmin
正在将用户“user03”从“stsadmin”组中删除
[root@localhost ~]# tail /etc/group
user01:x:1003:
user02:x:1004:
user03:x:1005:
user04:x:1006:
user05:x:1007:
apache:x:48:
nginx:x:899:
mysql:x:27:
admin6:x:1008:
stsadmin:x:1111:
下一篇讲解vim的用法,嘿嘿~后续还会继续更新其他本章博客难免有些不足,恳请各位大佬不吝赐教!(╹▽╹)