国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

sudo授權需謹慎,否則親人兩行淚!6個超實用使用技巧

系統 Linux
sudo 表示 “superuser do”,它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。

[[391590]]

Sudo 授權需謹慎,否則親人兩行淚!

sudo 表示 “superuser do”,它允許已驗證的用戶以其他用戶的身份來運行命令。其他用戶可以是普通用戶或者超級用戶。然而,大部分時候我們用它來提權運行命令,以替代直接使用 root 用戶的操作。sudo 命令與安全策略配合使用,安全策略可以通過文件 /etc/sudoers 來配置。其安全策略具有高度可拓展性,支持插件擴展。默認情況下 /etc/sudoers 是不能被任何人直接編輯的,因為它的權限是 440,雖然也可以對其賦予寫權限后再編輯,但推薦使用 visudo 命令編輯該文件。

1. 工作模式理解

簡述其使用工作流程和配置文件配置!

  •  [1] 理解 sudo 命令的工作流程
    •  sudo 會讀取和解析 /etc/sudoers 文件,查找調用命令的用戶及其權限。
    •  然后提示調用該命令的用戶輸入密碼,或者也可以通過 NOPASSWD 標志來跳過密碼驗證。
    •  之后,sudo 創建一個子進程,調用 setuid() 來切換到目標用戶。
    •  最好,它會在上述子進程中執行參數給定的 shell 或命令。
  •  [2] 理解 sudo 命令授權配置
    •  USER/GROUP HOST=(USER[:GROUP]) [NOPASSWD:] COMMANDS
    •  USER/GROUP: 表示需要被授權的用戶或者組;如果是組則需要以 % 開頭
    •  HOST: 表示允許從哪些主機登錄的用戶運行 sudo 命令;ALL 表示允許從任何終端、機器訪問
    •  (USER[:GROUP]): 表示使用 sudo 可切換的用戶或者組,組可以不指定;ALL 表示可以切換到系統的所有用戶
    •   NOPASSWD: 如果指定,則該用戶或組使用 sudo 時不必輸入密碼
    •   COMMANDS: 表示運行指定的命令;ALL 表示允許執行所有命令 
  1. # 允許 sudo 組執行所有命令  
  2. %sudo ALL=(ALL:ALL) ALL  
  3. # 允許用戶執行所有命令,且無需輸入密碼  
  4. escape ALL =(ALL) NOPASSWD: ALL  
  5. # 僅允許用戶執行 echo, ls 命令  
  6. escape ALL =(ALL) NOPASSWD: /bin/echo /bin/ls  
  7. # 運行本機的用戶執行關機命令  
  8. escape localhost=/sbin/shutdown -h now  
  9. # 允許 users 用戶組中的用戶像 root 用戶一樣使用 mount、unmount、chrom 命令  
  10. %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom 
  •  [3] 配置 Defaults 選項 
  1. # 指定用戶嘗試輸入密碼的次數,默認值為3  
  2. Defaults passwd_tries=5  
  3. # 設置密碼超時時間,默認為 5 分鐘  
  4. Defaults passwd_timeout=2  
  5. 默認 sudo 詢問用戶自己的密碼,添加 targetpw 或 rootpw 配置可以讓 sudo 詢問 root 密碼  
  6. Defaults targetpw  
  7. # 指定自定義日志文件 
  8. Defaults logfile="/var/log/sudo.log"  
  9. # 要在自定義日志文件中記錄主機名和四位數年份,可以加上 log_host 和 log_year 參數  
  10. Defaults log_host, log_year, logfile="/var/log/sudo.log"  
  11. # 保持當前用戶的環境變量  
  12. Defaults env_keep += "LANG LC_ADDRESS LC_CTYPE COLORS DISPLAY HOSTNAME EDITOR"  
  13. Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"  
  14. # 安置一個安全的 PATH 環境變量  
  15. Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 

2. 使用技巧總結

主要介紹使用 sudo 相關命令的使用技巧和問題處理方式!

  •  [1] 如何將 visudo 編輯器從 nano 更改為 vim?

當我使用 visudo 命令的時候,它總是用 nano 編輯器打開它,對應平時習慣使用 vi 或者 vim 的用戶來說,顯得有些別扭,以及操作不夠自如。所以,如何更好的將 visudo編輯器從 nano 更改為 vim 就變得非常重要了。

