Linux操作系统:用户和组的管理
在Linux管理中,用户和组的管理是一个重要的方面。它不仅涉及到系统的安全性,还会影响到资源的分配和权限的控制。本文将详细介绍Linux系统中用户和组的管理,以帮助您掌握这方面的知识。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。各技术博客社区平台的优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk
)
💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 群里红包不断,异常活跃,感兴趣的加我vx(ID:
gylzbk
),拉你进群,互相学习共同进步。
一、用户管理
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 创建一个开发者组并添加用户
- 创建一个开发者组:
sudo groupadd developers
- 创建两个用户
john
和mary
并将其加入开发者组:
sudo useradd john
sudo passwd john
sudo usermod -aG developers john
sudo useradd mary
sudo passwd mary
sudo usermod -aG developers mary
- 验证用户是否添加到组:
groups john
groups mary
4.2 设置用户密码过期时间
- 为用户
john
设置密码过期时间:
sudo chage -M 30 john
-M
表示最大间隔天数,即密码过期之前的天数。
- 查看用户
john
的密码信息:
sudo chage -l john
4.3 删除用户和组
- 删除用户
mary
并删除其主目录:
sudo userdel -r mary
- 删除组
developers
:
sudo groupdel developers
五、总结
通过学习本文,您应该掌握了在Linux系统中管理用户和组的基本操作。用户和组管理不仅涉及到系统安全,还影响着资源分配和权限控制。通过合理的用户和组管理,可以提高系统的安全性和可维护性。希望本文对您有所帮助,能够在实践中应用这些知识。
如果您有任何问题或建议,请在评论区留言,我们将非常乐意解答您的疑问。谢谢阅读!
- 点赞
- 收藏
- 关注作者
评论(0)