鍍金池/ 問(wèn)答/Linux/ Linux權(quán)限問(wèn)題

Linux權(quán)限問(wèn)題

  1. 以普通用戶權(quán)限創(chuàng)建一個(gè)目錄;
  2. 切換到root用戶,在第一步創(chuàng)建的目錄中新建一個(gè)文件;
  3. 再次切換到普通用戶,發(fā)現(xiàn)居然可以刪除root寫的文件。

root賬號(hào)創(chuàng)建的文件怎么會(huì)被普通用戶刪掉呢?和目錄的所屬主是普通用戶有關(guān)么?

圖片描述

回答
編輯回答
刮刮樂(lè)

用戶沒(méi)有刪除該文件, 是系統(tǒng)刪的。用戶只是從自己的目錄中移除了該文件。系統(tǒng)已刪除該文件, 因?yàn)槠湟糜?jì)數(shù)已降至零。從目錄中刪除文件的用戶碰巧將其引用計(jì)數(shù)降至零, 這只是偶然的。(如果文件被硬鏈接到另一個(gè)目錄, 或者打開了一個(gè)句柄, 則該文件將不會(huì)被刪除。

系統(tǒng)在其引用計(jì)數(shù)降至零時(shí)自動(dòng)刪除文件。文件的所有者無(wú)關(guān)緊要。除了文件所有者之外, 其他人可以將文件的引用計(jì)數(shù)拖到零。

從目錄中刪除文件 (稱為 "取消鏈接" unliking) 是對(duì)目錄的操作。取消文件將減少其引用計(jì)數(shù)。

同樣, 所有者以外的用戶可以關(guān)閉未鏈接到任何目錄的文件的最后一個(gè)句柄。關(guān)閉該句柄也會(huì)刪除該文件, 因?yàn)橐糜?jì)數(shù)將會(huì)降至零。

換個(gè)思路可以理解為: 刪除文件是對(duì)目錄的操作--對(duì)目錄具有寫權(quán)限的任何用戶都可以刪除包含的文件 (除非在目錄中設(shè)置了粘滯位 (T 或 01000))。

不是我的答案,我只是答案的搬運(yùn)工:
https://superuser.com/questio...

2017年3月23日 11:19