最佳的解決辦法,就是調用命令,永久的將終端的編輯器更換成為 vim 編輯器,一勞永逸。我們只需要執行如下命令,輸入自己需要的編輯器序號并按下回車鍵即可。下次執行visudo 命令的時候,就會使用 vim 編輯器打開文件。 

  1. # 因為/etc/sudoers普通用戶無法打開和使用  
  2. $ sudo update-alternatives --config editor  
  3. There are 4 choices for the alternative editor (providing /usr/bin/editor).  
  4.   Selection    Path                Priority   Status  
  5. ------------------------------------------------------------  
  6. * 0            /bin/nano            40        auto mode  
  7.   1            /bin/ed             -100       manual mode  
  8.   2            /bin/nano            40        manual mode  
  9.   3            /usr/bin/vim.basic   30        manual mode  
  10.   4            /usr/bin/vim.tiny    10        manual mode   
  11. Press enter to keep the current choice[*], or type selection number: 3 

其次的解決方法,就是通過環境變量修改當前終端的默認編輯器。 

  1. # 在.zshrc或.profile文件中  
  2. $ export EDITOR=vim 
  3. # 希望執行對visudo生效  
  4. $ sudo EDITOR=vim visudo  
  5. # 或者修改/etc/sudoers文件的默認編輯器  
  6. Defaults editor=/usr/bin/vim 
  •  [2] Vim 如何強制保存只讀文件?

在使用 vim 的時候,當以普通用戶打開一個只有 root 用戶才有權限操作的文件時,在編輯完成之后保存時發現,這個文件沒有權限修改。好不容易把文件編輯完了,卻無法保存,就只能放棄,然后退出,再以 root 權限打開,重新編輯,是在痛苦!那有沒有好的方法來解決這個問題呢?咳咳咳,肯定是有的。 

  1. # Vim命令模式下執行即可強制保存  
  2. # w: 表示保存文件  
  3. # !: 表示執行外部命令  
  4. # tee: 表示把數據重定向到給定文件和屏幕上  
  5. # %: 在執行外部命令時,%會擴展成當前文件名  
  6. :w !sudo tee % 

上述方式非常完美的解決了不能保存只讀文件的問題,但畢竟命令還是有些長,為了避免每次輸入一長串的命令,可以將它映射為一個簡單的命令加到 .vimrc 中。這樣,簡單的運行 :w!! 即可,命令后半部分 > /dev/null 作用為顯式的丟掉標準輸出的內容。 

  1. " Allow saving of files as sudo when I forgot to start vim using sudo.  
  2. cmap w!! w !sudo tee > /dev/null % 
  •  [3] 如何更加安全地編輯文件?

Sudoedit 是一個內置命令,允許用戶安全地編輯文件。根據 sudo 手冊頁,sudoedit 等效于使用 -e 命令行選項執行 sudo。

那么這個命令會做什么呢,它會首先創建你要編輯的文件的臨時副本。然后,命令將搜索SUDO_EDITOR,VISUAL 和 EDITOR 環境變量(按此順序),以確定應調用哪個編輯器來打開剛剛創建的臨時副本。用戶完成修改工作后,更改將復制回原始文件。 

  1. # Sudo命令手冊頁  
  2. -e, --edit  
  3. Edit one or more files instead of running a command. In lieu of a path name,  
  4. the string "sudoedit" is used when consulting the security policy. If the user 
  5.  is authorized by the policy, the followingsteps are taken:  
  6.  1. Temporary copies are made of the files to be edited with  
  7.  the owner set to the invoking user.  
  8.  2. The editor specified by the policy is run to edit the  
  9.  temporary files. The sudoers policy uses the  
  10.  SUDO_EDITOR, VISUAL and EDITOR environment variables (in  
  11.  that order). If none of SUDO_EDITOR, VISUAL or EDITOR  
  12.  are set, the first program listed in the editor  
  13.  sudoers(5) option is used.  
  14.  3. If they have been modified, the temporary files are  
  15.  copied back to their original location and the temporary  
  16.  versions are removed. 
  17. If the specified file does not exist, it will be created. Note that unlike most  
  18. commands run by sudo, the editor is run with the invoking user is environment  
  19. unmodified. If, for some reason, sudo is unable to update a file with its edited  
  20. version, the user will receive a warning and the edited copy will remain in a 
  21. temporary file.  
  22. # Sudo命令手冊頁  
  23. -e, --edit  
  24. Edit one or more files instead of running a command. In lieu of a path name, 
  25. the string "sudoedit" is used when consulting the security policy. If the user  
  26. is authorized by the policy, the followingsteps are taken:  
  27.  1. Temporary copies are made of the files to be edited with  
  28.  the owner set to the invoking user.  
  29.  2. The editor specified by the policy is run to edit the  
  30.  temporary files. The sudoers policy uses the  
  31.  SUDO_EDITOR, VISUAL and EDITOR environment variables (in  
  32.  that order). If none of SUDO_EDITOR, VISUAL or EDITOR  
  33.  are set, the first program listed in the editor  
  34.  sudoers(5) option is used.  
  35.  3. If they have been modified, the temporary files are  
  36.  copied back to their original location and the temporary  
  37.  versions are removed.   
  38. If the specified file does not exist, it will be created. Note that unlike most  
  39. commands run by sudo, the editor is run with the invoking user is environment  
  40. unmodified. If, for some reason, sudo is unable to update a file with its edited  
  41. version, the user will receive a warning and the edited copy will remain in a  
  42. temporary file. 
  •  [4] 如何讓 sudo 會話時間隨心所欲?

