在unix系統中,特權以及訪問控制,是基於使用者id和組id的。當需要增加特權或需要訪問並不允許訪問的資源時,我們需要更換自己的使用者id或組id,使得新id具有合適的特權或訪問許可權。與此類似,當程式需要降低其特權或阻止對某些資源的訪問時,也需要更換使用者id或組id,新id不具有相應特權或訪問這些資源的能力。
最小特權模型降低了由惡意使用者試圖哄騙我們的程式以未預料的方式使用特權造成的安全性風險。
可以用setuid函式設定實際使用者id和有效使用者id。
可以用setgid函式設定實際組id和有效組id
#include int setuid(uid_t uid);
int setgid(gid_t gid);
實際使用者id和實際使用者組id:標識我是誰。也就是登入使用者的uid和gid,比如我的linux以simon登入,在linux執行的所有的命令的實際使用者id都是simon的uid,實際使用者組id都是simon的gid(可以用id命令檢視)。
有效使用者id和有效使用者組id:程序用來決定我們對資源的訪問許可權。
int setreuid(uid_t ruid, uid_t euid);
int setregid(uid_t rgid, uid_t egid);
函式說明
setreuid()用來將引數ruid 設為目前程序的真實使用者識別碼,將引數euid 設定為目前程序的有效使用者識別碼。如果引數ruid 或euid值為-1,則對應的識別碼不會改變。
乙個非特權使用者總能交換實際使用者id和有效使用者id。這就允許乙個設定使用者id程式
程序控制之更改使用者ID和組ID
1.更改使用者id和組id 1.1.設定使用者id和設定組id 實際使用者id 我們實際上是誰 實際組id 有效使用者id 用於檔案訪問許可權檢查 有效組id 附加組id 儲存的設定使用者id 由exec函式儲存 儲存的設定組id 實際使用者id和實際組id標識我們是誰。這兩個欄位在登入時取自口令檔...
mysql更改使用者密碼
1 mysqladmin mysqladmin u username p password new password 2 手工更新授權表 mysql update user set password password new password where user username mysql fl...
Linux chmod更改使用者許可權
通過設定目錄或檔案的訪問許可權 系統命令分類 管理員 普通使用者 usr sbin sbin 管理員 bin usr bin 普通使用者 useradd 某個組指定管理員 ls 相對路徑 系統執行該指令碼順序 先從當前目錄找 path sbin ls bin ls ls bin ls 絕對路徑 推薦...