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)限機制(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是一個強大的權(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系統(tǒng)禁止root賬號遠(yuǎn)程登錄的命令
這篇文章主要介紹了Linux系統(tǒng)禁止root賬號遠(yuǎn)程登錄的方法,文中給大家提到linux下禁止root遠(yuǎn)程登錄和添加新用戶,需要的朋友可以參考下2019-07-07linux網(wǎng)絡(luò)參數(shù)配置方法詳解
這篇文章主要介紹了linux網(wǎng)絡(luò)參數(shù)的配置方法,這樣可以讓你的服務(wù)器訪問網(wǎng)絡(luò),主要參數(shù):IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS2013-11-11Centos 64位安裝aapt、jdk、tomcat的詳細(xì)教程
這篇文章主要介紹了Centos 64位安裝aapt、jdk、tomcat的相關(guān)資料,需要的朋友可以參考下2016-11-11如何使用win10內(nèi)置的linux系統(tǒng)啟動spring-boot項目
這篇文章主要介紹了如何使用​win10內(nèi)置的linux系統(tǒng)啟動spring-boot項目,需要的朋友可以參考下2020-07-07