Linux基础知识13:用户、用户组管理

Linux是多用户操作系统。系统允许注册多个用户,且用户还可以组成用户组。一个用户可以参加多个用户组。如此,就产生了用户、用户组的管理问题。这些管理问题主要涉及用户、用户组的创建、删除以及权限控制等。关于用户、用户组的绝大部分操作命令都需要root权限,所以操作时应取得root权限,或在命令前加上sudo。有些查询命令会因某些参数影响短时间内不会自行退出运行界面,此时可使用Ctr_c强行退出。

一、用户组管理

1.创建用户组命令groupadd

语法:groupadd 用户组名

选项:无

参数:用户组名

举例:创建一个名为mygroup的用户组,命令如下:

groupadd mygroup

2.删除用户组命令 groupdel

语法:groupdel 用户组名

选项:无

参数:用户组名

举例:删除前面创建的mygroup用户组,命令如下:

groupdel mygroup

3.查看用户所属组命令id

语法:id 用户名

选项:无

参数:用户名,被查看的用户名省略时表示查询当前用户

4.加入用户组命令 usermod

语法:usermod -aG 用户组名 用户名

选项:-aG,usermod还有其它功能,此选项用于修改用户所属组

说明:该命令选项的作用是用户加入新的用户组,用户参加的其它用户组并不退出。

举例:将用户user1加入到mygroup用户组,同时不影响user1曾加入的其它组,命令如下:

usermod -aG mygroup user1

5.退出用户组命令 gpasswd

语法:gpasswd -d 用户名 用户组名

选项:-d,gpasswd还有其它功能,-d用于退出用户组

参数:用户名、用户组名

举例:将用户user1从用户组group1中退出,命令如下:

gpasswd -d user1 group1

6.查询当前系统中用户组 getent group

语法:getent group

参数:group,用户组

说明:

a.运行结果包含三份用冒号相隔的信息,分别是:组名称,密码(x表示有密码),组的ID。

b.如果仅想显示普通用户组,过滤掉系统用户,可在命令后再加参数:{1000..60000}。

二、用户管理

1.创建用户命令 useradd

功能:在安装Linux时曾设置过用户名、密码等,这仅是创建用户的一种方式。使用这个创建用户命令可以随时创建新的用户。

语法:useradd -g -d 用户名

选项:-g,指定用户的组,如不指定则会自动创建组名与用户名的相同的组。

-d,指定用户工作目录;如不指定可使用-m生成:/home/用户名的工作目录。

说明:指定用户组、指定工作目录应当也已存在。

举例:创建一个名为stu1的用户,加入stu用户组,使用默认工作目录,目录如下:

useradd -g stu stu1

2.用户切换命令 su

功能:上一篇文章中曾涉及su作为切换到root用户的命令,普通用户间的切换也是使用su命令。

语法:su - 用户名

说明:

a.su命令后加上选项"-",表示切换用户的同时也切换环境变量。

b.退出切换的命令是:exit

3.删除用户 userdel

语法:userdel -r 用户名

选项:-r,使用-r选项表示在删除用户的同时删除其工作目录

参数:用户名

说明:

举例:删除用户stu1,同时删除其工作目录,命令如下:

userdel -r stu1

4.查看当前系统中用户命令 getent passwd

语法:getent passwd

选项:无

参数:passwd,以查询密码方式查找用户列表

说明:

a.用户类别:超级用户(ID=0),即root用户,权限最高;系统用户(ID=1-999),系统内建的用户;普通用户(ID=1000~60000),Linux用户建立的账户。

b.如果仅查询普通用户的信息,可在命令后加上查询范围做参数,命令为:getent passwd {1000..60000}。

c.查询结果中有七份信息(用冒号分隔),分别是:用户名、密码(用x表示)、用户ID、组ID、描述信息(一般空)、工作目录、执行终端(默认bash)。

相关推荐
HideF10 小时前
Linux sudo
linux
FlightYe11 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
蹊黎12 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
牛马鸡niumasi13 小时前
【Linux】C语言文件操作
linux
say_fall13 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii14 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
AI+程序员在路上14 小时前
RV1126B 上支持的模型及全流程应用--从CNN及语音到 LLMVLM 与跨平台选型
linux·c语言·人工智能
默|笙14 小时前
【Linux网络】传输层协议TCP(1)---TCP报文介绍
linux·网络·tcp/ip
相思难忘成疾14 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
用户41071920132514 小时前
用 systemd 从零做一个系统健康巡检服务:脚本、沙箱与磁盘满排查实战
linux·ubuntu