# 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
某些发行版(如Debian)提供的更友好工具:
sudo adduser username
会交互式提示设置密码等信息。
为用户设置密码:
sudo passwd username
修改用户属性:
sudo usermod [选项] 用户名
常用选项: - -aG
:追加附加组(必须与-G
一起使用) - -l
:修改用户名 - -L
:锁定账户 - -U
:解锁账户
示例:将用户加入sudo组
sudo usermod -aG sudo username
删除用户:
sudo userdel [选项] 用户名
常用选项: - -r
:同时删除家目录和邮件池
创建新组:
sudo groupadd [选项] 组名
选项: - -g
:指定GID
示例:
sudo groupadd -g 1005 developers
修改组属性:
sudo groupmod [选项] 组名
选项: - -n
:修改组名 - -g
:修改GID
删除组:
sudo groupdel 组名
注意:不能删除用户的主组(需先修改用户主组)
用户账户信息,每行格式:
username:x:UID:GID:描述:家目录:shell
示例:
alice:x:1001:1005:Alice Developer:/home/alice:/bin/bash
加密密码存储文件,每行格式:
用户名:加密密码:最后修改日:最小天数:最大天数:警告期:失效期:保留字段
组信息文件,每行格式:
组名:密码占位符:GID:组成员列表
示例:
developers:x:1005:alice,bob
# 创建组 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保持组权限
使用脚本批量创建:
#!/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
sudo chage [选项] 用户名
选项: - -M
:密码最大有效期(天) - -W
:密码过期前警告天数 - -I
:密码过期后锁定账户天数
编辑/etc/security/limits.conf
:
username hard nproc 50 # 限制进程数 username hard nofile 100 # 限制打开文件数
编辑/etc/sudoers
(建议使用visudo):
username ALL=(ALL) NOPASSWD: ALL # 免密码sudo %groupname ALL=(ALL) ALL # 组权限
检查步骤: 1. 确认密码正确:sudo passwd -S username
2. 检查shell设置:grep username /etc/passwd
3. 检查账户是否锁定:sudo passwd -S username
4. 检查/etc/nologin
文件是否存在
诊断命令:
id username # 查看用户组信息 groups username # 查看用户所属组 ls -ld /path # 查看目录权限 getfacl /path # 查看ACL权限
/sbin/nologin
shell sudo awk -F: '($3 >= 1000) {print}' /etc/passwd
sudo usermod -L username
Linux用户和组管理是系统管理员的核心技能。通过合理规划用户、组和权限结构,可以实现: - 清晰的权限隔离 - 高效的协作环境 - 安全的系统配置
掌握本文介绍的命令和技巧,您将能够轻松管理Linux系统中的用户和组资源。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。