日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
在Linux中設(shè)置sudo的十條sudoers實(shí)用配置

在 linux 和其他的類(lèi) Unix 操作系統(tǒng)中,只有 root 用戶(hù)可以運(yùn)行所有的命令,才能在系統(tǒng)中執(zhí)行那些需要鑒權(quán)的操作,比如安裝、升級(jí)和移除軟件包、創(chuàng)建用戶(hù)和用戶(hù)組、修改系統(tǒng)重要的配置文件等等。

然而,系統(tǒng)管理員,比如說(shuō) root 用戶(hù),可以通過(guò) sudo 命令 和一些配置選項(xiàng)來(lái)給普通用戶(hù)進(jìn)行授權(quán),從而讓該普通用戶(hù)可以運(yùn)行某些命令已經(jīng)上述的那些相當(dāng)重要的系統(tǒng)級(jí)操作。

另外,系統(tǒng)管理員還可以分享 root 用戶(hù)密碼 (這個(gè)做法是不值得提倡的),這樣普通用戶(hù)就可以通過(guò) su 命令來(lái)轉(zhuǎn)化為 root 用戶(hù)角色。.

sudo 允許已授權(quán)用戶(hù)按照指定的安全策略、以 root 用戶(hù) (或者是其他的用戶(hù)角色) 權(quán)限來(lái)執(zhí)行某個(gè)命令。

  1. sudo 會(huì)讀取和解析 /etc/sudoers 文件,查找調(diào)用命令的用戶(hù)及其權(quán)限。
  2. 然后提示調(diào)用該命令的用戶(hù)輸入密碼 (通常是用戶(hù)密碼,但也可能是目標(biāo)用戶(hù)的密碼,或者也可以通過(guò) NOPASSWD 標(biāo)志來(lái)跳過(guò)密碼驗(yàn)證)。
  3. 這之后, sudo 會(huì)創(chuàng)建一個(gè)子進(jìn)程,調(diào)用 setuid() 來(lái)切換到目標(biāo)用戶(hù)。
  4. 接著,它會(huì)在上述子進(jìn)程中執(zhí)行參數(shù)給定的 shell 或命令。

以下列出十個(gè) /etc/sudoers 文件配置,使用 Defaults 項(xiàng)修改 sudo 命令的行為。

$ sudo cat /etc/sudoers

/etc/sudoers 文件:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults    logfile="/var/log/sudo.log"
Defaults    lecture="always"
Defaults    badpass_message="Password is wrong, please try again"
Defaults    passwd_tries=5
Defaults    insults
Defaults    log_input,log_output

Defaults 項(xiàng)的類(lèi)型

Defaults                parameter,   parameter_list     ### 對(duì)任意主機(jī)登錄的所有用戶(hù)起作用
Defaults@Host_List      parameter,   parameter_list     ### 對(duì)指定主機(jī)登錄的所有用戶(hù)起作用
Defaults:User_List      parameter,   parameter_list     ### 對(duì)指定用戶(hù)起作用
Defaults!Cmnd_List      parameter,   parameter_list     ### 對(duì)指定命令起作用
Defaults>Runas_List     parameter,   parameter_list     ### 對(duì)以指定目標(biāo)用戶(hù)運(yùn)行命令起作用

在本文討論范圍內(nèi),我們下面的將以第一個(gè) Defaults 作為基準(zhǔn)來(lái)參考。parameter 參數(shù)可以是標(biāo)記 (flags)、整數(shù)值或者是列表 (list)。

值得注意的是,標(biāo)記 (flag) 是指布爾類(lèi)型值,可以使用 ! 操作符來(lái)進(jìn)行取反,列表 (list) 有兩個(gè)賦值運(yùn)算符:+= (添加到列表) 和 -= (從列表中移除)。

Defaults     parameter
或
Defaults     parameter=值
或
Defaults     parameter -=值
Defaults     parameter +=值
或
Defaults     !parameter

1、 安置一個(gè)安全的 PATH 環(huán)境變量

PATH 環(huán)境變量應(yīng)用于每個(gè)通過(guò) sudo 執(zhí)行的命令,需要注意兩點(diǎn):

  1. 當(dāng)系統(tǒng)管理員不信任 sudo 用戶(hù),便可以設(shè)置一個(gè)安全的 PATH 環(huán)境變量。
  2. 該設(shè)置將 root 的 PATH 和用戶(hù)的 PATH 分開(kāi),只有在 exempt_group 組的用戶(hù)不受該設(shè)置的影響。

可以添加以下內(nèi)容來(lái)設(shè)置:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

2、 允許 tty 用戶(hù)會(huì)話(huà)使用 sudo

該設(shè)置允許在一個(gè)真實(shí)的 tty 中進(jìn)行調(diào)用 sudo,但不允許通過(guò) cron 或者 cgi-bin 腳本等方法來(lái)調(diào)用。添加以下內(nèi)容來(lái)設(shè)置:

Defaults  requiretty   

3、 使用 pty 運(yùn)行 sudo 命令

