使用者管理:
useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage
組管理:
groupadd, groupdel, groupmod, gpasswd
/etc/login.defs
環境變數:
path
histsize
shell
/etc/shells:指定了當前系統可用的安全shell
userdel:
userdel [option] username
-r: 同時刪除使用者的家目錄
id:檢視使用者的帳號屬性資訊
-u-g
-g-n
finger: 檢視使用者帳號資訊
finger username
修改使用者帳號屬性:
usermod
-u uid
-g gid
-a -g gid:不使用-a選項,會覆蓋此前的附加組;
-c-d -m:
-s-l
-l:鎖定帳號
-u:解鎖帳號
chsh: 修改使用者的預設shell
chfn:修改注釋資訊
密碼管理:
passwd [username]
--stdin
-l-u
-d: 刪除使用者密碼
pwck:檢查使用者帳號完整性
組管理:
建立組:groupadd
groupadd
-g gid
-r:新增為系統組
groupmod
-g gid
-n grpname
groupdel
gpasswd:為組設定密碼
newgrp grpname <--> exit
實際使用者id和實際組id:用於表示當前linux的登入使用者,在會話中並不會改變,只有在使用sudo等命令時會暫時發生改變。
有效使用者id,有效組id,附加組id:用於確定每個檔案的訪問組許可權,儲存在stat結構體中的st_mode分量中。
s_irusr:使用者讀
s_iwusr:使用者寫
s_ixusr:使用者執行
s_irgrp:組讀
s_iwgrp:組寫
s_ixgrp:組執行
s_iroth:其他使用者讀
s_iwoth:其他使用者寫
s_ixoth:其他使用者執行
儲存的設定組id和儲存的設定使用者id:儲存了該使用者的有效組id和有效使用者id的乙個副本
測試檔案訪問許可權函式:
#include
int access(const char *pathname, int mode);
umask函式:
mode_t umask(mode_t cmode);
chmod函式和fchmod函式:
umask函式只能在建立檔案的時候給定檔案的許可權,而chmod和fchmod函式可以修改已經存在的檔案的許可權。chmod可以在任何時候修改指定檔案的許可權,而fchmod需要在檔案被開啟後使用檔案描述符來修改。
#include
#include
int chmod(const char *filename, mode_t mode);
int fchmod(int fd, mode_t mode);
修改檔案的使用者id和使用者組id:chown,fchown,lchown
rename函式:
#include
int rename(const char *oldname, const char *newname);
檔案的其他高階操作函式:
1. #include
int dup(int fd);
int dup2(int fd, int fd2);
2. #include
#include
#include
int fcntl(int fd, int cmd, int arg);
第二個引數:
f_dupd:返回大於或等於arg的最低序號的檔案描述符。該功能可以由dup函式實現。新的檔案描述符與舊的可以互換使用。呼叫成功時,返回值為新的檔案描述符。
f_getfd:獲得close-on-exec標誌。如果最後一位是0,則該標誌沒有設定。返回值為0或1.
f_setfd:設定close-on-exec標誌為指定的值arg(只有最後一位有效,為0或1)
f_getfl:獲得檔案的開啟方式。返回所有的標誌位,標誌位的含義與open函式中相同。
f_getlk:獲得本程序得到鎖的第乙個鎖的flock結構。
f_setlk:獲得離散的檔案鎖,不等待。
f_setlkw:獲得離散的檔案鎖,必要時等待。
f_getown:返回當前接受sigio或sigurg訊號(signal)的程序id或程序組。程序id以負值返回。
f_setown:設定程序或程序組接受sigio和sigurg訊號,程序組id以負值返回。程序id以正值指定。
檔案鎖:在文已經共享的情況下如何操作,也就是當多個程序同時操作同乙個檔案時,我們怎麼保證檔案資料的正確性。linux通常採用的方法是檔案上鎖,來避免共享資源的產生競爭狀態。
檔案鎖包括建議性鎖和強制性的鎖。建議性的,顧名思義,相對溫柔一些,在對檔案進行鎖操作時,會檢測是否已經有鎖存在,並且尊重已有的鎖。在一般的情況下,核心和系統都不使用建議鎖。強制性的鎖是由核心執行的鎖,當乙個檔案被上鎖進行寫入操作的時候,核心將阻止其他程序對其進行讀寫操作。採取強制性的鎖對效能的影響很大,每次進行讀寫操作都必須檢查是否有鎖存在。
fcntl函式返回檔案狀態標誌:
o_rdonly:唯讀
o_wronly:只寫
o_rdwr:讀寫
o_nonblock:非阻塞模式
o_sync:等待資料和屬性寫完成
o_dsync:等待資料寫完成
o_rsync:同步讀寫
o_fsync:等待寫完成
o_async:非同步i/o操作
truncate和ftruncate函式:
#include
int truncate(char *filepath, size_t len);
int ftruncate(int fd, size_t len);
remove函式:
#include
int remove(const char *pathname);
目錄檔案操作:
mkdir和rmdir
#include
#include
#include
int mkdir(const char *pathname, mode_t mode);//建立乙個目錄
int rmdir(const char *pathname);//刪除乙個目錄
int chdir(const char *pathname);//改變工作路徑
int fchdir(int fd);//改變檔案工作路徑
char *getcwd(char *buf, size_t size);//獲取檔案的完整路徑
#include
dir *opendir(const char *pathname);//開啟目錄,返回的是乙個dir指標,是乙個內部結構,用來儲存被度的目錄的有關資訊。
int close(dir *dp);//關閉目錄,引數是乙個內部結構指標
struct dirent *readdir(dir *dp);//讀目錄,返回乙個目錄dirent結構體指標。
struct dirent
;
LInux 使用者管理
最近在使用nagios的時候,需要新增一些使用者和組的資訊。需要整理一下,有些記不清楚了。原文連線 http www.g loaded.eu 2005 11 06 manage users from the command line userinfo 使用者資訊 命令id 顯示使用者基本資訊 命令u...
Linux使用者管理
0 產看使用者uid gid 等資訊 id 使用者名稱 1 linux使用者型別 1 超級使用者 root uid 0 2 偽使用者 uid 1 499之間 3 普通使用者 uid 500 60000之間 2 配置檔案 1 使用者資訊檔案 etc passwd 2 密碼檔案 etc shadow 3...
Linux 使用者管理
1 linux裡檢視所有使用者 linux裡,並沒有像windows的net user,net localgroup這些方便的命令來管理使用者.xwindows介面的就不說了.1 在終端裡.其實只需要檢視 etc passwd檔案就行了.2 看第三個引數 500以上的,就是後面建的使用者了.其它則為...