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

相关推荐
Coder个人博客3 小时前
Linux6.19-ARM64 mm init子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
济6173 小时前
ARM Linux 驱动开发篇----Linux驱动开发与裸机开发的区别---- Ubuntu20.04
linux·arm开发·驱动开发
慎思知行3 小时前
Discord中创建机器人的流程
linux·服务器·机器人
enbug3 小时前
编译安卓内核:以坚果R1、魔趣MK100(Android 10)系统为例
android·linux
玉梅小洋3 小时前
Linux命令详解 —— IP 命令及永久配置
linux·运维·tcp/ip
江畔何人初3 小时前
k8s中Role与networkpolicy区别
linux·运维·云原生
Madison-No73 小时前
【Linux】一切皆文件的理解 && 缓冲区 && 简易设计libc库
linux·运维·服务器
快来吃饭�4 小时前
Ubuntu-20.04 gem5 构建并实现一个简单的配置脚本
linux·ubuntu·系统架构
daemon.qiang4 小时前
mplayer使能支持vaapi
linux·centos