一、賬號安全
1.1系統帳號清理
#查看/sbin/nologin結尾的文件并統計
[root@root@localhost ~]# grep '/sbin/nologin$' /etc/passwd |wc -l
40#查看apache登錄的shell
[root@root@localhost ~]# grep 'apache' /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin#改變apache的登錄的shell
[root@root@localhost ~]# usermod -s /sbin/bash apache#查看更改結果
[root@root@localhost ~]# grep '/sbin/bash$' /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/bash
1.1.1鎖定賬戶和解鎖賬戶
1.usermod -L 和 usermod -U
#鎖定xiewei賬號
[root@root@localhost ~]# usermod -L xiewei#查看謝偉賬號
[root@root@localhost ~]# passwd -S xiewei
xiewei LK 1969-12-30 0 99999 7 -1 (Password locked.)#解鎖謝偉賬號
[root@root@localhost ~]# usermod -U xiewei#查看謝偉賬號狀態
[root@root@localhost ~]# passwd -S xiewei
xiewei PS 1969-12-30 0 99999 7 -1 (Password set, SHA512 crypt.)
2.passwd -l 和 passwd -u
#先查看狀態
[root@root@localhost ~]# passwd -S xiewei
xiewei PS 1969-12-30 0 99999 7 -1 (Password set, SHA512 crypt.)#鎖賬戶
[root@root@localhost ~]# passwd -l xiewei
Locking password for user xiewei.
passwd: Success#查看賬戶
[root@root@localhost ~]# passwd -S xiewei
xiewei LK 1969-12-30 0 99999 7 -1 (Password locked.)#解鎖賬戶
[root@root@localhost ~]# passwd -u xiewei
Unlocking password for user xiewei.
passwd: Success#查看賬戶狀態
[root@root@localhost ~]# passwd -S xiewei
xiewei PS 1969-12-30 0 99999 7 -1 (Password set, SHA512 crypt.)
3.usermod 和 passwd 兩個鎖賬戶的命令比較
①passwd -l
[root@root@localhost ~]# passwd -l xiewei
Locking password for user xiewei.
passwd: Success#查看passwd -l結果
[root@root@localhost ~]# grep 'xiewei' /etc/passwd
xiewei:x:1000:1000:xiewei:/home/xiewei:/bin/bash
xiewei1:x:1005:1005::/home/xiewei1:/bin/bash
[root@root@localhost ~]# grep 'xiewei' /etc/shadow
xiewei:!!$6$cE/PcSfzNmXqILGt$3x7ix5gmYqeqwkvEuqVq6cllhN3sxZco4Ez1L5E6i0DjssRC9gBp/Ds/0YqOgzYLJdsdvlhAAaVY5EE2h1BAy.::0:99999:7:::
xiewei1:$6$Y0MLY/PCRfQ/BZUN$rjGc5tm9njGip2L5zAi8LYAyz5/pEgQzB6kr/0w41uhA3L1dpS.xsGrUtmJV05P7mnG816l/lZ1OcDkRKONtf0:19894:0:99999:7:::
②usermod -l
[root@root@localhost ~]# usermod -L xiewei
[root@root@localhost ~]# ls[root@root@localhost ~]# grep 'xiewei' /etc/shadow
xiewei:!$6$cE/PcSfzNmXqILGt$3x7ix5gmYqeqwkvEuqVq6cllhN3sxZco4Ez1L5E6i0DjssRC9gBp/Ds/0YqOgzYLJdsdvlhAAaVY5EE2h1BAy.::0:99999:7:::
xiewei1:$6$Y0MLY/PCRfQ/BZUN$rjGc5tm9njGip2L5zAi8LYAyz5/pEgQzB6kr/0w41uhA3L1dpS.xsGrUtmJV05P7mnG816l/lZ1OcDkRKONtf0:19894:0:99999:7:::
[root@root@localhost ~]# grep 'xiewei' /etc/passwd
xiewei:x:1000:1000:xiewei:/home/xiewei:/bin/bash
xiewei1:x:1005:1005::/home/xiewei1:/bin/bash
?????????通過以上不難發現,/etcpasswd現實的結果都是一樣的,在信息描述之間出現了一個xiewei,但是再shadow文件中。我們也不難看出,使用usermod命令后,passwd密碼位前面只有一個“ !”號,而使用passwd命令后,passwd文件中密碼位前面有兩個"!!"。
? ? ? ? 但是兩者鎖定的嚴密性和效果基本相同。而且兩者的解鎖命令不可互調。
?1.1.2刪除賬號
userdel -r 用戶名
#查看并過濾有哪些xiewei賬號
[root@root@localhost ~]# grep 'xiewei' /etc/passwd
xiewei:x:1000:1000:xiewei:/home/xiewei:/bin/bash
xiewei1:x:1005:1005::/home/xiewei1:/bin/bash
xiewei2:x:1006:1006::/home/xiewei2:/bin/bash
xiewei3:x:1007:1007::/home/xiewei3:/bin/bash
xiewei4:x:1008:1008::/home/xiewei4:/bin/bash
xiewei5:x:1009:1009::/home/xiewei5:/bin/bash
xiewei6:x:1010:1010::/home/xiewei6:/bin/bash
xiewei7:x:1011:1011::/home/xiewei7:/bin/bash
xiewei8:x:1012:1012::/home/xiewei8:/bin/bash
xiewei9:x:1013:1013::/home/xiewei9:/bin/bash
xiewei10:x:1014:1014::/home/xiewei10:/bin/bash
xiewei11:x:1016:1016::/xiewei11/:/bin/bash
xiewei12:x:1017:1017::/xiewei12:/bin/bash
xiewei13:x:1018:1018::/xiewei13:/bin/bash#刪除賬號
[root@root@localhost ~]# userdel -r xiewei13#查看并過濾有哪些xiewei賬號
[root@root@localhost ~]# grep 'xiewei' /etc/passwd
xiewei:x:1000:1000:xiewei:/home/xiewei:/bin/bash
xiewei1:x:1005:1005::/home/xiewei1:/bin/bash
xiewei2:x:1006:1006::/home/xiewei2:/bin/bash
xiewei3:x:1007:1007::/home/xiewei3:/bin/bash
xiewei4:x:1008:1008::/home/xiewei4:/bin/bash
xiewei5:x:1009:1009::/home/xiewei5:/bin/bash
xiewei6:x:1010:1010::/home/xiewei6:/bin/bash
xiewei7:x:1011:1011::/home/xiewei7:/bin/bash
xiewei8:x:1012:1012::/home/xiewei8:/bin/bash
xiewei9:x:1013:1013::/home/xiewei9:/bin/bash
xiewei10:x:1014:1014::/home/xiewei10:/bin/bash
xiewei11:x:1016:1016::/xiewei11/:/bin/bash
xiewei12:x:1017:1017::/xiewei12:/bin/bash
?注意:?加-r選項和不加-r選項是有區別的
userdel 用戶名
:僅刪除用戶賬戶,保留用戶的所有文件。userdel -r 用戶名
:刪除用戶賬戶,并刪除用戶的主目錄和郵件目錄,連同所有內容一起刪除。
且要注意用戶在刪除時候沒有 正在運行的進行,否則可能會操作失敗
1.2密碼安全控制?
1.2.1修改密碼配置文件
vim /etc/login.defs?
?
PASS_MAX_DAYS 99999? ? ? #設置密碼有效期99999天。? ?默認99999天
PASS_MIN_DAYS ? 0 ? ?????????#表示自上次修改密碼以來,最少隔多少天后用戶才能再次修改密碼,默認值是 0
PASS_MIN_LEN ? ?5 ? ?????????????#密碼最小長度,對于root無效 ? 18位包含密碼復雜性 大寫 、小寫、字符、數字
注解:指定密碼的最小長度,默認不小于 5 位,但是現在用戶登錄時驗證已經被 PAM 模塊取代,所以這個選項并不生效。
PASS_WARN_AGE ? 7 ? ?????????#指定在密碼到期前多少天,系統就開始通過用戶密碼即將到期,默認為 7 天。
?1.2.2更改密碼
[xiewei@root@localhost ~]$ passwd
Changing password for user xiewei.
Changing password for xiewei.
(current) UNIX password:
New password:
BAD PASSWORD: The password is too similar to the old one
①:不能太相似,這里設置的新密碼是1234567,它則提示太相似(原密碼123456)
New password:
BAD PASSWORD: The password is shorter than 8 characters
?②:不能低于8位(root不受限制),這里設置了abcde
[xiewei@root@localhost ~]$ passwd
Changing password for user xiewei.
Changing password for xiewei.
(current) UNIX password:
passwd: Authentication token manipulation error
③:密碼不能為空
[xiewei@root@localhost ~]$ passwd
Changing password for user xiewei.
Changing password for xiewei.
(current) UNIX password:
passwd: Authentication token manipulation error
④:密碼不能設置太簡單
1.2.3?查看用戶密碼有效期
????????用于查看指定用戶賬戶的密碼有效期信息。它顯示了與用戶密碼相關的各種設置,包括密碼上次更改的日期、密碼過期的時間、密碼最小/最大有效期等。
chage -l?用戶名
[xiewei@root@localhost ~]$ chage -l xiewei
Last password change : never
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
1.Last password change:
- 說明:最后一次更改密碼的日期。
- 值:
never
- 解釋:密碼從未更改過。這意味著自賬戶創建以來,用戶從未修改過密碼。
2.Password expires:
- 說明:密碼過期的日期。
- 值:
never
- 解釋:密碼永不過期。用戶可以一直使用當前密碼,不需要定期更改。
3.Password inactive:
- 說明:密碼失效的日期。
- 值:
never
- 解釋:密碼永不失效。即使用戶長時間不登錄,密碼也不會被自動鎖定。
4.Account expires:
- 說明:賬戶過期的日期。
- 值:
never
- 解釋:賬戶永不過期。用戶可以一直使用這個賬戶,不會因為過期而被鎖定或禁用。
5.Minimum number of days between password change:
- 說明:兩次密碼更改之間的最小天數。
- 值:
0
- 解釋:用戶可以隨時更改密碼,沒有任何限制。用戶可以在同一天內多次修改密碼。
6.Maximum number of days between password change:
- 說明:兩次密碼更改之間的最大天數。
- 值:
99999
- 解釋:用戶可以長達 99999 天(約 273 年)不更改密碼。實際上,這意味著密碼永不過期,因為這一期限極長。
7.Number of days of warning before password expires:
- 說明:密碼過期前警告用戶的天數。
- 值:
7
- 解釋:如果設置了密碼過期日期,系統會在密碼過期前 7 天警告用戶需要更改密碼。然而,由于上述設置顯示密碼永不過期,因此這一警告不會實際觸發。
?1.3歷史命令
歷史命令可能會有隱私,比如密碼什么的,所以我們要管理好我們的歷史命令
history? 查看歷史命令
1.3.1臨時清理歷史命令
[root@root@localhost ~]# history -c
[root@root@localhost ~]# history35 history
?重啟后可恢復,或者使用history -r
????????我們的歷史命令會保存在一個文件中,history -c只能臨時清理,重啟后還會將該文件中的內容加載到history命令中。history -r這個命令,則是將該文件中內容重新都取到history中。?
簡單點說
- 在當前 shell 會話中,命令歷史記錄保存在內存中。可以使用
history
命令查看這些歷史記錄。 - 使用
history -w
命令可以強制將當前內存中的歷史記錄寫入~/.bash_history
文件。
?????????history
命令展示的是當前 shell 會話中的命令歷史記錄,包括內存中的未寫入文件的記錄以及從 ~/.bash_history
文件中讀取的記錄。嚴格來說,這些內容不是緩存,而是內存中的記錄和磁盤文件的結合。
?
?history -c && history -w
則會將shell 會話中的命令歷史記錄,還有文件中的命令歷史記錄清除
?拓展
關于環境變量的讀取順序:
用戶登錄 ->> 加載~/.bash_profile --> bash_profile中配置了首先是使~/.bashrc生效。.bash_profile”文件中的命令將在該用戶每次登錄時被執行。.bashrc”文件中的命令會在每次加載“/bin/bash。
# 清除歷史命令
vim ~/.bashrc
# 添加以下內容
echo '' > ~/.bash_history
在~/.bash_profile
和 ~/.bashrc
中添加以上內容,就會開機自動刪除歷史命令
????????我們可以將echo '' > ~/.bash_history這個命令加入到配置文件中,使其開機加載時候自動生效。我們還可以在/etc/skel/.bash_logout文件中添加下面這行rm -f $HOME/.bash_history 。這樣,當用戶每次注銷時,.bash_history文件都會被刪除。
????????此外?我們還可以設置歷史命令保存條數
設置全局 HISTSIZE:
???????sudo vim /etc/profile # 添加以下內容
HISTSIZE=18#這樣歷史命令只保存18條
設置當前用戶 HISTSIZE:
vim ~/.bash_profile # 添加以下內容
export HISTSIZE=15歷史命令保存15條
1.4終端自動注銷
??TMOUT
是一個環境變量,用于指定 Bash shell 的自動注銷時間(單位為秒)。如果用戶在指定的時間內沒有進行任何操作,Shell 會自動退出。老樣子,我們還是分為當前用戶配置和全局配置
以下我們以“閑置600秒后自動注銷”為例
1.4.1全局配置
vi /etc/profile
#適用于新登錄用戶 ,因為這個配置文件會在登錄過程中讀取export TMOUT=600
1.4.2當前用戶配置
[root@localhost ~]# export TMOUT=600
?1.4.3取消當前用戶配置
[root@localhost ~]# unset TMOUT
????????需要注意的是,當正在執行程序代碼編譯、修改系統配置等耗時較長的操作時,應避免 設置 TMOUT 變量。必要時可以執行“unset TMOUT”命令取消 TMOUT 變量設置
拓展
為什么在耗時操作時避免設置 TMOUT
????????在進行耗時操作(如程序編譯、系統配置修改等)時,用戶可能長時間不進行鍵盤輸入。如果 TMOUT
設置了一個較短的時間,這種長時間不活動可能會導致 Shell 在任務尚未完成時自動退出,從而中斷這些操作。這種中斷可能導致未保存的工作丟失或系統處于不一致狀態。
舉個例子
①編譯開始前:
????????你可能已經設置了 TMOUT=300
(5 分鐘)。由于編譯過程需要較長時間,而且你不需要在這段時間內進行任何操作,因此可能會導致 Shell 自動注銷,編譯過程被中斷。
②取消 TMOUT
設置:
在開始編譯前,執行 unset TMOUT
來取消自動注銷:
unset TMOUT
③編譯完成后:
如果你仍希望保持自動注銷功能,可以在編譯完成后重新設置 TMOUT
:
export TMOUT=300
?1.5限制su命令用戶
????????默認情況下,任何用戶都允許使用 su 命令,從而有機會反復嘗試其他用戶(如 root) 的登錄密碼,這樣帶來了安全風險。為了加強 su 命令的使用控制,可以借助于 pam_wheel 認證模塊,只允許極個別用戶使用 su 命令進行切換。實現過程如下:將授權使用 su 命令 的用戶添加到 wheel 組,修改/etc/pam.d/su 認證配置以啟用 pam_wheel 認證。
配置行解釋
1. # auth sufficient pam_rootok.so
它的含義如下:
- auth: 認證模塊類型,表示這是一種認證操作。
- sufficient: 控制標志,表示如果此模塊成功,那么不再需要繼續檢查其他模塊。即,這個模塊認證成功后,不需要繼續其他認證步驟。
- pam_rootok.so: 模塊名稱,
pam_rootok
模塊會檢查當前用戶是否是超級用戶(UID 為 0)。如果當前用戶是 root,則認證成功。
啟用這行的效果是,如果當前用戶是 root,則不需要進行進一步的認證,可以直接使用 su
命令。
2. #auth required pam_wheel.so use_uid
這行被注釋掉了。移除 #
后它的含義如下:
- auth: 認證模塊類型,表示這是一種認證操作。
- required: 控制標志,表示該模塊必須成功通過認證才能繼續其他模塊。如果該模塊失敗,則整個認證過程會失敗。
- pam_wheel.so: 模塊名稱,
pam_wheel
模塊限制哪些用戶可以使用su
命令。 - use_uid: 模塊參數,表示在檢查用戶組時使用調用者的真實 UID,而不是有效 UID。
啟用這行的效果是,只有屬于 wheel 組的用戶才可以使用 su
命令來切換用戶身份。如果調用 su
的用戶不在 wheel 組中,則認證失敗。
?拓展
在 Linux 的 PAM(Pluggable Authentication Modules,可插拔認證模塊)系統中,控制標志用于決定模塊的結果如何影響整體認證過程。控制標志的設置對于 PAM 的工作方式和安全性至關重要。以下是所有控制標志及其解釋:
控制標志的類型
1.required
auth required pam_unix.so
描述:該模塊必須成功通過認證,否則整個 PAM 認證過程會失敗。
行為:無論該模塊是否成功,都會繼續執行后續的 PAM 模塊。但是如果該模塊失敗,最終的認證結果將會失敗。
使用場景:通常用于關鍵的認證步驟,例如密碼驗證。
2.requisite
auth requisite pam_securetty.so
描述:該模塊必須成功通過認證,否則整個 PAM 認證過程立即失敗,并且不再繼續后續的 PAM 模塊。
行為:如果該模塊失敗,會立即終止認證過程,并返回失敗結果。
使用場景:用于非常關鍵的認證步驟,一旦失敗無需繼續其他檢查。
3.sufficient
auth sufficient pam_wheel.so trust
描述:如果該模塊成功通過認證,則整個 PAM 認證過程立即成功,不再繼續后續的 PAM 模塊。如果該模塊失敗,則繼續執行后續的 PAM 模塊。
行為:如果該模塊成功,后續模塊不會被執行,認證立即成功;如果該模塊失敗,則不會影響最終結果,繼續執行后續模塊。
使用場景:用于可選的認證步驟,如果成功即可終止認證過程。
4.optional
session optional pam_motd.so
描述:該模塊的成功或失敗不會影響最終的認證結果,除非它是唯一指定的模塊。
行為:不論該模塊成功或失敗,都會繼續執行后續的 PAM 模塊,最終結果取決于其他模塊。
使用場景:用于非關鍵的認證步驟,例如記錄日志或顯示消息。
5.include
auth include common-auth
描述:該控制標志指示 PAM 去包括指定的配置文件中的所有模塊。
行為:會將指定文件中的所有 PAM 模塊配置包含進來,并按照包含的位置執行。
使用場景:用于復用其他 PAM 配置文件中的配置。
6.substack
auth substack common-auth
描述:類似于 include
,但會將包含的模塊結果返回給調用模塊,并根據控制標志處理。
行為:會將指定文件中的所有 PAM 模塊配置包含進來,并根據控制標志處理結果。
使用場景:用于將一組模塊作為一個子堆棧包含并控制其結果處理。
7.binding
auth binding pam_unix.so
描述:與 required
類似,但如果該模塊失敗,后續的模塊仍會被執行。然而,如果此模塊失敗,會立即返回失敗結果。
行為:如果模塊失敗,會立即標記認證失敗,但不會終止后續模塊的執行。
使用場景:類似于 required
,但允許后續模塊繼續執行。
@示例配置文件@
以下是一個示例的 PAM 配置文件,展示了不同控制標志的使用:
auth ? required ? pam_env.so
auth ? required ? pam_unix.so
auth ? sufficient pam_ldap.so
auth ? requisite ? pam_securetty.so
auth ? optional ? pam_tally2.so
account required ? pam_unix.so
account sufficient pam_localuser.so
password required ? pam_unix.so
session optional ? pam_motd.so
總結
-
required:關鍵模塊,必須成功,但會繼續后續模塊。
-
requisite:關鍵模塊,必須成功,失敗則立即終止。
-
sufficient:可選模塊,成功則立即終止,失敗則繼續。
-
optional:非關鍵模塊,成功或失敗都不影響結果。
-
include:包含指定配置文件中的模塊。
-
substack:包含并控制結果的子堆棧模塊。
-
binding:類似
required
,但失敗會立即返回結果,同時繼續后續模塊。
理解這些控制標志對于正確配置和管理 PAM 模塊以確保系統的安全性和功能性至關重要。
#加入組
[root@localhost ~]# sudo gpasswd -a xiewei wheel
Adding user xiewei to group wheel
#查看組成員
[root@localhost ~]# grep wheel /etc/group
wheel:x:10:jingqingguo,xiewei
????????
????????默認情況下,任何用戶都允許使用 su 命令,從而有機會反復嘗試其他用戶(如 root) 的登錄密碼,這樣帶來了安全風險。為了加強 su 命令的使用控制,可以借助于 pam_wheel 認證模塊,只允許極個別用戶使用 su 命令進行切換。
1.6PAM安全認證?
1.6.1什么是 PAM(Pluggable Authentication Modules)
????????PAM 是 Linux 系統中用于認證的一種靈活的機制,它允許系統管理員通過配置來選擇程序的認證方式。PAM 的模塊化設計使其能夠動態加載和配置,以滿足不同應用程序的認證需求。
1.6.2PAM 的工作原理
PAM 認證的過程通常分為以下幾個步驟:
-
服務(Service):確定要使用 PAM 進行認證的應用程序或服務。
-
配置文件(PAM Configuration File):PAM 加載位于
/etc/pam.d/
目錄下的對應配置文件。 -
認證模塊(PAM Module):根據配置文件,調用位于
/lib64/security/
下的認證模塊進行認證。
1.6.3配置 PAM 認證的過程
1.編輯配置文件:
- PAM 配置文件位于
/etc/pam.d/
目錄下,每個應用程序都有一個對應的配置文件。 - 以
.so
結尾的文件是 PAM 模塊(動態函數庫模塊),這些模塊定義了具體的認證方式。
2.配置文件格式: 每一行代表一個獨立的認證過程,通常包含四個字段:
①認證類型(Type):
auth
:用戶身份認證,如輸入密碼。account
:檢查賬戶屬性,如賬戶是否過期。password
:用于更新用戶信息,如修改密碼。session
:管理登錄會話,如掛載文件系統。
②控制標記(Control Flag):
required
:必須成功,否則整個認證失敗,但繼續執行后續模塊。requisite
:必須成功,否則立即失敗,終止認證過程。sufficient
:成功即返回,不再執行后續模塊;失敗則忽略。optional
:結果可忽略,一般用于顯示信息。
③模塊路徑(Module Path):默認在 /lib64/security/
下,非默認路徑需填寫絕對路徑。
④模塊參數(Module Arguments):傳遞給模塊的參數,多個參數用空格分隔。
1.6.4關鍵知識點總結
-
PAM 模塊化設計:允許靈活配置認證方式,提供高效和安全的用戶認證。
-
配置文件與模塊:位于
/etc/pam.d/
和/lib64/security/
目錄下,通過配置文件調用模塊實現認證。 -
認證類型與控制標記:分別定義認證的類型和控制流程,確保認證的靈活性和安全性。
?
1.7sudo 機制提升權限詳解
1.7.1 什么是 sudo?
????????在 Linux 系統中,sudo(superuser do)是一種允許普通用戶以超級用戶或其他用戶身份執行特定命令的機制。它避免了直接使用 root 用戶,從而減少了安全風險,同時又能滿足部分管理權限的需求。
1.7.2 sudo 的優勢
-
權限分配精細:管理員可以精確控制哪些用戶能以何種身份執行哪些命令,而無需共享 root 密碼。
-
操作追蹤:sudo 可以記錄執行過的命令,便于審計和跟蹤。
-
安全性:減少了直接使用 root 用戶的風險,即使普通用戶獲得某些權限,也受到限制和監控。
1.7.3sudo 配置文件(/etc/sudoers)
sudo 的配置文件是 /etc/sudoers
,通常使用 visudo
命令編輯,而不是直接使用 vi
或其他編輯器。這是因為 visudo
工具會在保存配置文件時檢查語法錯誤,避免出現無法訪問系統的問題。
1.7.4sudoers 文件格式和基本配置
sudoers 文件中的授權記錄基本格式如下:
user MACHINE=COMMANDS
-
user:指定的用戶名,或者使用
%group
的形式指定用戶組(例如%admin
)。 -
MACHINE:配置文件所在的主機名,通常設為
localhost
或實際主機名。 -
COMMANDS:允許用戶以 sudo 方式執行的命令列表,需要使用完整的命令路徑,多個命令用逗號分隔。
1.7.5sudoers 文件中的主要配置參數
-
NOPASSWD:指定用戶執行某些命令時不需要輸入密碼。
-
PASSWD:指定用戶執行某些命令時需要輸入密碼。
-
Runas:允許用戶以某個用戶的身份執行命令,常見的如
(root)
。
1.7.6sudo 命令的常用參數選項
-
-l:列出當前用戶可以執行的以及被禁止的命令列表。
-
-v:驗證用戶的時間戳,如果在短時間內執行多個 sudo 命令,可以免去重復輸入密碼的步驟。
-
-u:指定以另一個用戶的身份執行特定操作。
-
-k:刪除時間戳,下一次執行 sudo 命令需要重新輸入密碼。
1.7.7示例和案例解析
示例一:授權用戶執行特定命令
# 編輯 sudoers 文件 visudo ? # 允許用戶 wangliu 執行 /usr/sbin/useradd 和 /usr/sbin/usermod 命令 wangliu ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod
示例二:允許用戶臨時創建網卡
# 允許用戶 Tom 在 kgc 主機上以 root 身份執行 ifconfig 命令 Tom kgc=(root) NOPASSWD: /usr/sbin/ifconfig
1.7.8使用 sudo 的注意事項
-
安全性考慮:盡量減少允許的命令范圍,避免賦予不必要的權限。
-
審計和監控:定期檢查 sudoers 文件,審計用戶的 sudo 使用記錄。
-
密碼管理:根據安全策略設置是否要求輸入密碼以及時間戳的管理。
1.7.9結論
????????sudo 是管理 Linux 系統中權限的重要工具,能有效降低直接使用 root 用戶所帶來的安全風險。通過詳細配置 sudoers 文件,管理員可以精確控制用戶的權限,以及執行特定命令的方式和范圍。這種方式不僅提升了系統的安全性,也方便了系統管理工作的進行。
?