Linux賬號管理與ACL許可權
阿新 • • 發佈:2019-02-17
1、登入shell
(1)/etc/passwd
①/etc/passwd檔案內容介紹,其中每一行的內容如下(共7列):
使用者名稱:密碼(都是x):UID:GID:使用者資訊說明:家目錄:使用者登入shell
②UID簡介
0 系統管理員,可以但不建議修改其他使用者的UID為0
1~499 系統使用者,其中1~99為系統使用者,100~499為使用者新增的系統服務賬戶
500~65535 一般使用者
③GID簡介
GID與/etc/group檔案有關
(2)/etc/shadow
①該檔案中存放了使用者的登入密碼,之所以不放在/etc/passwd中是因為程式的執行與許可權緊密相關,而許可權又與UID與GID相關,所以需要經常讀取/etc/passwd。為了保護密碼的安全,才將密碼轉移。
②/etc/shadow檔案內容如下(共9列):
使用者名稱:密碼:最近修改密碼的日期:密碼修改後不可被更動的天數:密碼需要重置的天數(一般為99999):密碼需要重置前的警告天數:密碼失效後的寬限天數:密碼失效日:保留欄位
2、忘記密碼
(1)passwd命令簡介
passwd -【lu】 使用者
-l 鎖住密碼,使普通使用者不能修改密碼
-u 解鎖使用者密碼
(2)修改密碼
①普通使用者
直接輸入passwd命令,不需要加任何引數,然後輸入新舊密碼即可。
②使用root使用者修改普通使用者密碼,只需輸入新密碼
passwd 使用者名稱
(3)忘記密碼
①普通使用者忘記密碼
使用root使用者身份登入,用“passwd 使用者名稱”命令重置
②root使用者忘記密碼
開機時以單人維護模式進入,再用passwd修改密碼
3、關於群組
(1)usermod命令簡介
usermod -G 附加分組 使用者名稱 ##將使用者新增/修改到附加分組
usermod -l 新使用者名稱 舊使用者名稱 ##修改使用者名稱
usermod -L 使用者名稱 ##鎖定使用者,使密碼無效
usermod -U 使用者名稱 ##解鎖使用者
usermod -a -G 附加分組 使用者名稱 ##在原來附加分組的基礎上再新增一個附加分組
(2)/etc/group
/etc/group內容如下(共4列):
組名:群組密碼(x):GID:組內使用者成員(以“,”隔開)
(3)初始群組
/etc./passwd中的GID就是初始群組,初始群組不需要在/etc/group中第4列填入使用者名稱
(4)groups命令簡介
groups 使用者名稱
(1)useradd
useradd 【-u UID】 【-g 初始群組】 【-G 附加群組】 【-mM】 【-c 說明欄】 【-d 家目錄】
【-s shell型別】 使用者名稱
-m 自動建立使用者的家目錄(普通使用者的預設選項)
-M 不自動建立使用者的家目錄(系統使用者預設值)
-r 建立系統賬號
-D useradd的預設值
插曲:檢視使用者家目錄
echo ~使用者名稱
(2)/etc/login.defs
UID/GID和密碼引數是參考的/etc/login.defs這個檔案,
(3)/etc/skel/*
使用者家目錄中的配置檔案就是拷貝的這個目錄下的
(4)userdel
user -r 使用者名稱
-r 連使用者的家目錄一併刪除
一般很少用這個命令,如果只是想讓賬號無法使用,只要將/etc/shadow中的第8列賬號失效日期設為0就行了。
5、查閱使用者資訊
(1)前面的useradd/usermod/userdel都是系統管理員才能用的命令,如果普通使用者想檢視使用者資訊,可以通過“finger”命令查詢,也可以使用“chfn”修改使用者的一般資訊。
(2)chsh
chsh -l 列出目前系統中的shell
chsh -s shell路徑 修改使用者的登入shell
(3)id
查閱UID、GID等
6、ACL許可權
6.1、什麼是ACL
傳統的許可權設定只能針對(使用者,使用者組,其他組)進行(r,w,x)之類的許可權設定,ACL可以針對單一使用者,單個檔案或目錄來進行更細緻的許可權設定。
6.2、啟動ACL
(1)ACL需要有檔案系統的支援才行,如何檢視檔案系統是否支援ACL,可以使用mount命令或者
dumpe2fs -h /dev/hda2
(2)如果沒有開啟ACL許可權,可以通過如下命令開啟
mount -o remount,acl /
如果想每次開機都生效,得在/etc/fstab中新增ACL許可權
6.3、使用ACL許可權
藉助getfacl和setfacl命令可以對檔案和使用者進行許可權設定
7、切換使用者身份
7.1、su
(1)su 【-lm】 【-c “指令”】 【使用者名稱】
- -與-l類似,代表切換使用者時,使用待切換使用者的環境配置
-m 與-p類似,表示切換使用者時,不使用待切換使用者的環境配置
-c 後面可以執行一次指令,指令必須用雙引號引起來
注:關於這個-c指令,類似於sudo,表示用一次root身份執行指令,需要先輸入root的密碼,執行完後又會變回普通使用者。
(2)使用exit可以離開su的環境
(3)使用su的缺點,必須知道root的密碼
7.2、sudo
(1)sudo可以讓當前使用者以其他使用者的身份執行指令,因此不是所有人都能使用sudo命令,只有在/etc/sudoers內的使用者才能執行sudo指令。
(2)sudo 【-b】 【-u 使用者名稱】 指令
-b 表示將後面的指令放到後臺程序執行,而不影響當前的shell
-u 後面可以接欲切換的使用者,如果沒有這個選項表示使用root
(3)sudo執行步驟如下:
(5)控制標準
(6)模組資訊
/etc/pam.d/* 每個程式個別的PAM配置檔案
/lib/security/* PAM模組檔案的實際目錄
/etc/security/* 其他PAM環境配置檔案
/usr/share/doc/pam-*/ 詳細的PAM說明檔案
(7)PAM的日誌記錄地址:/var/log/secure
10、主機上的使用者資訊交流
(1)查詢目前已登入系統的使用者 w/who
使用w時
第一行顯示當前時間,開機(up)多久,幾個使用者在系統上平均負載
(2)顯示每個賬號的最近登入時間 lastlog
lastlog會去讀/var/log/lastlog檔案
(3)登入使用者對談
write 使用者名稱 【使用者所在終端】
接下來輸入內容,按enter鍵傳送,按ctrl+c結束輸入
如果使用者不想接收資訊,可以輸入mesg n抵擋,但是不能抵擋root的資訊,解開資訊使用mesg y
(4)對所有人傳送資訊
wall “資訊內容”
按enter鍵傳送
11、一些檢查工具
(1)pwck
- 如果不帶使用者名稱,顯示的是當前使用者所屬的使用者組
- 如果帶使用者名稱,則顯示的是使用者名稱的所屬組
- 系統先去/etc/sudoers中搜尋該使用者是否有執行sudo的許可權
- 如果使用者有執行sudo的許可權,則讓其輸入自己的密碼
- 密碼正確就執行命令,root執行sudo不需要輸入密碼
auth | 身份驗證 |
account | 賬號驗證 |
session | 記載使用者在登入shell期間PAM的環境設定 |
passwd | 密碼驗證 |
required | 會返回驗證結果,但不會影響後續驗證 |
requisite | 會返回驗證結果,但是驗證失敗會中斷後續驗證 |
sufficient | 會返回驗證結果,但驗證成功會中斷後續驗證 |
optional | 主要用於顯示資訊,並不是用於驗證 |
pam_securetty.so | 限制root只能從安全的終端登入,/etc/securetty |
pam_nologin.so | 限制普通使用者是否能夠登入主機,如果/etc/nologin存在,則登入不了 |
pam_selinux.so | 驗證通過後,啟動SELinux |
pam_console.so | 幫助使用者通過特殊的終端介面登入系統 |
pam_loginuid.so | 驗證使用者UID |
pam_env.so | 如果需要設定額外的環境變數,可以參考/etc/security/pam_env.conf |
pam_unix.so | 這個模組比較重要,可以用在驗證階段的認證 |
pam_cracklib.so | 驗證密碼強度 |
pam_limits.so | ulimit就是使用的這個,參考/etc/security/limits.conf |
- 檢查/etc/passwd配置資訊
- 檢查家目錄是否存在
- 比對/etc/passwd和/etc/shadow