一 Linux的帳號與用戶組
1 每個登錄的用戶至少都會取得兩個ID,一個是用戶ID簡稱UID,一個是用戶組ID簡稱GID
2 每一個文件都會有所謂的所有者ID與用戶組ID,當我們有要顯示文件屬性的需求時,系統會依 據/etc/passwd與/etc/shadow的內容找到對應的帳號和組名在顯示出來
3 /etc/passwd的文件結構每一行代表的是一個帳號,有幾行就代表有幾個帳號在你的系統中,不過 需要注意的是裡面有很多的帳號本來就是系統正常運行所需要的,我們可以簡稱它為系統帳號,這些帳 號無法登錄系統
4 UID的用戶特性
0 當UID是0的時候代 表這個帳號是root,當要讓某個帳號具有root的權限時修改UID為0即可
1~499 保留給系統使用的ID,屬於系統帳號
500~65535 給一般的用戶使用(ubuntu系統是從1000開始)
5 一般用戶的密碼忘記了之後,可以使用root的身份直接修改一般用戶的密碼即可
如果是root的密碼忘記了,我們可以使用開機進入用戶維護模式然後修改
二 帳號管理
1 可以使用useradd來新建用戶,密碼的給予則使用passwd這個命令即可
2 UID的指定數值:系統給予一個帳號UID的時候,它是先參考UID_MIN設置取得最小數值, 由/etc/passwd查找最大的UID數值,將兩者相比,找出最大的那一個再加一就是新帳號的UID
3 要對一般的帳號新建密碼的時候需要使用"passwd 帳號"的格式,使用 "passwd"表示修改密碼
4 可以使用chage來顯示更詳細的密碼參數
5 可以使用usermod來修改某個帳號的參數
6 通常我們要刪除一個帳號的時候,你可以手動將/etc/passwd與/etc/shadow裡面的該帳號取消即可 ,一般而言,如果該帳號只是暫時不啟用的話,那麼將/etc/shadow裡面的帳號失效日期設置為0就可以 讓該帳號無法使用,如果是真的不想使用了我們可以使用userdel
7 可以使用groupadd來增加一個用戶組
8 可以使用groupmod來修改某個用戶
三 用戶切換
1 以"su -"直接將身份變成root即可,但是這個命令卻需要root密碼,也就是說如果你要 以su變成root的話,你的一般用戶就必須要有root的密碼才行
2 以"sudo 命令"執行root的命令串,由於sudo需要事先設置妥當,且sudo需要輸入用戶 自己的密碼,因此多人共同管理一台主機時,sudo比su來得好
3 單純使用"su"切換成為root的身份,讀取的變量設置方式為non-login shell的方式, 這種方式下很多原本的變量不會被改變。如果使用"su -"切換為root的身份的時候,可以使 用login shell的方式切換為root
4 如果想要執行一次root的命令,可以利用"su - -c 命令"的方式
5 並非所有人都能夠執行sudo,而是僅有/etc/sudoers內的用戶才能夠執行sudo這個命令
6 sudo的執行流程
1 當用戶執行sudo時,系統於/etc/sudoers文件中查找該用戶是否有執行sudo的權限
2 若用戶具有可執行sudo的權限後,便讓用戶輸入用戶自己的密碼來確認
3 若密碼輸入成功,便開始執行sudo後面的命令
7 除了root之外的其他帳號,若想要使用sudo執行屬於root的權限命令,則root需要使用visudo去改 /etc/sudoers,讓該用戶能夠使用全部root的命令功能
8 兩次執行sudo的間隔在5分鐘內,那麼再次執行sudo時就不需要再次輸入密碼了,如果sudo的操作 超過了5分鐘,那麼就得需要在輸入一次密碼
四 Linux主機的其它信息
1 如果想要知道目前已經登錄在系統上面的用戶,可以通過w或who來查詢
2 write可以直接將信息傳給接收者,write 用戶帳號
3 Linux操作系統上面,關於帳號和用戶組,其實記錄的就是UID/GID的數字而已
4 用戶帳號/用戶組 與UID/GID的對應,參考/etc/passwd 與/etc/shadow兩個文件
5 UID只有0與非0兩種,非0則為一般帳號,一般帳號又分為系統帳號和登錄者帳號
6 與用戶新建,更改,刪除有關的命令為 useradd,usermod,uesrdel
與用戶組新建,更改,刪除有關的命令為 groupadd,groupmod,groupdel
7 系統上面的帳號登錄情況查詢可以使用w,who,last,lastlog