Linux操作系统:用户和组的管理

举报
ImAlex 发表于 2024/10/29 18:26:47 2024/10/29
【摘要】 在Linux管理中,用户和组的管理是一个重要的方面。它不仅涉及到系统的安全性,还会影响到资源的分配和权限的控制。本文将详细介绍Linux系统中用户和组的管理,以帮助您掌握这方面的知识。

在Linux管理中,用户和组的管理是一个重要的方面。它不仅涉及到系统的安全性,还会影响到资源的分配和权限的控制。本文将详细介绍Linux系统中用户和组的管理,以帮助您掌握这方面的知识。

🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。各技术博客社区平台的优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 群里红包不断,异常活跃,感兴趣的加我vx(ID:gylzbk),拉你进群,互相学习共同进步。

image.png

一、用户管理

1.1 用户的基本概念

在Linux系统中,用户是指能够登录并使用系统的主体,每一个用户都有一个唯一的用户名和用户ID(UID)。为了方便系统管理,用户通常被归类到组中,一个组内可以包含多个用户。

1.2 用户的添加

使用useradd命令可以添加新用户。使用方法如下:

sudo useradd <用户名>

举例:创建一个用户名为john的新用户:

sudo useradd john

1.2.1 设置用户密码

创建用户后,需要为其设置密码,使用passwd命令:

sudo passwd <用户名>

继续我们的例子,为john设置密码:

sudo passwd john

系统会提示输入新密码并确认:

Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

1.3 用户的信息修改

使用usermod命令可以修改现有用户的信息。例如,可以修改用户的登录名、主目录、默认shell等。

修改john的登录名为john_doe

sudo usermod -l john_doe john

1.4 用户的删除

使用userdel命令可以删除用户:

sudo userdel <用户名>

删除用户john_doe

sudo userdel john_doe

可以使用参数-r连同用户的主目录一起删除:

sudo userdel -r john_doe

1.5 查看用户信息

1.5.1 查看所有用户

可以查看/etc/passwd文件来查看系统中的所有用户:

cat /etc/passwd

每一行为一个用户的信息,包括用户名、密码占位符、UID、GID、描述、主目录、默认shell等。

1.5.2 查看当前用户

使用whoami命令可以查看当前登录的用户名:

whoami

使用id命令可以查看当前用户的UID、GID和所属的组:

id

二、组的管理

2.1 组的基本概念

在Linux中,组是指一组用户的集合,具有相同的权限。在/etc/group文件中定义了组的信息。

2.2 组的添加

使用groupadd命令添加新组:

sudo groupadd <组名>

举例:创建一个名为developers的新组:

sudo groupadd developers

2.3 用户加入组

使用usermod命令可以将用户加入到某个组中,用法如下:

sudo usermod -aG <组名> <用户名>

例如,将用户john加入到developers组:

sudo usermod -aG developers john

-a表示附加而不是替换当前用户的组,-G表示后跟的组列表。

2.4 组的信息修改

使用groupmod命令可以修改组的信息,例如组名和GID:

sudo groupmod -n <新组名> <旧组名>

将组名从developers修改为devs

sudo groupmod -n devs developers

2.5 组的删除

使用groupdel命令删除组:

sudo groupdel <组名>

删除组devs

sudo groupdel devs

2.6 查看组信息

可以查看/etc/group文件来查看系统中的所有组:

cat /etc/group

每一行为一组的信息,包括组名、组密码占位符、GID和组成员。

使用groups命令可以查看当前用户所属的组:

groups

使用groups <用户名>可以查看指定用户所属的组:

groups john

三、用户和组的默认文件配置

3.1 /etc/passwd文件

/etc/passwd文件记录了所有用户的基本信息。每一行格式如下:

用户名:密码占位符:用户ID:ID:描述:主目录:默认Shell

例子:

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

3.2 /etc/group文件

/etc/group文件记录了所有组的信息。每一行格式如下:

组名:密码占位符:ID:组成员

例子:

developers:x:1002:john,mary

3.3 /etc/shadow文件

/etc/shadow文件记录了用户的密码和其他信息。每一行格式如下:

用户名:加密密码:上次改密时间:最小间隔天数:最大间隔天数:警告天数:不活动天数:过期天数:保留字段

例子:

john:$6$randomsalt$encryptedpassword:19000:0:99999:7:::

四、实践案例

4.1 创建一个开发者组并添加用户

  1. 创建一个开发者组:
sudo groupadd developers
  1. 创建两个用户johnmary并将其加入开发者组:
sudo useradd john
sudo passwd john
sudo usermod -aG developers john

sudo useradd mary
sudo passwd mary
sudo usermod -aG developers mary
  1. 验证用户是否添加到组:
groups john
groups mary

4.2 设置用户密码过期时间

  1. 为用户john设置密码过期时间:
sudo chage -M 30 john

-M表示最大间隔天数,即密码过期之前的天数。

  1. 查看用户john的密码信息:
sudo chage -l john

4.3 删除用户和组

  1. 删除用户mary并删除其主目录:
sudo userdel -r mary
  1. 删除组developers
sudo groupdel developers

五、总结

通过学习本文,您应该掌握了在Linux系统中管理用户和组的基本操作。用户和组管理不仅涉及到系统安全,还影响着资源分配和权限控制。通过合理的用户和组管理,可以提高系统的安全性和可维护性。希望本文对您有所帮助,能够在实践中应用这些知识。

如果您有任何问题或建议,请在评论区留言,我们将非常乐意解答您的疑问。谢谢阅读!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。