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

Linux下使用sudo進行賦權

系統 Linux
我寫了一些腳本來自動完成這些任務并通過 sudo 來指定某些人來運行這些腳本。 很多 Linux 命令都需要用戶以 root 身份來運行。 sudo 能夠保護系統免遭一時糊涂造成的意外損壞以及惡意用戶的故意破壞。

[[215886]]

學習怎么在保護 root 密碼的安全性的同時,為可信用戶賦予所管理的網絡功能和特定服務的權限。

我最近寫了一個簡短的 Bash 程序來將 MP3 文件從一臺網絡主機的 USB 盤中拷貝到另一臺網絡主機上去。拷貝出來的文件存放在一臺志愿者組織所屬服務器的特定目錄下,在那里,這些文件可以被下載和播放。

我的程序還會做些其他事情,比如為了自動在網頁上根據日期排序,在拷貝文件之前會先對這些文件重命名。在驗證拷貝完成后,還會刪掉 USB 盤中的所有文件。這個小程序還有一些其他選項,比如 -h 會顯示幫助, -t 進入測試模式等等。

我的程序需要以 root 運行才能發揮作用。然而,這個組織中之后很少的人對管理音頻和計算機系統有興趣的,這使得我不得不找那些半吊子的人來,并培訓他們登錄到用于傳輸的計算機,運行這個小程序。

倒不是說我不能親自運行這個程序,但由于外出和疾病等等各種原因, 我不是時常在場的。 即使我在場,作為一名 “懶惰的系統管理員”, 我也希望別人能替我把事情給做了。 因此我寫了一些腳本來自動完成這些任務并通過 sudo 來指定某些人來運行這些腳本。 很多 Linux 命令都需要用戶以 root 身份來運行。 sudo 能夠保護系統免遭一時糊涂造成的意外損壞以及惡意用戶的故意破壞。 

盡可能的使用 sudo

sudo 是一個很方便的工具,它讓我一個具有 root 權限的管理員可以分配所有或者部分管理性的任務給其他用戶, 而且還無需告訴他們 root 密碼, 從而保證主機的高安全性。

假設,我給了普通用戶 ruser 訪問我 Bash 程序 myprog 的權限, 而這個程序的部分功能需要 root 權限。 那么該用戶可以以 ruser 的身份登錄,然后通過以下命令運行 myprog

  1. sudo myprog

sudo 程序會檢查 /etc/sudoers 文件,并確認 ruser 是否被許可運行 myprog。如被許可,sudo 會要求該用戶輸入其密碼——而非 root 密碼。在 ruser 輸入他的密碼之后,該程序就運行了。此外,sudo 也記錄 myprog 該程序運行的日期和時間、完整的命令,以及誰在運行它。這個數據會記錄在 /var/log/security 中。

我發現在培訓時記錄下每個用 sudo 執行的命令會很有幫助。我可以看到誰執行了哪些命令,他們是否輸對了。

我委派了權限給自己和另一個人來運行那一個程序;然而,sudo 可以做更多的事情。 它允許系統管理員委派所管理的網絡功能或特定的服務給某個受信的人或某組人。這可以讓你在保護了 root 密碼的安全性的同時,也賦予了那些功能。 

配置 sudoers 文件

作為一名系統管理員,我使用 /etc/sudoers 文件來設置某些用戶或某些用戶組可以訪問某個命令,或某組命令,或所有命令。 這種靈活性是使用 sudo 進行委派時能兼顧功能與簡易性的關鍵。

我一開始對 sudoers 文件感到很困惑,因此下面我會拷貝并分解我所使用主機上的完整 sudoers 文件。 希望在分析的過程中不會讓你感到困惑。 我意外地發現, 基于 Red Hat 的發行版中默認的配置文件都會很多注釋以及例子來指導你如何做出修改,這使得修改配置文件變得簡單了很多,也不需要在互聯網上搜索那么多東西了。

不要直接用編輯器來修改 sudoers 文件,而應該用 visudo 命令,因為該命令會在你保存并退出編輯器后就立即生效這些變更。 visudo 也可以使用除了 Vi 之外的其他編輯器。

讓我們首先來分析一下文件中的各種別名。 

主機別名

主機別名這一節用于創建主機分組,授予該組主機可以訪問哪些命令或命令別名。 它的基本思想是,該文件由組織中的所有主機共同維護,然后拷貝到每臺主機中的 /etc 中。 其中有些主機, 例如各種服務器, 可以配置成一個組來賦予用戶訪問特定命令的權限, 比如可以啟停類似 HTTPD、DNS 以及網絡服務;可以掛載文件系統等等。

