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)。

相关推荐
xiaoye-duck12 分钟前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
zx_741484811 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS1 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿1 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
百万蹄蹄向前冲3 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
彧azz3 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
susplus4 小时前
【ARM 裸机开发 (IMX6ULL-mini)】GNU工具、Makefile 工程构建、链接脚本详解|C 语言点灯 + 蜂鸣器驱动
linux·arm·makefile·imx6ull
Shadow(⊙o⊙)4 小时前
Linux进阶知识1.0
linux·运维·服务器
>Andre<4 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件