温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux如何新建用户和组

发布时间:2022-02-19 10:31:23 来源:亿速云 阅读:265 作者:小新 栏目:开发技术
# Linux如何新建用户和组 ## 1. 用户和组的基本概念 在Linux系统中,用户和组是权限管理的基础单元。理解它们的关系对于系统管理至关重要。 ### 1.1 用户(User) Linux是一个多用户操作系统,每个用户拥有: - 唯一的用户ID(UID) - 用户名(用于登录) - 家目录(通常位于/home/username) - 默认shell - 所属的主组和附加组 ### 1.2 组(Group) 组是用户的集合,主要作用: - 简化权限管理 - 允许资源共享 - 每个组有唯一的组ID(GID) - 用户可以有1个主组和多个附加组 ## 2. 用户管理命令 ### 2.1 useradd命令 最基础的用户创建命令: ```bash sudo useradd [选项] 用户名 

常用选项: - -m:创建用户家目录(/home/用户名) - -s:指定默认shell(如/bin/bash) - -g:指定主组 - -G:指定附加组 - -u:手动指定UID - -d:指定家目录路径

示例:

sudo useradd -m -s /bin/bash -G developers,testers alice 

2.2 adduser命令(交互式)

某些发行版(如Debian)提供的更友好工具:

sudo adduser username 

会交互式提示设置密码等信息。

2.3 passwd命令

为用户设置密码:

sudo passwd username 

2.4 usermod命令

修改用户属性:

sudo usermod [选项] 用户名 

常用选项: - -aG:追加附加组(必须与-G一起使用) - -l:修改用户名 - -L:锁定账户 - -U:解锁账户

示例:将用户加入sudo组

sudo usermod -aG sudo username 

2.5 userdel命令

删除用户:

sudo userdel [选项] 用户名 

常用选项: - -r:同时删除家目录和邮件池

3. 组管理命令

3.1 groupadd命令

创建新组:

sudo groupadd [选项] 组名 

选项: - -g:指定GID

示例:

sudo groupadd -g 1005 developers 

3.2 groupmod命令

修改组属性:

sudo groupmod [选项] 组名 

选项: - -n:修改组名 - -g:修改GID

3.3 groupdel命令

删除组:

sudo groupdel 组名 

注意:不能删除用户的主组(需先修改用户主组)

4. 配置文件解析

4.1 /etc/passwd

用户账户信息,每行格式:

username:x:UID:GID:描述:家目录:shell 

示例:

alice:x:1001:1005:Alice Developer:/home/alice:/bin/bash 

4.2 /etc/shadow

加密密码存储文件,每行格式:

用户名:加密密码:最后修改日:最小天数:最大天数:警告期:失效期:保留字段 

4.3 /etc/group

组信息文件,每行格式:

组名:密码占位符:GID:组成员列表 

示例:

developers:x:1005:alice,bob 

5. 实战案例

5.1 创建开发团队账户

# 创建组 sudo groupadd devteam -g 2000 # 创建用户并加入组 sudo useradd -m -s /bin/bash -G devteam dev1 sudo useradd -m -s /bin/bash -G devteam dev2 # 设置密码 sudo passwd dev1 sudo passwd dev2 # 创建共享目录 sudo mkdir /opt/devprojects sudo chown :devteam /opt/devprojects sudo chmod 2775 /opt/devprojects # 设置SGID保持组权限 

5.2 批量创建用户

使用脚本批量创建:

#!/bin/bash for user in user1 user2 user3; do sudo useradd -m -s /bin/bash $user echo "$user:password123" | sudo chpasswd done 

或者从文件读取:

# users.txt格式:用户名:UID:GID:描述 while IFS=: read -r username uid gid comment; do sudo useradd -u $uid -g $gid -c "$comment" -m $username done < users.txt 

6. 高级技巧

6.1 设置密码过期策略

sudo chage [选项] 用户名 

选项: - -M:密码最大有效期(天) - -W:密码过期前警告天数 - -I:密码过期后锁定账户天数

6.2 限制用户资源

编辑/etc/security/limits.conf

username hard nproc 50 # 限制进程数 username hard nofile 100 # 限制打开文件数 

6.3 配置sudo权限

编辑/etc/sudoers(建议使用visudo):

username ALL=(ALL) NOPASSWD: ALL # 免密码sudo %groupname ALL=(ALL) ALL # 组权限 

7. 故障排查

7.1 用户无法登录

检查步骤: 1. 确认密码正确:sudo passwd -S username 2. 检查shell设置:grep username /etc/passwd 3. 检查账户是否锁定:sudo passwd -S username 4. 检查/etc/nologin文件是否存在

7.2 权限问题

诊断命令:

id username # 查看用户组信息 groups username # 查看用户所属组 ls -ld /path # 查看目录权限 getfacl /path # 查看ACL权限 

8. 安全最佳实践

  1. 遵循最小权限原则
  2. 为服务账户使用/sbin/nologin shell
  3. 定期审查用户和权限:
     sudo awk -F: '($3 >= 1000) {print}' /etc/passwd 
  4. 禁用不必要的账户:
     sudo usermod -L username 
  5. 使用SSH密钥认证替代密码

9. 总结

Linux用户和组管理是系统管理员的核心技能。通过合理规划用户、组和权限结构,可以实现: - 清晰的权限隔离 - 高效的协作环境 - 安全的系统配置

掌握本文介绍的命令和技巧,您将能够轻松管理Linux系统中的用户和组资源。 “`

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI