安全及應用(更新)

一、賬號安全

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 -Lusermod -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 -lpasswd -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.usermodpasswd 兩個鎖賬戶的命令比較

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 認證的過程通常分為以下幾個步驟:

  1. 服務(Service):確定要使用 PAM 進行認證的應用程序或服務。

  2. 配置文件(PAM Configuration File):PAM 加載位于 /etc/pam.d/ 目錄下的對應配置文件。

  3. 認證模塊(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 文件,管理員可以精確控制用戶的權限,以及執行特定命令的方式和范圍。這種方式不僅提升了系統的安全性,也方便了系統管理工作的進行。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40751.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android增量更新----java版

一、背景 開發過程中,隨著apk包越來越大,全量更新會使得耗時,同時浪費流量,為了節省時間,使用增量更新解決。網上很多文章都不是很清楚,沒有手把手教學,使得很多初學者,摸不著頭腦&a…

2011年的數字IC設計面經

2011年老羅寫的面經,轉眼間2024年了,大家湊合著看吧,可以順便看看2011年的應屆生薪資。 本人通信工程碩士,非電子科班出身,主要找數字IC設計的工作,找工作找了一個月左右,還算滿意吧&#xff0…

邊緣概率密度、條件概率密度、邊緣分布函數、聯合分布函數關系

目錄 二維隨機變量及其分布離散型隨機變量連續型隨機變量邊緣分布邊緣概率密度舉例邊緣概率密度 條件概率密度邊緣概率密度與條件概率密度的區別邊緣概率密度條件概率密度舉個具體例子 參考資料 二維隨機變量及其分布 離散型隨機變量 把所有的概率,都理解成不同質量…

R迅速切換目錄 -R語言002

實用小操作系列 R定位當前目錄 getwd() [1] "/data/Rprofile1" #當前工作目錄,因為他讀取文件都是相對路徑,進當前目錄,一般不考慮絕對路徑,寫代碼容易亂呀,切目錄最簡單完善 R切換工作目錄 setwd(&q…

邏輯圖框架圖等結構圖類圖的高效制作方式不妨進來看看

**邏輯圖框架圖等結構圖類圖的高效制作方式不妨進來看看** 基于我們每天都在處理大量的數據和信息。為了更清晰地理解和傳達這些信息,結構圖、邏輯圖和框架圖等可視化工具變得越來越重要。然而,如何高效地制作這些圖表并確保其準確性和易讀性呢&#xf…

RedHat運維-LinuxSELinux基礎4-端口綁定SELinux上下文

1. SELinux將一個_________與一個SELinux上下文相連接; 2. SSH協議將22/tcp端口與__________SELinux上下文相聯系; 3. HTTP協議將80/tcp、443/tcp端口與____________SELinux上下文相聯系; 4. 列出所有端口的SELinux上下文信息的方法是_______…

Mongodb索引簡介

學習mongodb,體會mongodb的每一個使用細節,歡迎閱讀威贊的文章。這是威贊發布的第84篇mongodb技術文章,歡迎瀏覽本專欄威贊發布的其他文章。如果您認為我的文章對您有幫助或者解決您的問題,歡迎在文章下面點個贊,或者關…

Windows密碼憑證獲取

Windows HASH HASH簡介 hash ,一般翻譯做散列,或音譯為哈希,所謂哈希,就是使用一種加密函數進行計算后的結果。這個 加密函數對一個任意長度的字符串數據進行一次數學加密函數運算,然后返回一個固定長度的字符串。…

常用字符集與亂碼原因

1.ASCII字符集:僅對英文字符編碼,每個字符用1B編碼,7位二進制足以表示所有ASCII字符集,因此最高位始終為0 2.GBK字符集:GB2312字符集(簡體中文字符集)BIG5字符集(臺灣地區繁體中文字…

服裝購物商城系統小程序-計算機畢業設計源碼35058

摘要 服裝購物商城系統小程序,依托Spring Boot框架的強大支持,為用戶呈現了一個功能豐富、體驗流暢的在線購物平臺。該系統不僅涵蓋了商品展示、用戶注冊登錄、購物車管理、訂單處理、支付集成等核心購物流程,還引入了個性化推薦算法&#xf…

Jmeter使用JSON Extractor提取多個變量

1.當正則不好使時,用json extractor 2.提取多個值時,默認值必填,否則讀不到變量

什么是集港??貨代小白快來點贊收藏-深圳全球利物流有限公司

集港是什么意思? 集港的定義 集港是指將分散在各處的集裝箱集中到港口碼頭堆場的過程,即把各地的集裝箱匯集到港區,準備裝船。在船掛靠碼頭之前,碼頭會制定集港計劃,安排貨船的集裝箱在某個時間段內進入碼頭并擺放好,…

【js】this指向問題

1.首先先明確,this會出現在哪里。 this出現在全局作用域中,或函數作用域中(普通函數、箭頭函數)。 對象是不產生作用域的,對象的{}和函數的{}不一樣,this并不會直接出現在對象或類中,只會出現在…

Android SurfaceFlinger——屏幕狀態初始化(二十二)

對于開機啟動動畫前期準備的相關步驟,我們已經分析了前 5 個,對于第 6 步調用 eglGetDisplay() 函數對 OpenGL ES 初始化并獲取默認屏幕,我們在介紹 OpenGL ES 的時候也進行了詳細的分析,下一步我們我們來分析對屏幕的狀態進行初始化。 1)getInternalDisplayToken:獲取顯…

pycharm小游戲制作

以下是一個使用 Python 和 PyGame庫在 PyCharm中創建一個簡單的小游戲(貪吃蛇游戲)的示例代碼,希望對您有所幫助: import pygame import random# 基礎設置 # 屏幕高度 SCREEN_HEIGHT 480 # 屏幕寬度 SCREEN_WIDTH 600 # 小方格…

Java | Leetcode Java題解之第212題單詞搜索II

題目&#xff1a; 題解&#xff1a; class Solution {int[][] dirs {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};public List<String> findWords(char[][] board, String[] words) {Trie trie new Trie();for (String word : words) {trie.insert(word);}Set<String> a…

VitePress美化

參考資料&#xff1a; https://blog.csdn.net/weixin_44803753/article/details/130903396 https://blog.csdn.net/qq_30678861/category_12467776.html 站點信息修改 首頁部分的修改基本都在.vitepress/config.mts,這個文件內修改。 title 站點名稱 description 描述 top…

運維團隊指南:完善監控指標與優化報警機制

隨著業務規模的不斷擴大和系統復雜度的日益增加&#xff0c;運維團隊面臨著前所未有的挑戰。為了保障系統的穩定性和高效運行&#xff0c;完善監控指標與優化報警機制成為了運維工作中的重中之重。本文將結合運維行業動態&#xff0c;就如何完善監控指標體系、優化報警機制等方…

RedHat運維-Linux SSH基礎3-sshd守護進程

1. sshd這個守護進程提供了OpenSSH服務&#xff0c;請問可以通過編輯哪些配置文件&#xff0c;來配置這個服務呢&#xff1f;________________________ 2. sshd這個守護進程提供了OpenSSH服務&#xff0c;請問可以通過編輯哪些配置文件&#xff0c;來配置這個服務呢&#xff1f…

Java springboot校園管理系統源碼

Java springboot校園管理系統源碼-014 下載地址&#xff1a;https://download.csdn.net/download/xiaohua1992/89364089 技術棧 運行環境&#xff1a;jdk8 tomcat9 mysql5.7 windows10 服務端技術&#xff1a;Spring Boot Mybatis VUE 使用說明 1.使用Navicati或者其它工…