Unix下涉及的用戶共有四個。
實際用戶:當前實際登陸的用戶,取自登陸文件。
有效用戶:實際執行或訪問文件的用戶,通常與實際用戶相同。
設置用戶:是一個標記,並非真實的用戶。當執行文件時,將進程的有效用戶設置爲文件所有者的用戶ID。
保存的設置用戶:一個臨時變量性質的用戶,在實際用戶和有效用戶之間切換,適用於執行命令過程中所需的用戶權限切換。
下面以兩個情景爲例:
設有用戶A、B和可執行程序P。
A:對所有文件有讀、寫、執行權限
B:對所有文件有讀、執行的權限
P:由用戶A創建,功能爲寫一個文件
情景1:
1、以A用戶登陸系統
2、P執行時以B的用戶權限執行
3、執行P
此時,實際用戶爲A,執行P時的有效用戶爲B。
情景2:
1、以B用戶登陸系統
2、P設置了設置用戶
3、執行P
此時,實際用戶爲A,P執行時的有效用戶爲A
設置用戶與保存設置用戶時兩個完全不同的概念,這點很重要。
這裏需要吐槽下,這兩個名字,實在讓人無語。