其中 sudo 命令是權限委派的命令,在生產環境中是非常常用的,默認情況下 sudo 命令會話時間是在 15 分鐘。要設置 sudo 密碼超時的值,需要使用 passwd_timeout 參數進行設置。

可以以分鐘設置為你所需的任何時間,它會在超時之前一直等待。如果要為每個執行的 sudo 命令彈出密碼提示,你也可以將時間設置為 0,或者通過設置值 -1 永久禁用密碼提示。 

  1. # 設置timeout時間  
  2. # 意味著sudo密碼提示將會在用戶使用20分鐘后過期  
  3. Defaults        env_reset,timestamp_timeout=20 
  •  [5] 如何更加安全的授權服務器權限?

如何我們管理的服務器,開發或者其他人員需要登錄該服務器,進行環境調試或者問題復現等情況。這時,就需要我們給對應的用戶開通登錄的訪問權限。但是如果我們直接編輯/etc/sudoers 文件的話,之后當對方使用完成之后我就還需要手動進行清理。如果我們忘記的話,該開發或者其他人員將一直可以登錄該服務器,會有一定程度的安全問題。

不幸的是,對應臨時授權的話,/etc/sudoers 文件中沒有對應的配置,可以對某個用戶或者用戶組進行指定范圍的時間授權。當用戶到達指定時間點之后,將拒絕該用戶再次進行登錄了。對應此種情況,我們可以通過 crontab 定時任務與 /etc/sudoers.d 目錄的機制可以完美的解決上述問題。

我們通過定時任務的定時執行目錄,來定時刷掉 /etc/sudoers.d/ 目錄下的用戶或者用戶組的授權配置文件。比如,我們需要定時每日刷掉今日臨時授權的用戶或者用戶,可以在/etc/cron.daily 目錄下面創建用于刪除 /etc/sudoers.d/ 目錄的 rm -rf 命令,之后在固定的時間會自動刪除。對應授權用戶,我們使用在 /etc/sudoers.d/ 目錄下創建單獨的配置文件,而不是直接修改 /etc/sudoers 文件。 

  1. # Crontab有多種定時機制  
  2. # 下述分別表示每天、每時、每月、每周定時執行  
  3. $ ls -dl /etc/cron.* | grep -v cron.d$  
  4. drwxr-xr-x 2 root root 4096 May 15 06:18 /etc/cron.daily  
  5. drwxr-xr-x 2 root root 4096 Feb 14  2019 /etc/cron.hourly  
  6. drwxr-xr-x 2 root root 4096 Feb 14  2019 /etc/cron.monthly  
  7. drwxr-xr-x 2 root root 4096 Jun 18 09:57 /etc/cron.weekly  
  8. # 創建單獨的授權配置文件  
  9. $ ls -lh /etc/sudoers.d/  
  10. -r--r----- 1 root root 666 Oct  6  2017 lisi  
  11. -r--r----- 1 root root 958 Jan 18  2018 zhangsan  
  12. # 查看授權配置文件的內容  
  13. $ cat /etc/sudoers.d/zhangsan  
  14. ALL ALL = (root) NOPASSWD: zhangsan 
  •  [6] 如何解決 sudo 命令找不到環境變量?

我們日常在使用 sudo 命令的時候,常常會遇到,當切換用戶之后,發現之前設置的環境變量怎么不見了呢?這是因為,我們執行 sudo 命令之后會切換用戶,如果保留環境變量會有一定的安全問題,系統會默認重置環境變量為安全的環境變量。先前設置的變量都會失效,只有少數配置文件中指定的環境變量能夠保存下來。

