Linux用戶(hù)管理與常見(jiàn)權(quán)限命令
用戶(hù)與組管理
用戶(hù)與組的基本概念
在Linux系統(tǒng)中,用戶(hù)和組是管理權(quán)限和資源訪(fǎng)問(wèn)的基本單元。每個(gè)用戶(hù)都有一個(gè)唯一的用戶(hù)ID(UID),每個(gè)組都有一個(gè)唯一的組ID(GID)。用戶(hù)可以屬于一個(gè)或多個(gè)組,組用于集中管理一組用戶(hù)的權(quán)限。
- 用戶(hù):代表系統(tǒng)中的一個(gè)個(gè)體,可以是人或系統(tǒng)服務(wù)。每個(gè)用戶(hù)都有一個(gè)獨(dú)立的主目錄、默認(rèn)Shell以及獨(dú)立的文件權(quán)限。
- 組:一組用戶(hù)的集合,用于簡(jiǎn)化權(quán)限管理。一個(gè)文件可以被多個(gè)用戶(hù)通過(guò)組共享和訪(fǎng)問(wèn)。
創(chuàng)建和刪除用戶(hù)賬戶(hù)
在Linux中,用戶(hù)管理的基本操作包括創(chuàng)建、刪除和修改用戶(hù)賬戶(hù)。以下是一些常用命令:
useradd
:用于創(chuàng)建一個(gè)新的用戶(hù)賬戶(hù)。
sudo useradd username
該命令創(chuàng)建一個(gè)新用戶(hù),但不會(huì)自動(dòng)設(shè)置密碼和主目錄??梢允褂?code>-m選項(xiàng)創(chuàng)建主目錄,-s
選項(xiàng)指定默認(rèn)Shell。
例如,創(chuàng)建一個(gè)名為john
的新用戶(hù),并創(chuàng)建其主目錄和默認(rèn)Shell:
sudo useradd -m -s /bin/bash john
passwd
:用于設(shè)置或更改用戶(hù)密碼。
sudo passwd username
例如,為john
設(shè)置密碼:
sudo passwd john
userdel
:用于刪除用戶(hù)賬戶(hù)。
sudo userdel username
要?jiǎng)h除用戶(hù)并刪除其主目錄和郵件文件,可以使用-r
選項(xiàng):
sudo userdel -r john
用戶(hù)組的創(chuàng)建與管理
用戶(hù)組的管理與用戶(hù)類(lèi)似,可以通過(guò)以下命令來(lái)創(chuàng)建和管理組:
groupadd
:用于創(chuàng)建一個(gè)新的用戶(hù)組。
sudo groupadd groupname
例如,創(chuàng)建一個(gè)名為developers
的新組:
sudo groupadd developers
groupdel
:用于刪除用戶(hù)組。
sudo groupdel groupname
例如,刪除developers
組:
sudo groupdel developers
usermod
:用于修改現(xiàn)有用戶(hù)的屬性,包括將用戶(hù)添加到某個(gè)組。
sudo usermod -aG groupname username
例如,將用戶(hù)john
添加到developers
組:
sudo usermod -aG developers john
注意:-a
選項(xiàng)確保用戶(hù)被附加到指定組而不是替換用戶(hù)的現(xiàn)有組成員身份。
用戶(hù)與組之間的關(guān)系及其配置文件
在Linux系統(tǒng)中,用戶(hù)與組的相關(guān)信息存儲(chǔ)在以下幾個(gè)文件中:
/etc/passwd
:包含所有用戶(hù)的基本信息,如用戶(hù)名、UID、GID、主目錄和Shell等。每一行代表一個(gè)用戶(hù),格式如下:
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
:包含用戶(hù)密碼及相關(guān)信息。文件權(quán)限嚴(yán)格限制,通常只有root
用戶(hù)可以訪(fǎng)問(wèn)。每一行代表一個(gè)用戶(hù),格式如下:
username:password:last_changed:min:max:warn:inactive:expire
這些文件是Linux系統(tǒng)中用戶(hù)與組管理的核心,通過(guò)手動(dòng)編輯這些文件可以直接修改用戶(hù)和組信息,但通常建議通過(guò)系統(tǒng)命令來(lái)進(jìn)行管理以避免錯(cuò)誤。
文件權(quán)限與訪(fǎng)問(wèn)控制
文件權(quán)限的詳細(xì)講解
在Linux系統(tǒng)中,文件權(quán)限決定了用戶(hù)或組對(duì)文件的訪(fǎng)問(wèn)級(jí)別。每個(gè)文件或目錄都有三個(gè)權(quán)限集,分別適用于文件所有者(User)、所屬組(Group)和其他用戶(hù)(Others)。每個(gè)權(quán)限集包括三種類(lèi)型的權(quán)限:
- 讀(r, Read):允許查看文件內(nèi)容或列出目錄內(nèi)容。
- 寫(xiě)(w, Write):允許修改文件內(nèi)容或在目錄中創(chuàng)建、刪除文件。
- 執(zhí)行(x, Execute):允許運(yùn)行文件(如腳本)或進(jìn)入目錄。
文件權(quán)限的表示通常為一個(gè)10位字符串,如:
-rwxr-xr--
- 第一個(gè)字符表示文件類(lèi)型,
-
表示普通文件,d
表示目錄。 - 接下來(lái)的三組字符分別表示所有者、組和其他用戶(hù)的權(quán)限。
更改文件權(quán)限的命令
chmod
:用于更改文件或目錄的權(quán)限??梢允褂梅?hào)模式或八進(jìn)制模式指定權(quán)限。
符號(hào)模式:
u
表示所有者(User)g
表示組(Group)o
表示其他用戶(hù)(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),組和其他用戶(hù)有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è)置與撤銷(xiāo)SUID、SGID和Sticky Bit
- SUID(Set User ID):當(dāng)一個(gè)文件設(shè)置了SUID位(通常是可執(zhí)行文件),普通用戶(hù)運(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í)行該文件的用戶(hù)將臨時(shí)獲得文件所屬組的權(quán)限。對(duì)于目錄,SGID位保證該目錄中創(chuàng)建的所有文件和目錄將繼承其所屬組。
chmod g+s directory_name
- Sticky Bit:Sticky Bit通常用于目錄,當(dāng)目錄設(shè)置了Sticky Bit時(shí),只有文件的所有者才能刪除或移動(dòng)該目錄中的文件,即使其他用戶(hù)對(duì)目錄有寫(xiě)權(quán)限。
chmod +t directory_name
例如:
chmod 1777 /tmp
特殊權(quán)限與ACL
訪(fǎng)問(wèn)控制列表(ACL)的介紹與使用
在Linux系統(tǒng)中,傳統(tǒng)的權(quán)限機(jī)制(rwx
)只適用于用戶(hù)、組和其他用戶(hù),但在更復(fù)雜的場(chǎng)景下可能不夠靈活。訪(fǎng)問(wèn)控制列表(ACL)允許更細(xì)粒度地控制文件或目錄的訪(fǎng)問(wèn)權(quán)限,針對(duì)單個(gè)用戶(hù)或組設(shè)置特定的權(quán)限。
- 查看ACL:使用
getfacl
命令查看文件或目錄的ACL。
getfacl filename
- 設(shè)置ACL:使用
setfacl
命令設(shè)置ACL。
setfacl -m u:username:permissions filename
例如,給用戶(hù)john
賦予讀取權(quán)限:
setfacl -m u:john:r-- filename
- 移除ACL:
setfacl -x u:username filename
例如,移除用戶(hù)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)階用戶(hù)管理技巧
限制用戶(hù)資源
Linux系統(tǒng)允許通過(guò)/etc/security/limits.conf
文件來(lái)限制用戶(hù)或組的系統(tǒng)資源使用,如最大進(jìn)程數(shù)、最大文件大小等。該文件使用以下格式:
<domain> <type> <item> <value>
<domain>
:可以是用戶(hù)名、組名或*
(所有用戶(hù))。<type>
:soft
或hard
,分別表示軟限制和硬限制。<item>
:表示受限制的資源,如nofile
(最大文件數(shù))和nproc
(最大進(jìn)程數(shù))。<value>
:設(shè)置的具體數(shù)值。
例如,限制用戶(hù)john
的最大進(jìn)程數(shù)為100:
john hard nproc 100
使用sudo
提升權(quán)限
sudo
命令允許普通用戶(hù)在執(zhí)行特定命令時(shí)臨時(shí)獲得超級(jí)用戶(hù)權(quán)限。sudo
的權(quán)限配置通過(guò)/etc/sudoers
文件進(jìn)行管理。
- 添加用戶(hù)到
sudo
組:
sudo usermod -aG sudo username
例如,將john
添加到sudo
組:
sudo usermod -aG sudo john
- 編輯
/etc/sudoers
文件:
sudo visudo
在此文件中,可以為特定用戶(hù)或組配置sudo
權(quán)限。例如,允許john
在不輸入密碼的情況下執(zhí)行所有命令:
john ALL=(ALL) NOPASSWD: ALL
總結(jié)
到此這篇關(guān)于Linux用戶(hù)管理與常見(jiàn)權(quán)限命令的文章就介紹到這了,更多相關(guān)Linux用戶(hù)管理權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux系統(tǒng)禁止root賬號(hào)遠(yuǎn)程登錄的命令
這篇文章主要介紹了Linux系統(tǒng)禁止root賬號(hào)遠(yuǎn)程登錄的方法,文中給大家提到linux下禁止root遠(yuǎn)程登錄和添加新用戶(hù),需要的朋友可以參考下2019-07-07linux網(wǎng)絡(luò)參數(shù)配置方法詳解
這篇文章主要介紹了linux網(wǎng)絡(luò)參數(shù)的配置方法,這樣可以讓你的服務(wù)器訪(fǎng)問(wèn)網(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-11Linux中對(duì)MySQL優(yōu)化實(shí)例詳解
這篇文章主要介紹了Linux中對(duì)MySQL優(yōu)化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05如何使用win10內(nèi)置的linux系統(tǒng)啟動(dòng)spring-boot項(xiàng)目
這篇文章主要介紹了如何使用​win10內(nèi)置的linux系統(tǒng)啟動(dòng)spring-boot項(xiàng)目,需要的朋友可以參考下2020-07-07