少數(shù)情況下,攻擊者可以通過(guò) sudo 來(lái)運(yùn)行一個(gè)惡意程序 (比如病毒或者惡意代碼),這種惡意程序可能會(huì)分叉出一個(gè)后臺(tái)運(yùn)行的進(jìn)程,即使主程序完成執(zhí)行,它仍能夠運(yùn)行在用戶(hù)的終端設(shè)備上。

為了防止出現(xiàn)這樣的情況,你可以通過(guò) use_pty 參數(shù)來(lái)設(shè)置 sudo 使用偽終端來(lái)運(yùn)行其他命令,而不必管 I/O 日志的開(kāi)啟狀態(tài)。如下:

Defaults  use_pty

4、 創(chuàng)建 sudo 日志文件

默認(rèn)下,sudo 通過(guò) syslog(3) 來(lái)記錄到日志。但是我們可以通過(guò) logfile 參數(shù)來(lái)指定一個(gè)自定義的日志文件。如下:

Defaults  logfile="/var/log/sudo.log"

使用 log_hostlog_year 參數(shù)可以對(duì)應(yīng)記錄日志主機(jī)名和 4 位數(shù)年份到自定義日志文件。如下:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

下面是自定義 sudo 日志文件的例示:

創(chuàng)建 sudo 日志文件

5、 記錄 sudo 命令的輸入/輸出

log_input 和 log_output 參數(shù)可以讓 sudo 命令運(yùn)行在偽終端,并可以對(duì)應(yīng)地記錄所有的用戶(hù)輸入和輸出到屏幕上。

默認(rèn)的 I/O 日志目錄為 /var/log/sudo-io,如果存在會(huì)話(huà)序列號(hào),它將被存儲(chǔ)到該目錄。你可以通過(guò) iolog_dir 參數(shù)來(lái)指定一個(gè)目錄。

Defaults   log_input, log_output

這其中支持轉(zhuǎn)義字符,像 %{seq} —— 以 36 為基數(shù)的單調(diào)遞增序列,比如 000001,這里每?jī)蓚€(gè)數(shù)字都分別用來(lái)形成一個(gè)新目錄。請(qǐng)看下邊例示 00/00/01:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log

記錄 sudo 命令的輸入/輸出

cat 命令 來(lái)查看該目錄的其余部分。

6、 為 sudo 用戶(hù)提示命令用法

如下,使用 lecture 參數(shù)可以在系統(tǒng)中為 sudo 用戶(hù)提示命令的用法:

參數(shù)屬性值有三個(gè)選擇:

  1. always – 一直提示
  2. once – 用戶(hù)首次運(yùn)行 sudo 時(shí)提示 (未指定參數(shù)屬性值時(shí)的默認(rèn)值)
  3. never – 從不提示
Defaults  lecture="always"

此外,你還可以使用 lecture_file 參數(shù)類(lèi)自定義提示內(nèi)容,在指定的文件中輸入適當(dāng)?shù)奶崾緝?nèi)容即可:

Defaults  lecture_file="/path/to/file"

為 sudo 用戶(hù)提示命令用法

7、 輸入錯(cuò)誤的 sudo 密碼是顯示自定義信息

當(dāng)某個(gè)用戶(hù)輸錯(cuò)密碼時(shí),會(huì)有一個(gè)對(duì)應(yīng)的信息顯示在屏幕上。默認(rèn)是“抱歉,請(qǐng)重新嘗試。(sorry, try again)”,你可以通過(guò) badpass_message 參數(shù)來(lái)修改該信息:

Defaults  badpass_message="Password is wrong, please try again"

8、 增加 sudo 密碼嘗試限制次數(shù)

passwd_tries 參數(shù)用于指定用戶(hù)嘗試輸入密碼的次數(shù)。

默認(rèn)為 3。

Defaults   passwd_tries=5

增加 sudo 密碼嘗試限制次數(shù)

使用 passwd_timeout 參數(shù)設(shè)置密碼超時(shí) (默認(rèn)為 5 分鐘),如下:

Defaults   passwd_timeout=2

9、 在輸錯(cuò)密碼時(shí)讓 sudo 羞辱用戶(hù)

使用了 insults 參數(shù)之后,一旦你輸出了密碼,sudo 便會(huì)在命令窗口中顯示羞辱你的信息。這個(gè)參數(shù)會(huì)自動(dòng)關(guān)閉 badpass_message 參數(shù)。

Defaults  insults

在輸錯(cuò)密碼時(shí)讓 sudo 羞辱用戶(hù)

10、 更多關(guān)于 sudo 的配置

此外,欲了解更多 sudo 命令的配置,請(qǐng)自行閱讀:su 與 sudo 的差異以及如何配置 sudo。

文畢。你也可以在評(píng)論區(qū)分享其他有用的 sudo 配置或者 Linux 技巧。


譯者簡(jiǎn)介:GHLandy —— 欲得之,則為之奮斗。If you want it, work for it.



本文題目:在Linux中設(shè)置sudo的十條sudoers實(shí)用配置
標(biāo)題路徑:http://www.5511xx.com/article/djeeojj.html