我們可以看一下 sudo 配置文件 /etc/sudoers 來找找作用原因。我們執行如下命令之后,可以看到如下輸入(有可能和我這里的不一樣)。其中 env_reset 表示默認會重置環境變量,因此我們自定義的變量會在 sudo 命令執行之后失效,也就不會正確獲取變量值了。而 env_keep 則表示用于保留部分環境變量不被重置,需要保留的變量就寫入雙引號之中,可自行追加需要保留的變量。最后就是 secure_path 變量,其作用就是包含的路徑將被當做 sudo 環境的 PATH 變量來使用。如果在 sudo 環境無法找到某些命令,那么可以將這些命令的路徑加入該配置項之中。 

  1. $ sudo sed '/^#/d;/^$/d' /etc/sudoers  
  2. Defaults    env_reset  
  3. Defaults    env_keep =  "COLORS IDSPLAY HOSTNAME HISTSIZE LS_COLORS"  
  4. Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS"  
  5. Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" 

我們知道原因之后,就可以針對上述情況作出不用的處理方式,來解決 sudo 命令找不到環境變量的問題。

第一種解決方法,就是在使用的時候,使用 -E 參數。加上 -E 選項后,用戶可以在sudo 執行時保留當前用戶已存在的環境變量,不會被 sudo 重置。另外,如果用戶對于指定的環境變量沒有權限,則會報錯。需要注意的是,在內部測試機器中,安全性要求不高的情況下使用。 

  1. $ sudo sudo -E 

第二種解決方法,就是修改 sudo 配置文件。可以通過修改 /etc/sudoers 文件的 env_keep 和 secure_path 配置項,來指定 sudo 環境中需要保留的環境變量和路徑。當然,我們也可以把配置文件的變量 !env_reset 給去掉,這樣就不會有限制了。 

  1. $ sudo vim /etc/sudoers  
  2. Defaults !env_reset 

3. 參考鏈接地址

  •  如何解決 sudo 命令找不到環境變量的問題 

 

責任編輯:龐桂玉 來源: 良許Linux
相關推薦

2021-03-12 10:01:33

Sudo命令Linux

2009-02-19 20:36:30

VistavLite副作用

2020-08-31 11:40:54

VimLinux字符

2024-11-05 10:24:50

2020-06-29 07:49:10

kill -9Java程序員

2015-11-16 10:59:31

2010-07-05 09:46:42

Visual Stud

2010-11-15 10:22:35

中工網綜合

2009-08-16 09:25:55

Windows 7系統升級

2013-06-07 10:31:46

CIO虛擬化

2025-07-23 05:00:00

2020-03-13 17:59:06

OA二開CIO觀點

2011-03-16 10:12:32

2019-02-13 14:04:01

2015-04-20 09:31:41

初創企業融資風險額度

2009-12-25 10:38:23

作戰計劃敏感部門USB使用

2017-10-30 17:25:11

javascript

2020-05-27 11:25:48

開發技能代碼

2012-12-13 21:34:30

2019-02-15 09:50:39

單身程序員脫單
點贊
收藏

51CTO技術棧公眾號

