深入理解 Linux 用户和用户组的基本概念 + 相关命令 (一篇就够)

简介: 深入理解 Linux 用户和用户组的基本概念 + 相关命令 (一篇就够)

基本概念

Linux 的用户:


Linux是一个多用户多任务的操作系统,每个用户都需要一个账户才能登录系统并使用系统的资源


        Linux中的用户账户可以分为很多类:常用的  普通用户和超级 用户。普通用户只能访问自己拥有或被赋予权限的资源,超级用户(root)拥有对所有系统资源的完全访问权限。

Linux 用户组:

除了用户账户外,Linux 还支持用户的概念。用户组是具有相同特性的用户的集合。用户可以属于多个用户组,每个用户组都有一个唯一的组 ID(GID)

  用户组的主要作用是用于控制用户对文件和目录的访问权限。当用户创建一个文件或目录时,可以指定该文件或目录的所有者、所有组和其他组。所有者拥有对该文件或目录的完全访问权限,所有组的成员拥有对该文件或目录的读写权限,其他组的成员则只能读取该文件或目录。


总结:

用户:是 Linux 系统中可以访问系统资源的人或程序。每个用户都有一个唯一的用户名和密码,用来标识用户身份。

:是具有相同特性的用户的集合。每个用户都属于一个或多个组。组可以用来简化对用户的管理,并为用户提供安全性保护。


特点

用户和组都是由一个数字 ID(UID 和 GID)来标识的。UID 是用户 ID,GID 是组 ID。

每个用户只能有一个主用户组。主用户组是用户创建文件和目录时默认的组。

一个用户可以属于多个组。


1. 用户命令

1. 创建用户

useradd   name    直接创建用户

useradd   [选项]    name

选项

-c     指定一段注释性描述。
-d     目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g     用户组 指定用户所属的用户组。
-G     用户组,用户组 指定用户所属的附加组。
-s     Shell文件 指定用户的登录Shell。
-u     指定UID


2. 设置 / 修改密码

passwd   name        直接修改name的密码

passwd [选项]  name

选项

1. -d        清空密码
2. -l        锁定
3. -u        解锁
4. -S        查看锁定状态


3. 修改用户属性

usermod   [选项]              用户名

选项

1. -l        修改name
2. -g        修改组 也是用户的 GID
3. -u        修改用户UID
4. 
5. 也有很多选项 比如创建时候用的 修改的时候也可以使用    就达到修改的效果


4. 删除用户账户


如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除已存在的账户

userdel   name

选项

-r        删除账户并且将用户的宿主目录删除


5. /etc/passwd

用于存储系统用户信息的文本文件 ,包含了关于系统中每个用户的基本信息,每一行表示一个用户。每行由多个字段组成,字段之间使用冒号 : 分隔。




用户名 :密码占位符 :UID  :GID : 备注标识信息 :用户主目录 :用户登录启动的shell


举个例子


john:x:1000:1000:John Doe:/home/john:/bin/bash



表示一个用户名为 "john" 的用户,其 UID 为 1000,所属组 GID 为 1000,全名为 "John Doe",主目录为 "/home/john",登录后启动的 shell 为 "/bin/bash"。


很多人不理解X是什么??


由于安全原因,实际密码信息已经被移到 /etc/shadow 文件中,而 /etc/passwd 中的密码字段仅包含占位符(通常为 x)

6. /etc/shadow

一个用于存储系统用户密码及相关安全信息的文件,通常位于 Linux 系统中。这个文件的目的是保护用户密码的安全性,因此实际的密码信息以及其他安全相关的信息都存储在这个文件中。


每一行都包含了一个用户的密码信息。一个典型的 /etc/shadow 文件的格式如下:

username:password:last_change:min_age:max_age:warning:inactive:expire:reserved
 
username: 用户名。
password: 加密后的用户密码。
last_change: 上次修改密码的日期(从 1970 年 1 月 1 日算起的天数)。
min_age: 密码修改的最短间隔时间(天数)。
max_age: 密码的最大使用期限(天数)。
warning: 密码过期前的警告天数。
inactive: 密码过期后的不活动期限(天数)。
expire: 密码过期的日期(从 1970 年 1 月 1 日算起的天数)。
reserved: 保留字段。

2. 组的命令

1. 组的 创建

groupadd [选项]  groupname

选项

-g        指定GID创建用户组

2.组的 删除

groupdel groupname



3.修改GID

groupmod -g new—GID groupname

4.给组添加用户

gpasswd [选项] 用户名   组名

选项

1. -a         添加用户
2. -d         删除用户
3. -M         定义组内用户的列表



5. /etc/group

一个用于存储系统用户组信息的文本文件,每一行表示一个用户组。每行由多个字段组成,字段之间使用冒号:分隔。

一个典型的/etc/group文件的格式如下:

1. groupname:password:GID:user_list
2. 
3. 组名     密码       GID      用户列表

6./etc/gshadow


文件用于存储用户组的密码信息,类似于/etc/shadow文件用于存储用户的密码信息


3.查询命令

查询当前登录用户信息

whoami


查询指定用户信息

id username

查询所有用户信息

cat /etc/passwd

查询所有用户组信息

getent group

查询用户所属的用户组

groups username

查询用户的主用户组

id -g -n username
相关文章
|
5天前
|
缓存 监控 Linux
|
2天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
14 7
|
1天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
9 5
|
3天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
27 7
|
2天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
10 4
|
1天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
6 2
|
2天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
12 3
|
3天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
27 5
|
6天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
15 2
|
7天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
23 4
下一篇
无影云桌面