在設置主機別名時也可以用 IP 地址替代主機名。

  1. ## Host Aliases
  2. ## Groups of machines. You may prefer to use hostnames (perhaps using
  3. ## wildcards for entire domains) or IP addresses instead.
  4. # Host_Alias FILESERVERS = fs1, fs2
  5. # Host_Alias MAILSERVERS = smtp, smtp2 

用戶別名

用戶別名允許 root 將用戶整理成別名組中,并按組來分配特定的 root 權限。在這部分內容中我加了一行 User_Alias AUDIO = dboth, ruser,定義了一個別名 AUDIO 用來指代了兩個用戶。

正如 sudoers 文件中所闡明的,也可以直接使用 /etc/groups 中定義的組而不用自己設置別名。 如果你定義好的組(假設組名為 audio)已經能滿足要求了, 那么在后面分配命令時只需要在組名前加上 % 號,像這樣: %audio

  1. ## User Aliases
  2. ## These aren't often necessary, as you can use regular groups
  3. ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname
  4. ## rather than USERALIAS
  5. # User_Alias ADMINS = jsmith, mikem
  6. User_Alias AUDIO = dboth, ruser 

命令別名

再后面是命令別名的部分。這些別名表示的是一系列相關的命令, 比如網絡相關命令,或者 RPM 包管理命令。 這些別名允許系統管理員方便地為一組命令分配權限。

該部分內容已經設置好了許多別名,這使得分配權限給某類命令變得方便很多。

  1. ## Command Aliases
  2. ## These are groups of related commands...
  3.  
  4. ## Networking
  5. # Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
  6.  
  7. ## Installation and management of software
  8. # Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
  9.  
  10. ## Services
  11. # Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
  12.  
  13. ## Updating the locate database
  14. # Cmnd_Alias LOCATE = /usr/bin/updatedb
  15.  
  16. ## Storage
  17. # Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
  18.  
  19. ## Delegating permissions
  20. # Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
  21.  
  22. ## Processes
  23. # Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
  24.  
  25. ## Drivers
  26. # Cmnd_Alias DRIVERS = /sbin/modprobe 

環境默認值

下面部分內容設置默認的環境變量。這部分最值得關注的是 !visiblepw 這一行, 它表示當用戶環境設置成顯示密碼時禁止 sudo 的運行。 這個安全措施不應該被修改掉。

  1.  
  2. # Defaults specification
  3.  
  4. #
  5. # Refuse to run if unable to disable echo on the tty.
  6. #
  7. Defaults !visiblepw
  8.  
  9. Defaults env_reset
  10. Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
  11. Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
  12. Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
  13. Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
  14. Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
  15.  
  16.  
  17. Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin 

命令部分

命令部分是 sudoers 文件的主體。不使用別名并不會影響你完成要實現的效果,別名只是讓整個配置工作大幅簡化而已。

這部分使用之前定義的別名來告訴 sudo 哪些人可以在哪些機器上執行哪些操作。一旦你理解了這部分內容的語法,你會發現這些例子都非常的直觀。 下面我們來看看它的語法。

  1. ruser ALL=(ALL) ALL

意即 ruser 可以在任意主機上以任意用戶身份運行任意命令

這是一條為用戶 ruser 做出的配置。行中第一個 ALL 表示該條規則在所有主機上生效。 第二個 ALL 允許 ruser 以任意其他用戶的身份運行命令。 默認情況下, 命令以 root 用戶的身份運行, 但 ruser 可以在 sudo 命令行指定程序以其他用戶的身份運行。 最后這個 ALL 表示 ruser 可以運行所有命令而不受限制。 這讓 ruser 實際上就變成了 root

注意到下面還有一條針對 root 的配置。這允許 root 能通過 sudo 在任何主機上運行任何命令。

  1. root ALL=(ALL) ALL

意即 root 可以在任意主機上以任意用戶身份運行任意命令

為了實驗一下效果,我注釋掉了這行, 然后以 root 的身份試著直接運行 chown。 出乎意料的是這樣是能成功的。 然后我試了下 sudo chown,結果失敗了,提示信息 “Root is not in the sudoers file。 This incident will be reported”。 也就是說 root 可以直接運行任何命令, 但當加上 sudo 時則不行。 這會阻止 root 像其他用戶一樣使用 sudo 命令來運行其他命令, 但是 root 有太多種方法可以繞過這個約束了。

下面這行是我新增來控制訪問 myprog 的。它指定了只有上面定義的 AUDIO 組中的用戶才能在 guest1 這臺主機上使用 myprog 這個命令。

  1. AUDIO guest1=/usr/local/bin/myprog

允許 AUDIO 組成員在 guest1 主機上訪問 myprog

注意,上面這一行只指定了允許訪問的主機名和程序,而沒有說用戶可以以其他用戶的身份來運行該程序。 