在线观看免费污视频| 人妖一区二区三区| 久久综合狠狠综合久久激情| 国产精品手机在线| 精品久久久久久久久久久aⅴ| 日日骚久久av| av资源网在线播放| 欧美日韩精品一区视频| www.日本视频| 久久免费美女视频| 欧美激情亚洲天堂| 九一九一国产精品| 日韩精品欧美专区| 亚洲国产网站| 国产精品乱码| 欧美xxx在线观看| 国产精品中文久久久久久久| 天堂99x99es久久精品免费| 久热国产精品视频| 黄色日韩网站| 久久久成人av| 国产成人77亚洲精品www| 亚洲精品99久久久久| av在线导航| 日韩午夜精品电影| www久久日com| 日韩美女一区二区三区四区| 黄色网在线免费看| 色哟哟在线观看一区二区三区| 成人高清在线观看免费| 亚洲天堂久久久久久久| 乱小说综合网站| 亚洲天堂2016| 久草在线在线| 色噜噜夜夜夜综合网| 国产永久免费高清在线观看视频| 91黄色激情网站| se在线电影| 91精品免费在线观看| 欧美人与禽性xxxxx杂性| 日韩精品极品在线观看| 91精品论坛| 久久精品亚洲一区| 高潮按摩久久久久久av免费| 国产精品美女免费看| 亚洲欧美在线专区| 免费精品视频一区| 国产美女一区二区| 国产裸体免费无遮挡| 亚洲男同性恋视频| 国产专区在线| 日韩av在线直播| 亚洲成a人片777777久久| 91av国产在线| 91成人观看| 正在播放久久| 26uuu久久综合| 人人爽人人av| 岛国av午夜精品| 欧美bbbxxxxx| 精品国产欧美成人夜夜嗨| 亚洲福利网站| 欧美日韩一区综合| 成人精品视频一区二区三区| 免费av网页| 欧美大片一区二区三区| 亚洲视频资源| 国产精品久久久久久久久影视| 综合在线一区| 国产免费一区二区视频| 悠悠色在线精品| 国产乱码在线| 欧美综合国产精品久久丁香| 毛片一区二区| 99在线欧洲视频| 精品国产乱码久久久久久久久 | 亚洲欧美日韩精品久久亚洲区| 精品久久国产一区| caoporn国产精品免费公开| 国产成人在线视频免费播放| 91精品综合视频| 国产精品一级在线| 91制片厂免费观看| 欧美精选一区二区三区| 欧美成人第一区| 91麻豆蜜桃一区二区三区| 美女被人操视频在线观看| 日韩精品免费在线观看| 中文字幕欧美人妻精品一区| 欧美久久免费观看| 欧美日韩另类图片| 综合视频免费看| 91国产一区| 久久国产精品久久精品国产| 在线成人亚洲| 国产成人精品视频在线| 蜜臀久久99精品久久一区二区| 在线观看国产欧美| 男女18免费网站视频| 国产在线播放一区三区四| 一区二区三视频| 亚洲成在人线在线播放| 免费在线欧美视频| av日韩在线免费| 日韩hd视频在线观看| 综合久久综合| 日本成人黄色网址| 国产丝袜一区二区三区免费视频 | 国产在线观看91精品一区| 94色蜜桃网一区二区三区| caoporm免费视频在线| 日产精品99久久久久久| 91论坛在线播放| 国产粉嫩在线观看| 九色91在线视频| 欧美视频精品一区| 日韩理论电影大全| 国产网红在线| 91精品国产成人| 中文字幕二三区不卡| 九色成人搞黄网站| 美女黄色片网站| 亚洲大胆人体av| 天堂精品中文字幕在线| 在线免费看av| 成人午夜电影在线播放| 天天操天天干天天综合网| 人妖一区二区三区| 天天干在线影院| 欧美精品手机在线| 国产999精品久久久久久| 黑人玩欧美人三根一起进| 久久99热只有频精品91密拍| 欧美性色黄大片手机版| 日韩欧美大片| 在线免费观看你懂的| 国产精选久久久久久| 亚洲国产精品一区二区www在线| 久久久精品国产**网站| www.999av| 国产z一区二区三区| 亚洲欧美福利一区二区| 精品一区二区三区中文字幕老牛| 8×8x拔擦拔擦在线视频网站| 国产91在线播放| 亚洲午夜激情av| 午夜欧美精品| 九色porny在线| 水蜜桃亚洲精品| 亚洲精品一区在线观看香蕉| 粉嫩aⅴ一区二区三区四区| 日本在线一区二区| 99视频在线免费| 清纯唯美亚洲激情| 亚洲一区二区三区在线播放| 五月激情久久久| 毛片激情在线观看| 做爰高潮hd色即是空| 欧美成人第一页| 日韩美女久久久| 欧美精品一级| 黄在线观看免费网站ktv| 黄色免费福利视频| 国产成人精品久久久| 欧洲精品中文字幕| 激情五月激情综合网| 国产激情综合| 国产香蕉尹人视频在线| 国产伦精品一区二区三区高清| 欧美sm美女调教| 久久综合九色综合久久久精品综合| 免费av一区| 成年人在线观看| 亚洲免费av网| 欧美第一淫aaasss性| 日韩欧美一区二区三区| 亚洲一区二区免费看| 色综合视频一区二区三区日韩| 最新黄色片网站| 中文字幕久久一区| 欧美一区二区三区……| 91精品国产一区二区人妖| 91在线国内视频| 综合色一区二区| 亚洲伦乱视频| 亚洲国产精华液| 欧美三级电影一区二区三区| 国产又爽又黄ai换脸| 97在线视频免费| 国产欧美日韩不卡| 亚洲欧洲日本mm| 国产美女撒尿一区二区| 国产日本视频| 久久99精品久久久久久三级 | 国产主播福利在线| 在线观看一区欧美| 欧美成在线视频| 亚洲一区二区在线播放相泽| 欧美国产高潮xxxx1819| 欧美精品国产一区|