如何建立一個(gè)網(wǎng)站分享教程/推廣賺傭金的軟件排名
Linux用戶管理
- 一、Linux用戶管理要點(diǎn)
- 二、常用命令
- 2.1、groupadd
- 2.2、groupdel
- 2.3、groupmod
- 2.4、groups
- 2.5、useradd
- 2.6、userdel
- 2.7、passwd
- 2.9、su
- 2.10、sudo
- 2.10.1、給普通用戶授權(quán) sudo
- 2.10.2、 免密碼授權(quán) sudo
一、Linux用戶管理要點(diǎn)
- 創(chuàng)建用戶組 - 使用
groupadd
- 刪除用戶組 - 使用
groupdel
- 修改用戶組信息 - 使用
groupmod
- 創(chuàng)建用戶 - 使用
useradd
- 刪除用戶 - 使用
userdel
- 修改用戶信息 - 使用
usermod
- 設(shè)置用戶認(rèn)證信息 - 使用
passwd
- 切換用戶 - 使用
su
- 當(dāng)前用戶想執(zhí)行沒有權(quán)限執(zhí)行的命令時(shí),使用其他用戶身份去執(zhí)行 - 使用
sudo
二、常用命令
2.1、groupadd
groupadd 命令用于創(chuàng)建一個(gè)新的用戶組,新用戶組的信息將被添加到系統(tǒng)文件中。
groupadd [選項(xiàng)] 組名
?- -g
, --gid GID?
: 指定新用戶組的組 ID(GID)。
?- -K
, --key KEY=VALUE?
: 設(shè)置密鑰值對(duì),用于指定組的屬性。
?- -o
, --non-unique
?: 允許創(chuàng)建非唯一的組 ID。
?- -p
, --password PASSWORD
?: 設(shè)置用戶組的密碼,通常不建議使用密碼。
?- -r
, --system?
: 創(chuàng)建一個(gè)系統(tǒng)用戶組。
?- -R
, --root CHROOT_DIR
?: 在指定的 chroot 目錄中執(zhí)行操作。
使用案例:
創(chuàng)建一個(gè)名為 ?testgroup??的新用戶組:
groupadd testgroup
創(chuàng)建一個(gè)名為 ?sysgroup??的系統(tǒng)用戶組:
groupadd -r sysgroup
創(chuàng)建一個(gè)名為 ?staff??的用戶組并指定組 ID 為 500:
groupadd -g 500 staff
注意事項(xiàng):
- 使用 groupadd ?命令需要具有適當(dāng)?shù)臋?quán)限,通常需要 root 權(quán)限或 sudo 權(quán)限。
- 可以通過指定選項(xiàng)來設(shè)置新用戶組的組 ID、屬性等。
- 創(chuàng)建系統(tǒng)用戶組時(shí),通常會(huì)使用 -r ?選項(xiàng)。
- 確保新創(chuàng)建的用戶組名稱不與現(xiàn)有用戶組重復(fù),避免混淆。
- 建議在創(chuàng)建用戶組時(shí),為其指定一個(gè)明確的目的或描述性的名稱,以便于管理和理解。
2.2、groupdel
?groupdel命令用于在Linux系統(tǒng)中刪除一個(gè)用戶組?。該命令不會(huì)操作與用戶組關(guān)聯(lián)的文件和目錄,但刪除用戶組后,與該組相關(guān)的文件和目錄中的組信息可能需要手動(dòng)更改,以避免權(quán)限問題?。
本命令要修改的系統(tǒng)文件包括 /ect/group 和 /ect/gshadow。若該群組中仍包括某些用戶,則必須先刪除這些用戶后,方能刪除群組。
groupdel [選項(xiàng)] 組名
-h
或--help
:顯示groupdel命令的幫助信息。-f
或--force
:強(qiáng)制刪除用戶組,即使它是某個(gè)用戶的主組?。
使用示例:
刪除名為testgroup的用戶組?:
groupdel testgroup
刪除cc用戶組?:
groupdel cc
?強(qiáng)制刪除apps用戶組?:
groupdel -f apps
強(qiáng)制刪除名為staff的用戶組?:
groupdel -f staff
顯示groupdel命令的幫助信息?:
groupdel -h
注意事項(xiàng)和常見錯(cuò)誤處理:
- ?確保該組不再被任何用戶所使用?:如果該組仍被某些用戶使用,刪除操作將失敗。除非使用-f選項(xiàng)強(qiáng)制刪除,否則必須先刪除這些用戶?
- ?修改用戶的主組?:如果某個(gè)用戶的主組是目標(biāo)組,命令會(huì)報(bào)錯(cuò)。此時(shí)需要先將用戶的主組改為另一個(gè)組,然后再進(jìn)行刪除操作?
- ?組不存在?:如果要?jiǎng)h除的組不存在,groupdel會(huì)提示錯(cuò)誤?
2.3、groupmod
?groupmod命令?是Linux系統(tǒng)中用于修改現(xiàn)有用戶組的工具。其主要用途包括修改組的GID(組標(biāo)識(shí)符)和組名。
常用選項(xiàng):
-g
或--gid GID
:用于更改組的GID。-n
或--new-name NEW_GROUP
:用于更改組的名稱。-o
或--non-unique
:允許使用重復(fù)的GID,即允許多個(gè)組使用同一個(gè)GID。-h
或--help
:顯示幫助信息。-p
或--password PASSWORD
:設(shè)置組的密碼。-R
或--root CHROOT_DIR
:指定在CHROOT_DIR下更改生效。-V
或--version
:顯示版本信息。
使用示例:
?修改組名?:
groupmod -n newgroup oldgroup
# 這條命令將用戶組oldgroup的名稱修改為newgroup。
?修改組的GID?:
groupmod -g 101 groupname
# 這條命令將用戶組groupname的GID修改為101。
?允許使用其他用戶組的GID?:
groupmod -o groupname
# 這條命令將用戶組groupname的屬性設(shè)置為允許使用其他用戶組的GID。
?設(shè)置組密碼?:
groupmod -p password groupname
# 這條命令將用戶組groupname的密碼設(shè)置為password。
注意事項(xiàng):
- 在執(zhí)行g(shù)roupmod命令時(shí),確保您具有足夠的權(quán)限,通常需要以root用戶身份執(zhí)行。
- 修改組名稱或GID可能會(huì)影響系統(tǒng)上相關(guān)用戶的權(quán)限和文件,因此在進(jìn)行修改前請做好備
2.4、groups
?groups命令用于顯示用戶所屬的用戶組信息。
- 默認(rèn)情況下?,groups命令會(huì)顯示當(dāng)前用戶所屬的所有用戶組。例如,輸入groups即可查看當(dāng)前用戶所屬的所有附加組。
- ?指定用戶?,可以在命令后跟上用戶名來顯示指定用戶所屬的用戶組。例如,輸入groups username可以查看指定用戶username所屬的所有用戶組。
常用選項(xiàng):
-a
:在輸出中包括用戶的主組(primary group)。默認(rèn)情況下,主組不會(huì)被單獨(dú)列出,而是作為用戶名的一部分顯示在輸出中。-g
:只顯示用戶的主組ID(GID),而不顯示組名。-n
:以數(shù)字形式顯示組ID(GID)和用戶名(UID),而不是名稱。-r
:只顯示實(shí)際存在的組,即那些在系統(tǒng)上實(shí)際存在的組。默認(rèn)情況下,groups命令還會(huì)顯示一些特殊的、不存在的組(如“wheel”組在某些系統(tǒng)中可能不存在)。
注意事項(xiàng):
- ?權(quán)限問題?:在執(zhí)行g(shù)roups命令時(shí),需要確保當(dāng)前用戶具有足夠的權(quán)限來查看其他用戶的組信息。如果當(dāng)前用戶沒有足夠的權(quán)限,可能會(huì)收到權(quán)限拒絕的錯(cuò)誤信息。
- 輸出定制?:根據(jù)需要,可以使用不同的參數(shù)來定制groups命令的輸出。例如,如果需要以數(shù)字形式顯示組ID,可以使用-n參數(shù);如果需要只顯示主組ID,可以使用-g參數(shù)。
2.5、useradd
useradd 命令用于 Linux 中創(chuàng)建的新的系統(tǒng)用戶。useradd 可用來建立用戶帳號(hào)。帳號(hào)建好之后,再用 passwd 設(shè)定帳號(hào)的密碼.而可用 userdel 刪除帳號(hào)。使用 useradd 指令所建立的帳號(hào),實(shí)際上是保存在 /etc/passwd 文本文件中。
?使用useradd命令時(shí),系統(tǒng)會(huì)自動(dòng)更新相關(guān)文件,包括/etc/passwd和/etc/shadow。? /etc/passwd文件包含用戶的基本信息,如用戶名、用戶ID(UID)、組ID(GID)等;而/etc/shadow文件則包含加密的用戶密碼和賬戶有效期等信息。通過useradd命令創(chuàng)建的用戶,管理員可以通過passwd命令為其設(shè)置密碼。需要注意的是,useradd命令本身不會(huì)為用戶創(chuàng)建密碼信息,而是使用星號(hào)(*)初始化密碼字段,隨后需要通過passwd或pwdadm命令設(shè)置密碼。?
useradd [選項(xiàng)] 用戶名
常用選項(xiàng):
-m
:創(chuàng)建用戶主目錄(通常位于 /home/用戶名)。-d
:指定用戶主目錄路徑。-s
:指定用戶的默認(rèn) shell。-g
:指定用戶的主組(組名或 GID)。-G
:指定用戶的附加組(組名或 GID)。-u
:指定用戶的 UID。-c
:添加用戶備注信息(如全名)。-e
:設(shè)置賬戶過期日期(格式:YYYY-MM-DD)。-p
:設(shè)置用戶密碼(通常不推薦直接使用,建議用 passwd 命令)。
使用示例:
創(chuàng)建用戶并生成主目錄
sudo useradd -m username
···
指定主目錄路徑
```sh
sudo useradd -m -d /custom/home/username username
指定默認(rèn) shell
sudo useradd -m -s /bin/bash username
指定主組和附加組
sudo useradd -m -g primarygroup -G supplementarygroup username
指定 UID
sudo useradd -m -u 1001 username
添加備注信息
sudo useradd -m -c "User Full Name" username
設(shè)置賬戶過期日期
sudo useradd -m -e 2023-12-31 username
創(chuàng)建用戶后,使用 passwd 命令設(shè)置密碼:
sudo passwd username
注意事項(xiàng):
- 需要 root 權(quán)限,通常使用 sudo。
- 如果不使用 -m 選項(xiàng),不會(huì)創(chuàng)建主目錄。
- 建議使用 passwd 命令設(shè)置密碼,而不是 -p 選項(xiàng)。
2.6、userdel
以下是基本用法和常見選項(xiàng):
userdel [選項(xiàng)] 用戶名
常用選項(xiàng):
-r
:刪除用戶的同時(shí),刪除用戶的主目錄和郵件文件(通常位于 /home/用戶名 和 /var/mail/用戶名)。-f
:強(qiáng)制刪除用戶,即使用戶當(dāng)前已登錄。-Z
:刪除用戶的 SELinux 用戶映射(適用于啟用了 SELinux 的系統(tǒng))。
使用示例:
刪除用戶(保留主目錄)
sudo userdel username
# 這種方式只會(huì)刪除用戶賬戶,但不會(huì)刪除用戶的主目錄和郵件文件。
刪除用戶并刪除主目錄
sudo userdel -r username
# 這種方式會(huì)刪除用戶賬戶及其主目錄和郵件文件。
強(qiáng)制刪除用戶
sudo userdel -f username
# 即使用戶當(dāng)前已登錄,也會(huì)強(qiáng)制刪除用戶。
刪除用戶并清理 SELinux 映射
sudo userdel -rZ username
# 適用于啟用了 SELinux 的系統(tǒng)。
注意事項(xiàng):
- 權(quán)限要求:需要 root 權(quán)限,通常使用 sudo。
- 用戶進(jìn)程:如果用戶有正在運(yùn)行的進(jìn)程,刪除用戶時(shí)可能會(huì)失敗??梢允褂?-f 選項(xiàng)強(qiáng)制刪除,或者先終止相關(guān)進(jìn)程。
- 主目錄:如果不使用 -r 選項(xiàng),用戶的主目錄和郵件文件將保留在系統(tǒng)中。
- 依賴文件:刪除用戶后,系統(tǒng)中可能仍存在屬于該用戶的文件(如 /home/username 中的文件),需要手動(dòng)清理。
其他相關(guān)命令:
檢查用戶是否存在:
id username
# 如果用戶存在,會(huì)顯示用戶信息;如果不存在,會(huì)提示“無此用戶”。
終止用戶進(jìn)程:如果用戶有正在運(yùn)行的進(jìn)程,可以使用以下命令終止:
sudo pkill -u username
sudo killall -u username
# 通過 userdel 命令,可以安全地刪除用戶賬戶及其相關(guān)文件。
2.7、passwd
passwd 命令用于在 Linux 系統(tǒng)中管理用戶密碼。
passwd [選項(xiàng)] [用戶名]
# 如果不指定用戶名,默認(rèn)修改當(dāng)前用戶的密碼。
# 如果指定用戶名(需要管理員權(quán)限),可以修改其他用戶的密碼。
常用選項(xiàng):
-l
:鎖定用戶賬戶,禁止登錄。-u
:解鎖用戶賬戶。-d
:刪除用戶密碼,允許用戶無需密碼登錄(不安全,不推薦)。-e
:強(qiáng)制用戶下次登錄時(shí)修改密碼。-S
:顯示用戶密碼狀態(tài)(是否鎖定、密碼加密算法等)。-n
:設(shè)置密碼的最短使用期限(天數(shù))。-x
:設(shè)置密碼的最長使用期限(天數(shù))。-w
:設(shè)置密碼過期前的警告天數(shù)。-i
:設(shè)置密碼過期后的寬限天數(shù)。
使用示例:
修改當(dāng)前用戶的密碼
passwd
# 系統(tǒng)會(huì)提示輸入當(dāng)前密碼,然后輸入新密碼并確認(rèn)。
修改其他用戶的密碼(需要管理員權(quán)限)
sudo passwd username
# 管理員可以直接為其他用戶設(shè)置新密碼。
鎖定用戶賬戶
sudo passwd -l username
# 鎖定后,用戶將無法登錄。
解鎖用戶賬戶
sudo passwd -u username
刪除用戶密碼
sudo passwd -d username
# 刪除密碼后,用戶無需密碼即可登錄(不安全,不推薦)。
強(qiáng)制用戶下次登錄時(shí)修改密碼
sudo passwd -e username
顯示用戶密碼狀態(tài)
sudo passwd -S username# 輸出示例:
username P 05/10/2023 0 99999 7 -1各字段含義:
- 用戶名
- 密碼狀態(tài)(P 表示有密碼,L 表示鎖定,NP 表示無密碼)
- 最后修改密碼的日期
- 最小密碼年齡(天數(shù))
- 最大密碼年齡(天數(shù))
- 警告天數(shù)
- 密碼過期后的寬限天數(shù)
設(shè)置密碼策略:
# 設(shè)置密碼最短使用期限為 7 天:
sudo passwd -n 7 username# 設(shè)置密碼最長使用期限為 90 天:
sudo passwd -x 90 username# 設(shè)置密碼過期前 7 天提醒用戶:
sudo passwd -w 7 username# 設(shè)置密碼過期后 5 天內(nèi)仍可登錄:
sudo passwd -i 5 username
注意事項(xiàng):
- 密碼強(qiáng)度:系統(tǒng)通常會(huì)檢查密碼強(qiáng)度,過于簡單的密碼可能被拒絕。
- 管理員權(quán)限:修改其他用戶的密碼需要 root 權(quán)限,通常使用 sudo。
- 鎖定賬戶:鎖定賬戶后,用戶將無法登錄,但用戶的主目錄和文件仍然存在。
- 密碼策略:合理設(shè)置密碼策略可以提高系統(tǒng)安全性。
2.9、su
su 命令用于切換當(dāng)前用戶身份到其他用戶身份,變更時(shí)須輸入所要變更的用戶帳號(hào)與密碼。
su [選項(xiàng)] [用戶名]
# 如果不指定用戶名,默認(rèn)切換到 root 用戶。
# 切換用戶后,會(huì)進(jìn)入目標(biāo)用戶的 shell 環(huán)境。
常用選項(xiàng):
-
或-l
或--login
:以登錄 shell 的方式切換用戶,同時(shí)加載目標(biāo)用戶的環(huán)境變量和配置文件(如 ~/.bashrc 或 ~/.profile)。-c
:執(zhí)行一條命令后立即退出,不進(jìn)入交互式 shell。-s
:指定要使用的 shell(如 /bin/bash 或 /bin/sh)。-m
或-p
:保留當(dāng)前環(huán)境變量,不加載目標(biāo)用戶的環(huán)境配置。
常用示例:
切換到 root 用戶
su
# 系統(tǒng)會(huì)提示輸入 root 用戶的密碼。
以登錄 shell 的方式切換到 root 用戶
su -
#這種方式會(huì)加載 root 用戶的環(huán)境變量和配置文件。
切換到其他用戶
su username
# 系統(tǒng)會(huì)提示輸入目標(biāo)用戶的密碼。
以登錄 shell 的方式切換到其他用戶
su - username
切換到用戶并執(zhí)行一條命令
su -c "command" username# 例如,以 root 用戶身份創(chuàng)建一個(gè)文件:su -c "touch /root/testfile" root
指定使用的 shell
su -s /bin/bash username
保留當(dāng)前環(huán)境變量
su -m username
注意事項(xiàng):
- 密碼要求:
- 切換到 root 用戶或其他用戶時(shí),需要輸入目標(biāo)用戶的密碼。
- 如果當(dāng)前用戶是 root,切換到其他用戶時(shí)不需要密碼。
- 環(huán)境變量:
- 使用 su - 或 su -l 會(huì)加載目標(biāo)用戶的環(huán)境變量。
- 使用 su 或 su -m 會(huì)保留當(dāng)前用戶的環(huán)境變量。
- 退出切換的用戶:
- 輸入 exit 或按 Ctrl+D 可以退出當(dāng)前用戶,返回到之前的用戶。
- 權(quán)限限制:
- 普通用戶只能切換到其他用戶(需要密碼),而 root 用戶可以切換到任何用戶(無需密碼)。
與 sudo 的區(qū)別:
su
:直接切換到目標(biāo)用戶的身份,需要目標(biāo)用戶的密碼。sudo
:以當(dāng)前用戶的權(quán)限執(zhí)行命令,需要當(dāng)前用戶的密碼(或配置為無需密碼)。
2.10、sudo
sudo 命令允許授權(quán)用戶以超級(jí)用戶(root)或其他用戶的身份執(zhí)行命令。
sudo [選項(xiàng)] 命令
# 默認(rèn)情況下,sudo 以 root 用戶身份執(zhí)行命令。
# 執(zhí)行命令時(shí),系統(tǒng)會(huì)提示輸入當(dāng)前用戶的密碼(而非 root 密碼)。
常用選項(xiàng):
-u
:以指定用戶身份執(zhí)行命令。-l
:列出當(dāng)前用戶允許執(zhí)行的 sudo 命令。-s
:啟動(dòng)目標(biāo)用戶的 shell(默認(rèn)為 root)。-i
:以登錄 shell 的方式啟動(dòng)目標(biāo)用戶的 shell(加載環(huán)境變量)。-v
:刷新 sudo 的認(rèn)證時(shí)間戳(延長有效期)。-k
:清除 sudo 的認(rèn)證時(shí)間戳(立即失效)。-b
:在后臺(tái)運(yùn)行命令。-E
:保留當(dāng)前用戶的環(huán)境變量。
使用示例:
以 root 身份執(zhí)行命令
sudo command# 例如,安裝軟件包:
sudo apt update
以其他用戶身份執(zhí)行命令
sudo -u username command# 例如,以用戶 testuser 的身份創(chuàng)建文件:
sudo -u testuser touch /home/testuser/testfile
啟動(dòng) root 用戶的 shell
sudo -s
以登錄 shell 的方式啟動(dòng) root 用戶的 shell
sudo -i
在后臺(tái)運(yùn)行命令
sudo -b command
保留當(dāng)前用戶的環(huán)境變量
sudo -E command
刷新 sudo 認(rèn)證時(shí)間戳
sudo -v
清除 sudo 認(rèn)證時(shí)間戳
sudo -k
配置文件:
sudo 的權(quán)限配置存儲(chǔ)在 /etc/sudoers 文件中??梢允褂?visudo 命令安全地編輯該文件。
示例配置:
允許用戶執(zhí)行所有命令
username ALL=(ALL:ALL) ALL
允許用戶執(zhí)行特定命令
username ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl
允許用戶無需密碼執(zhí)行命令
username ALL=(ALL) NOPASSWD: /usr/bin/apt
注意事項(xiàng):
- 密碼提示:
- 執(zhí)行 sudo 時(shí),系統(tǒng)會(huì)提示輸入當(dāng)前用戶的密碼。
- 默認(rèn)情況下,密碼在 5 分鐘內(nèi)有效(無需重復(fù)輸入)。
- 權(quán)限限制:
- 只有被授權(quán)的用戶才能使用 sudo。
- 權(quán)限配置在 /etc/sudoers 文件中定義。
- 安全性:
- 避免直接使用 sudo 執(zhí)行未知或不可信的腳本。
- 謹(jǐn)慎配置 NOPASSWD 選項(xiàng),以免降低安全性。
- 日志記錄:
- sudo 的所有操作都會(huì)被記錄到 /var/log/auth.log 或 /var/log/secure 中,便于審計(jì)。
與 su 的區(qū)別:
sudo
:以當(dāng)前用戶的權(quán)限執(zhí)行命令,需要當(dāng)前用戶的密碼。su
:直接切換到目標(biāo)用戶的身份,需要目標(biāo)用戶的密碼。
2.10.1、給普通用戶授權(quán) sudo
假設(shè)要給普通用戶 mary 配置 sudo 權(quán)限:
/etc/sudoers
文件存放了 sudo 的相關(guān)用戶,但是默認(rèn)是沒有寫權(quán)限的,所以需要設(shè)為可寫:chmod u+w /etc/sudoers
- 在該文件中添加
mary ALL=(ALL) ALL
,保存并退出,讓 mary 具有 sudo 的所有權(quán)限 - 再將
/etc/sudoers
的權(quán)限恢復(fù)到默認(rèn)狀態(tài):chmod u-w /etc/sudoers
2.10.2、 免密碼授權(quán) sudo
與給普通用戶授權(quán) sudo 類似,區(qū)別僅在于第 2 步:mary ALL=(ALL) NOPASSWD: ALL
。