省略密碼

你也可以通過 NOPASSWORD 來讓 AUDIO 組中的用戶無需密碼就能運行 myprog。像這樣:

  1. AUDIO guest1=NOPASSWORD : /usr/local/bin/myprog

允許 AUDIO 組成員在 guest1 主機上不用輸入密碼即可訪問 myprog

我并沒有這樣做,因為我覺得使用 sudo 的用戶必須要停下來想清楚他們正在做的事情,這對他們有好處。 我這里只是舉個例子。 

wheel

sudoers 文件中命令部分的 wheel 說明(如下所示)允許所有在 wheel 組中的用戶在任何機器上運行任何命令。wheel 組在 /etc/group 文件中定義, 用戶必須加入該組后才能工作。 組名前面的 % 符號表示 sudo 應該去 /etc/group 文件中查找該組。

  1. %wheel ALL = (ALL) ALL

運行所有定義在 /etc/group 文件中的 “wheel” 組成員可以在任意主機上運行全部命令

這種方法很好的實現了為多個用戶賦予完全的 root 權限而不用提供 root 密碼。只需要把該用戶加入 wheel 組中就能給他們提供完整的 root 的能力。 它也提供了一種通過 sudo 創建的日志來監控他們行為的途徑。 有些 Linux 發行版, 比如 Ubuntu, 會自動將用戶的 ID 加入 /etc/group 中的 wheel 組中, 這使得他們能夠用 sudo 命令運行所有的特權命令。 

結語

我這里只是小試了一把 sudo — 我只是給一到兩個用戶以 root 權限運行單個命令的權限。完成這些只添加了兩行配置(不考慮注釋)。 將某項任務的權限委派給其他非 root 用戶非常簡單,而且可以節省你大量的時間。 同時它還會產生日志來幫你發現問題。

sudoers 文件還有許多其他的配置和能力。查看 sudosudoers 的 man 手冊可以深入了解詳細信息。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-07-10 14:46:04

LinuxShellsudo

2018-07-06 13:02:23

2011-01-13 09:44:19

Linuxsudo技巧

2010-10-28 10:27:35

oracle賦權

2010-10-28 10:37:54

Oracle批量賦權

2020-10-22 09:12:53

數據驅動文化數據首席數據和分析布道者

2020-11-24 10:44:02

區塊鏈物聯網技術

2010-10-12 13:40:54

Linuxsudo

2017-02-07 09:42:13

2022-01-18 17:57:21

PodmanLinux容器

2013-01-24 09:29:16

2018-08-23 16:18:59

2021-01-30 18:31:00

sudo緩存溢出漏洞

2022-05-25 16:38:42

sudoLinuxroot 賬戶

2022-05-04 11:10:58

Linuxdnf 命令

2022-05-07 11:08:50

Linuxapt 命令

2011-03-22 10:57:30

Oracle添加用戶賦權

2012-05-16 13:31:07

信息通信技術世界電信日

2022-08-04 07:03:11

Linux配置命令

2012-05-10 10:10:19

Linuxfdisk
點贊
收藏

51CTO技術棧公眾號

