Linux用戶管理與常見(jiàn)權(quán)限命令
用戶與組管理
用戶與組的基本概念
在Linux系統(tǒng)中,用戶和組是管理權(quán)限和資源訪問(wèn)的基本單元。每個(gè)用戶都有一個(gè)唯一的用戶ID(UID),每個(gè)組都有一個(gè)唯一的組ID(GID)。用戶可以屬于一個(gè)或多個(gè)組,組用于集中管理一組用戶的權(quán)限。
- 用戶:代表系統(tǒng)中的一個(gè)個(gè)體,可以是人或系統(tǒng)服務(wù)。每個(gè)用戶都有一個(gè)獨(dú)立的主目錄、默認(rèn)Shell以及獨(dú)立的文件權(quán)限。
- 組:一組用戶的集合,用于簡(jiǎn)化權(quán)限管理。一個(gè)文件可以被多個(gè)用戶通過(guò)組共享和訪問(wèn)。
創(chuàng)建和刪除用戶賬戶
在Linux中,用戶管理的基本操作包括創(chuàng)建、刪除和修改用戶賬戶。以下是一些常用命令:
useradd:用于創(chuàng)建一個(gè)新的用戶賬戶。
sudo useradd username
該命令創(chuàng)建一個(gè)新用戶,但不會(huì)自動(dòng)設(shè)置密碼和主目錄??梢允褂?code>-m選項(xiàng)創(chuàng)建主目錄,-s選項(xiàng)指定默認(rèn)Shell。
例如,創(chuàng)建一個(gè)名為john的新用戶,并創(chuàng)建其主目錄和默認(rèn)Shell:
sudo useradd -m -s /bin/bash john
passwd:用于設(shè)置或更改用戶密碼。
sudo passwd username
例如,為john設(shè)置密碼:
sudo passwd john
userdel:用于刪除用戶賬戶。
sudo userdel username
要?jiǎng)h除用戶并刪除其主目錄和郵件文件,可以使用-r選項(xiàng):
sudo userdel -r john
用戶組的創(chuàng)建與管理
用戶組的管理與用戶類似,可以通過(guò)以下命令來(lái)創(chuàng)建和管理組:
groupadd:用于創(chuàng)建一個(gè)新的用戶組。
sudo groupadd groupname
例如,創(chuàng)建一個(gè)名為developers的新組:
sudo groupadd developers
groupdel:用于刪除用戶組。
sudo groupdel groupname
例如,刪除developers組:
sudo groupdel developers
usermod:用于修改現(xiàn)有用戶的屬性,包括將用戶添加到某個(gè)組。
sudo usermod -aG groupname username
例如,將用戶john添加到developers組:
sudo usermod -aG developers john
注意:-a選項(xiàng)確保用戶被附加到指定組而不是替換用戶的現(xiàn)有組成員身份。
用戶與組之間的關(guān)系及其配置文件
在Linux系統(tǒng)中,用戶與組的相關(guān)信息存儲(chǔ)在以下幾個(gè)文件中:
/etc/passwd:包含所有用戶的基本信息,如用戶名、UID、GID、主目錄和Shell等。每一行代表一個(gè)用戶,格式如下:
username:x:UID:GID:comment:home_directory:shell
例如:
john:x:1001:1001::/home/john:/bin/bash
/etc/group:包含所有組的基本信息,如組名、GID和組成員列表。格式如下:
groupname:x:GID:user1,user2,...
- 例如:
developers:x:1002:john,mary
/etc/shadow:包含用戶密碼及相關(guān)信息。文件權(quán)限嚴(yán)格限制,通常只有root用戶可以訪問(wèn)。每一行代表一個(gè)用戶,格式如下:
username:password:last_changed:min:max:warn:inactive:expire
這些文件是Linux系統(tǒng)中用戶與組管理的核心,通過(guò)手動(dòng)編輯這些文件可以直接修改用戶和組信息,但通常建議通過(guò)系統(tǒng)命令來(lái)進(jìn)行管理以避免錯(cuò)誤。
文件權(quán)限與訪問(wèn)控制
文件權(quán)限的詳細(xì)講解
在Linux系統(tǒng)中,文件權(quán)限決定了用戶或組對(duì)文件的訪問(wèn)級(jí)別。每個(gè)文件或目錄都有三個(gè)權(quán)限集,分別適用于文件所有者(User)、所屬組(Group)和其他用戶(Others)。每個(gè)權(quán)限集包括三種類型的權(quán)限:
- 讀(r, Read):允許查看文件內(nèi)容或列出目錄內(nèi)容。
- 寫(w, Write):允許修改文件內(nèi)容或在目錄中創(chuàng)建、刪除文件。
- 執(zhí)行(x, Execute):允許運(yùn)行文件(如腳本)或進(jìn)入目錄。
文件權(quán)限的表示通常為一個(gè)10位字符串,如:
-rwxr-xr--
- 第一個(gè)字符表示文件類型,
-表示普通文件,d表示目錄。 - 接下來(lái)的三組字符分別表示所有者、組和其他用戶的權(quán)限。
更改文件權(quán)限的命令
chmod:用于更改文件或目錄的權(quán)限。可以使用符號(hào)模式或八進(jìn)制模式指定權(quán)限。
符號(hào)模式:
u表示所有者(User)g表示組(Group)o表示其他用戶(Others)a表示所有人(All)
操作符:
+添加權(quán)限-移除權(quán)限=設(shè)置精確權(quán)限
例如:
chmod u+rwx filename chmod g+rx filename chmod o-w filename
八進(jìn)制模式:每種權(quán)限對(duì)應(yīng)一個(gè)數(shù)字,r=4,w=2,x=1。組合這些值可以表示權(quán)限。
例如:
chmod 755 filename
這里755表示所有者有rwx權(quán)限(4+2+1=7),組和其他用戶有rx權(quán)限(4+1=5)。
更改文件所有者的命令
chown:用于更改文件或目錄的所有者和組。
sudo chown owner:group filename
例如,將文件filename的所有者改為john,組改為developers:
sudo chown john:developers filename
chgrp:用于更改文件或目錄的組。
sudo chgrp groupname filename
例如,將文件filename的組改為developers:
sudo chgrp developers filename
設(shè)置與撤銷SUID、SGID和Sticky Bit
- SUID(Set User ID):當(dāng)一個(gè)文件設(shè)置了SUID位(通常是可執(zhí)行文件),普通用戶運(yùn)行該文件時(shí)將獲得文件所有者的權(quán)限。通常用于需要提升權(quán)限的系統(tǒng)程序。
chmod u+s filename
例如:
chmod 4755 /usr/bin/passwd
- SGID(Set Group ID):當(dāng)一個(gè)文件設(shè)置了SGID位時(shí),執(zhí)行該文件的用戶將臨時(shí)獲得文件所屬組的權(quán)限。對(duì)于目錄,SGID位保證該目錄中創(chuàng)建的所有文件和目錄將繼承其所屬組。
chmod g+s directory_name
- Sticky Bit:Sticky Bit通常用于目錄,當(dāng)目錄設(shè)置了Sticky Bit時(shí),只有文件的所有者才能刪除或移動(dòng)該目錄中的文件,即使其他用戶對(duì)目錄有寫權(quán)限。
chmod +t directory_name
例如:
chmod 1777 /tmp
特殊權(quán)限與ACL
訪問(wèn)控制列表(ACL)的介紹與使用
在Linux系統(tǒng)中,傳統(tǒng)的權(quán)限機(jī)制(rwx)只適用于用戶、組和其他用戶,但在更復(fù)雜的場(chǎng)景下可能不夠靈活。訪問(wèn)控制列表(ACL)允許更細(xì)粒度地控制文件或目錄的訪問(wèn)權(quán)限,針對(duì)單個(gè)用戶或組設(shè)置特定的權(quán)限。
- 查看ACL:使用
getfacl命令查看文件或目錄的ACL。
getfacl filename
- 設(shè)置ACL:使用
setfacl命令設(shè)置ACL。
setfacl -m u:username:permissions filename
例如,給用戶john賦予讀取權(quán)限:
setfacl -m u:john:r-- filename
- 移除ACL:
setfacl -x u:username filename
例如,移除用戶john的ACL:
setfacl -x u:john filename
- 默認(rèn)ACL:可以為目錄設(shè)置默認(rèn)ACL,以便在該目錄中新創(chuàng)建的文件或子目錄自動(dòng)繼承這些權(quán)限。
setfacl -d -m u:username:permissions directory_name
使用ACL的注意事項(xiàng)
ACL是一個(gè)強(qiáng)大的權(quán)限管理工具,但在使用時(shí)需要注意以下幾點(diǎn):
- 兼容性:并非所有文件系統(tǒng)都支持ACL,使用前請(qǐng)確認(rèn)文件系統(tǒng)是否啟用ACL支持。
- 復(fù)雜性:ACL提供了靈活的權(quán)限控制,但也增加了管理的復(fù)雜性。建議僅在需要細(xì)粒度控制時(shí)使用。
- 與傳統(tǒng)權(quán)限的結(jié)合:ACL不會(huì)完全替代傳統(tǒng)的
rwx權(quán)限,兩者會(huì)同時(shí)生效。某些情況下,需要同時(shí)配置兩者以確保權(quán)限設(shè)置的正確性。
進(jìn)階用戶管理技巧
限制用戶資源
Linux系統(tǒng)允許通過(guò)/etc/security/limits.conf文件來(lái)限制用戶或組的系統(tǒng)資源使用,如最大進(jìn)程數(shù)、最大文件大小等。該文件使用以下格式:
<domain> <type> <item> <value>
<domain>:可以是用戶名、組名或*(所有用戶)。<type>:soft或hard,分別表示軟限制和硬限制。<item>:表示受限制的資源,如nofile(最大文件數(shù))和nproc(最大進(jìn)程數(shù))。<value>:設(shè)置的具體數(shù)值。
例如,限制用戶john的最大進(jìn)程數(shù)為100:
john hard nproc 100
使用sudo提升權(quán)限
sudo命令允許普通用戶在執(zhí)行特定命令時(shí)臨時(shí)獲得超級(jí)用戶權(quán)限。sudo的權(quán)限配置通過(guò)/etc/sudoers文件進(jìn)行管理。
- 添加用戶到
sudo組:
sudo usermod -aG sudo username
例如,將john添加到sudo組:
sudo usermod -aG sudo john
- 編輯
/etc/sudoers文件:
sudo visudo
在此文件中,可以為特定用戶或組配置sudo權(quán)限。例如,允許john在不輸入密碼的情況下執(zhí)行所有命令:
john ALL=(ALL) NOPASSWD: ALL
總結(jié)
到此這篇關(guān)于Linux用戶管理與常見(jiàn)權(quán)限命令的文章就介紹到這了,更多相關(guān)Linux用戶管理權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)時(shí)Linux的音頻實(shí)時(shí)監(jiān)控系統(tǒng)實(shí)踐過(guò)程
基于實(shí)時(shí)Linux的音頻監(jiān)控系統(tǒng)通過(guò)實(shí)時(shí)任務(wù)調(diào)度、PCM/ALSA/FFT技術(shù)實(shí)現(xiàn)安全、工業(yè)等領(lǐng)域的實(shí)時(shí)采集與分析,提升效率與安全性,減少故障風(fēng)險(xiǎn),適用于物聯(lián)網(wǎng)、自動(dòng)化場(chǎng)景,結(jié)合機(jī)器學(xué)習(xí)可增強(qiáng)分析能力,(80字)2025-08-08
詳解Ubuntu 16.04 幾個(gè)國(guó)內(nèi)更新源
本篇文章主要介紹了詳解Ubuntu 16.04 幾個(gè)國(guó)內(nèi)更新源,可以在軟件更新中選擇源,一起跟隨小編過(guò)來(lái)看看吧2017-04-04
用vnc實(shí)現(xiàn)Windows遠(yuǎn)程連接linux桌面之服務(wù)器配置
這篇文章主要介紹了用vnc實(shí)現(xiàn)Windows遠(yuǎn)程連接linux桌面之服務(wù)器配置,需要的朋友可以參考下2016-09-09
Linux系統(tǒng)查找并終止占用特定端口的進(jìn)程的完整流程
本文檔記錄了在Linux系統(tǒng)中如何查找并終止占用特定端口(如5501)的進(jìn)程的完整流程,適用于需要釋放被占用的端口、終止無(wú)響應(yīng)服務(wù)或清理異常進(jìn)程等場(chǎng)景,希望對(duì)大家有所幫助2026-04-04
手把手教你啟用Win10的Linux子系統(tǒng)(圖文超詳細(xì))
這篇文章主要介紹了手把手教你啟用Win10的Linux子系統(tǒng)(圖文超詳細(xì)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
linux停止和查看啟動(dòng)服務(wù)的命令使用方法
這篇文章主要介紹了linux停止和查看啟動(dòng)服務(wù)的命令使用方法,需要的朋友可以參考下2014-02-02
Linux網(wǎng)絡(luò)配置之FTP配置詳細(xì)教學(xué)
這篇文章主要為大家詳細(xì)介紹了Linux網(wǎng)絡(luò)配置中FTP配置的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下2025-06-06
Linux下查看nginx apache mysql php的編譯參數(shù)
由于工作的需要,有時(shí)候需要在一臺(tái)不是你參與編譯的環(huán)境調(diào)試環(huán)境,這就需要知道nginx,apache,mysql,php的編譯參數(shù),以下小方法能快速讓你了解默認(rèn)的服務(wù)器里的編譯參數(shù)2014-03-03

