# 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
或者從文件讀?。?/p>
# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。