激情成人综合网| 国产精品一区免费在线| 不卡欧美aaaaa| 欧美精品尤物在线| 成人羞羞动漫| 欧美精品video| 色香欲www7777综合网| 日韩一区和二区| 国产尤物视频在线| 激情懂色av一区av二区av| 黄网免费视频| 亚洲国产成人自拍| 国产精品动漫网站| av在线播放不卡| a级黄色片免费| 粉嫩绯色av一区二区在线观看 | 国产情侣一区| 91av一区二区三区| 99精品美女| 国产精品亚洲综合天堂夜夜| 国产精品欧美日韩一区| 97在线日本国产| 国产精品xxxav免费视频| 欧美激情高清视频| 美女福利一区| 国产欧美精品一区二区| 亚洲九九视频| 欧美日韩大片一区二区三区| 爽好多水快深点欧美视频| 亚洲欧美日韩在线综合| 精品亚洲成a人| 91免费国产精品| 99久久精品99国产精品| 精品一区二区免费视频| 色一情一乱一伦一区二区三区| 国产一区导航| 国产又黄又爽免费视频| 国产福利一区二区三区视频 | 一区二区亚洲精品| 蜜桃av色综合| 国产成人午夜精品影院观看视频 | 日韩一区二区三区在线播放| 国产亚洲久久| 66m—66摸成人免费视频| 欧美日韩伦理| 精品国产综合| 懂色av一区二区三区蜜臀 | 国产经典欧美精品| 色综合手机在线| 亚洲成人激情自拍| 一区二区高清不卡| 日韩精品影音先锋| 亚洲黑人在线| 国产专区精品视频| 久久久成人网| 中国丰满人妻videoshd| 亚洲h在线观看| 99riav视频在线观看| 欧美国产日韩一区二区| 午夜欧美在线| 国产91av视频在线观看| 久久久www免费人成精品| 最新av番号| 精品国产乱码久久久久久夜甘婷婷 | 色综合天天综合网中文字幕| 欧美日韩亚洲免费| 久久精品视频网| 深夜视频在线免费| 亚洲精品永久免费精品| 杨幂一区二区三区免费看视频| 久久国产精品-国产精品| 久久这里只有精品首页| 蝌蚪视频在线播放| 中文字幕亚洲二区| 国产综合网站| 欧美三级午夜理伦三级| 欧美日韩免费一区二区三区视频| 国产激情欧美| 精品蜜桃一区二区三区| 日本一二三四高清不卡| 污视频在线看网站| 国产成人精品一区二区在线 | 91在线观看高清| 日本护士...精品国| 日韩一区二区久久久| 国产一区二区三区四区三区四| 国产一线二线三线女| 在线观看国产精品网站| av综合网址| 久久精品ww人人做人人爽| 国产精品午夜在线| 黄视频网站在线观看| 成人羞羞国产免费| 91丝袜呻吟高潮美腿白嫩在线观看| 你懂的视频在线免费| 久久电影一区二区| 久久午夜av| 美女欧美视频在线观看免费| 久热在线中文字幕色999舞| 久久久精品五月天| 亚州黄色一级| 欧美成人黄色小视频| 狠狠色综合日日| 黄视频网站在线看| 国产精品揄拍500视频| 不卡视频在线看| √最新版天堂资源网在线| 国产专区精品视频| 中文子幕无线码一区tr| 不卡一二三区| 久久精品国产一区二区三区日韩| 久久精品网站免费观看| 男人天堂亚洲天堂| 精品欧美一区二区三区久久久 | 天天综合日日夜夜精品| 91麻豆精品国产综合久久久| 日韩av一级大片| 日韩欧美国产视频| 精品免费视频| 猫咪av永久| 日本精品一区二区三区在线| 中文字幕欧美日韩一区| 九九热这里有精品| 成人av在线不卡| 亚洲欧美日韩精品久久亚洲区| 天堂久久一区二区三区| 最新av网站在线观看| 国产在线98福利播放视频| 一区二区三区精品| 亚洲高清极品| 成视频年人免费看黄网站| 欧美日韩国产成人在线观看| 91免费观看在线| 成人av在线播放| 免费在线观看毛片网站| 国产一区二区三区在线看| 丁香天五香天堂综合| 日本成人福利| 你懂的av在线| 萌白酱国产一区二区| 99国产精品久久久久久久久久久| 色婷婷综合久久久中字幕精品久久| 亚洲精品日韩成人| 亚洲欧美日韩国产成人| 国产福利精品一区| 777午夜精品电影免费看| 欧美一级在线看| 欧美激情喷水视频| 亚洲嫩草精品久久| 欧美超碰在线| 日日夜夜精品一区| 精品一区二区久久久久久久网站| 91精品国产综合久久福利软件| 日韩黄色免费电影| 美女色狠狠久久| 天堂一区在线观看| 国产精品专区第二| 欧美色网站导航| 日日骚欧美日韩| 精品成人免费一区二区在线播放| 99爱视频在线| 日本欧美国产在线| 日本韩国欧美在线| 一呦二呦三呦精品国产| 国产一区二区在线视频播放| 久久久久亚洲精品| 亚洲无线码一区二区三区| 欧美日韩一视频区二区| 欧美人动性xxxxz0oz| 欧美精品卡一卡二| 91精品国产高清久久久久久| 亚洲一区二区三区在线看| 欧美一站二站| 日韩精品卡一| 国产l精品国产亚洲区久久| 国产精品久久久久久久午夜| 欧美三级视频在线| 成人深夜福利app| 国语一区二区三区| 青青草在线免费视频| 97超碰人人爱| 日本精品一区二区三区在线| 91精品欧美综合在线观看最新| 国产成人精品亚洲午夜麻豆| 亚洲制服一区| 国产调教视频在线观看| 日韩日韩日韩日韩日韩| 国产日韩欧美综合| 日韩精品视频在线观看网址 | 高清欧美性猛交xxxx黑人猛| 色黄视频在线| 亚洲精品日韩在线观看| 欧美一级视频免费在线观看| 欧美一区午夜视频在线观看| 久久久久久久久免费| 亚洲电影在线| 久久久免费毛片| 欧美韩日亚洲| 最新中文字幕在线视频| 欧美在线一区视频|