你知道Linux中的UID和GID的含義嗎
是不是大家看到UID(user id)和GID(group id),都會立馬說不就是用戶和用戶組ID。
但是。
當我們登陸Linux系統時,輸入自己的用戶名和密碼,這裡其實Linux系統并不認識你的用戶名(或者換一種說法,不是依賴于你的用戶名來識别你),它隻認識你的用戶名所對應的ID号(一串數字)。
直白一點,用戶名實際沒有ruan用,僅是為了方便用戶的記憶而已(對比域名和ip)。
如下圖:
查看odysee用戶UID和GID
Linux系統将所有用戶名稱與ID的對應關系都存儲在/etc/passwd文件中。
如下圖:
用戶組名稱和ID對應關系都存儲在/etc/group文件中。
1、 這裡大家可能會問,既然Linux系統不認識用戶名,文件是如何判别它的擁有者名稱和群組名稱的呢?
解:
每個文件都有自己的擁有者ID和組ID,當顯示文件屬性時,系統會根據/etc/passwd和 /etc/group文件中的内容,分别找到UID和GID對應的用戶名和群組名,然後顯示出來。
這裡就類似于數據庫中student表,拿着sno(學号)找對應的sname(姓名)。
如下圖所示:
stat groovy.txt
2、 做個小demo
實現讓odysee用戶無法進入自己的家目錄
提示:修改重要配置文件請提前備份
(1)修改odysee的UID
(2)查看剛剛odysee的groovy.txt文件
是不是發現本來的用戶名odysee變成了1000
前面我們已經說過了,每個文件都有自己的擁有者ID和組ID,當文件groovy拿着ID(1000)去/etc/passwd找自己的姓名時,發現沒有和1000匹配的姓名(因為我們剛剛把它的UID改為了9527)。所以隻能顯示UID。
(3) 從root切到odysee
下面居然提示沒有權限。
還回不了自己的家了。
ll home
drwx------ 3 1000 odysee 4096 May 22 11:04 odysee
是不是跟(2)一樣的原理。
該目錄隻有UID為1000的用戶可以進入,其餘的(不限root)一切免進(g、o位沒有權限,隻有u位有rwx權限)。
總結:
關于UID和GID大家是不是有了一點點新的認識。
關于/etc/passwd文件中用戶的UID别忘了改回去。
修改UID操作慎用!!!
感謝支持。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!