本文主要介紹linux的uid是什么(linux中uid和gid是什么意思)?,下面一起看看linux的uid是什么(linux中uid和gid是什么意思)?相關(guān)資訊。
每個文件都有一個所有者,表明誰創(chuàng)建了該文件。同時,文件還有一個組號,表示文件所屬的組,通常是文件所有者所屬的組。
如果是可執(zhí)行文件,那么在執(zhí)行的時候,文件一般只有調(diào)用文件的用戶的權(quán)限。s:設(shè)置使文件擁有文件所有者 執(zhí)行階段的許可。典型的文件是/usr/bin/passwd。如果普通用戶執(zhí)行該文件,該文件可以在執(zhí)行過程中獲得root權(quán)限,這樣用戶 的密碼可以更改。
s:此權(quán)限僅對目錄有效。將目錄設(shè)置為該位后,任何用戶在該目錄中創(chuàng)建的文件與該目錄所屬的組具有相同的組。
粘性bit:這個位可以理解為防刪除位。一個文件能否被用戶刪除,主要取決于該文件所屬的組對該用戶是否有寫權(quán)限。如果沒有寫權(quán)限,則不能刪除該目錄中的所有文件,也不能添加新文件。如果您希望用戶能夠添加文件,但不能同時刪除它們,您可以對文件使用sticky bit。設(shè)置該位后,即使用戶對目錄有寫權(quán)限,也不能刪除文件。
讓 讓我們談?wù)勅绾尾僮鬟@些標(biāo)志,:
操作這些標(biāo)志與操作文件權(quán)限相同,都是chmod。有兩種操作方法。1)chmod u s temp-用setuid標(biāo)記臨時文件。(setuid僅對文件有效)chmod g s t:abc a-setuid位。如果該位為1,則意味著setuid b-setgid位被置位。如果該位為1,則意味著setgid c-stick已置位。y位,如果該位為1,則表示設(shè)置這些標(biāo)志后可以用ls -l查看sticky。如果有這些標(biāo)志,它們將顯示在原始執(zhí)行標(biāo)志位置。比如rw srw-r-表示有setuid標(biāo)志rw srw-表示有setgid標(biāo)志rwxrw-rwt表示有sticky標(biāo)志,原來的執(zhí)行標(biāo)志x在哪里?系統(tǒng)規(guī)定,如果這個位置有x,這些特殊符號顯示為小寫字母(s,s,t)。否則,它們顯示為大寫字母(s,s,t)。
要刪除一個文件,你不 您不必對此文件具有寫權(quán)限,但是您必須對此文件的父目錄具有寫權(quán)限。也就是說,即使你不 如果你對一個文件沒有寫權(quán)限,但是你對這個文件的父目錄有寫權(quán)限,你也可以刪除這個文件。;沒有目錄的寫權(quán)限,您可以 不要在這個目錄中創(chuàng)建文件。sticky可以在如何使一個目錄不僅允許任何用戶寫文件,而且防止用戶刪除其他人 這個目錄中的s文件。stciky通常只在目錄中使用,它不 在文件中不起任何作用。在一個目錄下(比如/tmp,權(quán)限為1777)設(shè)置了sticky位后,所有用戶都可以在這個目錄下創(chuàng)建文件,但是只能刪除自己創(chuàng)建的文件,這樣就保護(hù)了用戶可以寫的所有目錄下的用戶文件。(我沒有 t當(dāng)時在/tmp中設(shè)置了sticky位,而是在文件中設(shè)置,這也是我設(shè)置sticky位的原因。你也可以刪除你創(chuàng)建的文件的原因)。我們首先需要了解流程和許可。我們需要知道:中的每個進(jìn)程都有其有效的uid/gid來確定它在傳統(tǒng)unix文件系統(tǒng)中獲得的實(shí)際權(quán)限。然后,進(jìn)程由二進(jìn)制生成,從shell/shell腳本加載并執(zhí)行。正常情況下,進(jìn)程的有效uid/gid是從父進(jìn)程繼承來的,或者只是與shell的uid/gid相同。shell的uid/gid基于/etc/passwd。第3和第4位決定。當(dāng)我們有了上述概念,讓 讓我們看看suid對有效uid/gid的影響。如果:二進(jìn)制文件有suid/sgid,其有效id不是從父文件繼承的,而是基于二進(jìn)制文件本身的用戶/組。例如,如果prog1的所有用戶/組都是root,但是沒有suid/sgid,那么當(dāng)具有uid(500)/gid(500)的父進(jìn)程執(zhí)行prog1時,有效uid/gid是500...但是如果在prog1中設(shè)置了suid/sgid,那么有效的uid/gid就是root。一旦該進(jìn)程成為root用戶,它對文件系統(tǒng)的權(quán)限將不受限制。那個 這就是為什么我前面提到了特洛伊木馬和病毒的例子...試想一下,如果病毒的用戶/組設(shè)置為root在:,然后由普通用戶執(zhí)行,suid/sgid的有無會導(dǎo)致什么不同的結(jié)果?嗯,suid/sgid是系統(tǒng)中必須存在的(比如/usr/bin/passwd和/etc/shadow),但同時又極具殺傷力,應(yīng)用時一定要非常小心!因此,bash shell腳本本身并不支持suid/sgid。perl,除非另外安裝suid-perl-。登錄后ll 500 500 500 500,shell測試。passwd . process 500 500 0 500 fork(-r-s-x-x)并測試用戶fork二進(jìn)制文件passwd后,test屬于其他人并擁有該文件的x權(quán)限。因?yàn)樵O(shè)置了suid,所以fork出來的過程(passwd.process的euid =文件所有者的uid(passwd),即passwd.process . euid = passwd . owner . uid = 0 euid和guid用于進(jìn)程passwd . process在執(zhí)行文件影子時讀取、寫入、確認(rèn)訪問權(quán)限。-r-1 root root 855 sep 4 10 : 58/etc/shadow(passwd . uid = 0有r權(quán)限)文件shadow.owner.uid為0,有r權(quán)限。因?yàn)閜asswd.process . euid = shadow . power . uid = 0,所以測試用戶生成的進(jìn)程passwd . process擁有文件shadow-r-s-x-x1 rootrout 19336 sep 7 2004/usr的r權(quán)限。
標(biāo)簽:
文件目錄權(quán)限標(biāo)志用戶
了解更多l(xiāng)inux的uid是什么(linux中uid和gid是什么意思)?相關(guān)內(nèi)容請關(guān)注本站點(diǎn)。