前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >深入理解 Linux 用户和用户组的基本概念 + 相关命令 (一篇就够)

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

作者头像
神秘泣男子
发布2024-06-03 17:54:57
发布2024-06-03 17:54:57
86200
代码可运行
举报
文章被收录于专栏:运维知识运维知识
运行总次数:0
代码可运行

今天带大家深入理解Linux用户和组

基本概念

Linux 的用户:

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

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

Linux 用户组:

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

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

总结:

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

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

特点

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

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

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

1. 用户命令

1. 创建用户

useradd name 直接创建用户 useradd [选项] name

选项

代码语言:javascript
代码运行次数:0
复制
-c     指定一段注释性描述。
-d     目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g     用户组 指定用户所属的用户组。
-G     用户组,用户组 指定用户所属的附加组。
-s     Shell文件 指定用户的登录Shell。
-u     指定UID
2. 设置 / 修改密码

passwd name 直接修改name的密码 passwd [选项] name

选项

代码语言:javascript
代码运行次数:0
复制
-d        清空密码
-l        锁定
-u        解锁
-S        查看锁定状态
3. 修改用户属性

usermod [选项] 用户名

选项

代码语言:javascript
代码运行次数:0
复制
-l        修改name
-g        修改组 也是用户的 GID
-u        修改用户UID

也有很多选项 比如创建时候用的 修改的时候也可以使用    就达到修改的效果
4. 删除用户账户

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

删除已存在的账户 userdel name

选项

代码语言:javascript
代码运行次数:0
复制
-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 文件的格式如下:

代码语言:javascript
代码运行次数:0
复制
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

选项

代码语言:javascript
代码运行次数:0
复制
-g        指定GID创建用户组
2.组的 删除

groupdel groupname

3.修改GID

groupmod -g new—GID groupname

4.给组添加用户

gpasswd [选项] 用户名 组名

选项

代码语言:javascript
代码运行次数:0
复制
-a         添加用户
-d         删除用户
-M         定义组内用户的列表
5. /etc/group

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

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

代码语言:javascript
代码运行次数:0
复制
groupname:password:GID:user_list

组名     密码       GID      用户列表
6./etc/gshadow

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

3.查询命令

查询当前登录用户信息
代码语言:javascript
代码运行次数:0
复制
whoami

查询指定用户信息

代码语言:javascript
代码运行次数:0
复制
id username

查询所有用户信息

代码语言:javascript
代码运行次数:0
复制
cat /etc/passwd

查询所有用户组信息

代码语言:javascript
代码运行次数:0
复制
getent group

查询用户所属的用户组

代码语言:javascript
代码运行次数:0
复制
groups username

查询用户的主用户组

代码语言:javascript
代码运行次数:0
复制
id -g -n username
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本概念
  • 特点
  • 1. 用户命令
    • 1. 创建用户
    • 2. 设置 / 修改密码
    • 3. 修改用户属性
    • 4. 删除用户账户
    • 5. /etc/passwd
    • 6. /etc/shadow
  • 2. 组的命令
    • 1. 组的 创建
    • 2.组的 删除
    • 3.修改GID
    • 4.给组添加用户
    • 5. /etc/group
    • 6./etc/gshadow
  • 3.查询命令
    • 查询当前登录用户信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档