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

