亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

Linux使用Sudo委派權限

2024-09-05 23:05:09
字體:
來源:轉載
供稿:網友

sudo權限委派介紹

  • su 切換身份:su –l username –c ‘command'
  • sudo
  • 來自sudo包
  • man 5 sudoers
  • sudo能夠授權指定用戶在指定主機上運行某些命令。如果未授權用戶嘗試使  用 sudo,會提示聯系管理員
  • sudo可以提供日志,記錄每個用戶使用sudo操作
  • sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機
  • sudo使用時間戳文件來完成類似“檢票”的系統,默認存活期為5分鐘的“入場券”
  • 通過visudo命令編輯配置文件,具有語法檢查功能 :
  •               visudo –c 檢查語法
                  visudo -f /etc/sudoers.d/test

sudo

  • 配置文件:/etc/sudoers, /etc/sudoers.d/
  • 時間戳文件:/var/db/sudo
  • 日志文件:/var/log/secure
  • 配置文件支持使用通配符glob: 
  • ?:任意單一字符
    *:匹配任意長度字符 
    [wxc ] 匹配其中一個字符
    [!wxc] 除了這三個字符的其它字符
    /x : 轉義
    [[alpha]] :字母 示例: /bin/ls [[alpha]]*
  • 配置文件規則有兩類: 
  • 1、別名定義:不是必須的  
      2、授權規則:必須的

sudoers

  • 授權規則格式: 
  • 用戶 登入主機=(代表用戶) 命令
  • 示例:
  • root ALL=(ALL) ALL
  • 格式說明:
  • user: 運行命令者的身份 
  •  host: 通過哪些主機 
      (runas):以哪個用戶的身份  
      command: 運行哪些命令

別名

  • Users和runas:
  • username  
         #uid  
        %group_name  
        %#gid  
        user_alias|runas_alias
  • host: 
  • ip或hostname 
  • network(/netmask) 
        host_alias
  • command: 
  • command name  
      directory  
      sudoedit  
      Cmnd_Alias

最近,我編寫了一個簡短的Bash程序,將MP3文件從一個網絡主機上的USB拇指驅動器復制到另一個網絡主機上。這些文件被復制到我為志愿者組織運行的服務器上的一個特定目錄,從那里可以下載和播放這些文件。

我的程序還做了一些其他的事情,比如在文件被復制之前更改它們的名稱,以便它們在網頁上按日期自動排序。它還刪除USB驅動器上的所有文件,驗證傳輸是否正確完成。這個不錯的小程序有幾個選項,例如-h為了展示幫助,-t用于測試模式,以及其他幾個。

盡管我的程序非常出色,但它必須作為root運行才能執行其主要功能。不幸的是,這個組織只有少數人對管理我們的音頻和計算機系統有興趣,這使我能夠找到半技術人員,并訓練他們登錄到用于執行傳輸和運行這個小程序的計算機中。

這并不是說我不能親自運行這個項目,而是由于各種原因,包括旅行和生病,我并不總是在那里。即使在我在場的時候,作為“懶惰的系統管理員”,我也喜歡讓別人為我做我的工作。因此,我編寫腳本來自動化這些任務,并使用sudo來指定幾個用戶來運行這些腳本。許多Linux命令要求用戶是root用戶才能運行。這可以保護系統免受意外損壞,比如我自己的愚蠢和惡意用戶的故意破壞。

做你做得很好的事

sudo程序是一個方便的工具,它允許我作為一個具有根訪問權限的系統管理員,將所有或幾個管理任務的責任委托給計算機的其他用戶。它允許我在不損害根密碼的情況下執行該委托,從而在主機上保持高度的安全性。

例如,讓我們假設我給了常規用戶“ruser”對我的Bash程序“myprog”的訪問權限,它必須作為root運行才能執行其部分功能。首先,用戶使用自己的密碼以ruser身份登錄,然后使用以下命令運行myprog。

 myprog  

sudo程序檢查/etc/sudoers文件并驗證ruser是否允許運行myprog。如果是這樣的話,sudo請求用戶輸入他們的密碼-而不是根密碼。在ruser輸入密碼后,程序將運行。此外,sudo用程序運行的日期和時間、完整的命令以及運行它的用戶記錄對myprog的訪問事實。此數據已登錄。/var/log/security.

我發現讓sudo運行每個命令的日志來進行培訓是很有幫助的。我能看出誰做了什么,他們是否正確地輸入了命令。

我這樣做是為了授權我自己和另一個用戶運行一個程序;然而,sudo可以用來做更多的事情。它允許sysadmin將管理網絡功能或特定服務的權限委托給一個人或一組受信任的用戶。它允許在保護根密碼安全性的同時委派這些函數。

配置sudoers文件

作為一個系統管理員,我可以使用/etc/sudoers文件以允許用戶或用戶組訪問單個命令、定義的命令組或所有命令。這種靈活性是使用sudo進行委托的力量和簡單性的關鍵。

一開始我發現sudoers文件非?;靵y,所以下面我從我使用它的主機復制并解構了整個sudoers文件。希望當你通過這個分析的時候,它對你來說不會很模糊。順便說一句,我發現基于RedHat的發行版中的默認配置文件往往有大量的注釋和示例來提供指導,這使事情變得更簡單,減少了在線搜索的需求。

不要使用標準編輯器修改sudoers文件。使用visudo命令,因為它的設計目的是在保存文件并退出編輯器后立即啟用任何更改。除了Vi之外,還可以使用與visudo.

讓我們從一開始就用幾種別名來分析這個文件。

宿主別名

主機別名部分用于創建可用于提供訪問的命令或命令別名的主機組。其基本思想是為組織中的所有主機維護這個單一文件,并將其復制到/etc每一個主人。因此,可以將某些主機(如服務器)配置為一個組,使某些用戶能夠訪問特定的命令,例如啟動和停止httpd、DNS和網絡等服務的能力;掛載文件系統的能力等等。

可以在主機別名中使用IP地址而不是主機名。

## Sudoers allows particular users to run various commands as## the root user, without needing the root password.## Examples are provided at the bottom of the file for collections## of related commands, which can then be delegated out to particular## users or groups.## This file must be edited with the 'visudo' command.## Host Aliases## Groups of machines. You may prefer to use hostnames (perhaps using## wildcards for entire domains) or IP addresses instead.# Host_Alias   FILESERVERS = fs1, fs2# Host_Alias   MAILSERVERS = smtp, smtp2## User Aliases## These aren't often necessary, as you can use regular groups## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname## rather than USERALIAS# User_Alias ADMINS = jsmith, mikemUser_Alias AUDIO = dboth, ruser## Command Aliases## These are groups of related commands...## Networking# 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## Installation and management of software# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum## Services# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig## Updating the locate database# Cmnd_Alias LOCATE = /usr/bin/updatedb## Storage# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount## Delegating permissions# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp## Processes# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall## Drivers# Cmnd_Alias DRIVERS = /sbin/modprobe# Defaults specification# Refuse to run if unable to disable echo on the tty.Defaults  visiblepwDefaults  env_resetDefaults  env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"Defaults  env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"Defaults  env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"Defaults  env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"Defaults  env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"Defaults  secure_path = sbin:bin:usrsbin:usrbin:usrlocalbin## Next comes the main part: which users can run what software on## which machines (the sudoers file can be shared between multiple## systems).## Syntax:##   user  MACHINE=COMMANDS## The COMMANDS section may have other options added to it.## Allow root to run any commands anywhereroot  =ALL    ALL## Allows members of the 'sys' group to run networking, software,## service management apps and more.# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS## Allows people in group wheel to run all commandswheel =ALL    ALL## Same thing without a password# %wheel    ALL=(ALL)    NOPASSWD: ALL## Allows members of the users group to mount and unmount the## cdrom as root# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom## Allows members of the users group to shutdown this system# %users localhost=/sbin/shutdown -h now## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)#includedir /etc/sudoers.d############################################################# Added by David Both to provide limited access to myprog #############################################################AUDIO  guest1=usrlocalbinmyprog

默認sudoers文件,修改為粗體。

用戶別名

用戶別名配置允許根將用戶排序為別名組,以便整個組能夠訪問特定的根功能。這是我添加了一行的部分。User_Alias AUDIO = dboth, ruser,它定義了別名音頻,并為該別名分配了兩個用戶。

如sudoers文件中所述,可以簡單地使用/etc/groups文件而不是別名。如果您已經在其中定義了一個滿足您需要的組,如“audio”,請使用該組名,前面是%這樣的標志:%audio在為sudoers文件后面的組分配將可用的命令時。

命令別名

在sudoers文件的下面是一個命令別名部分。這些別名是相關命令的列表,例如安裝更新或新的RPM包所需的網絡命令或命令。這些別名允許sysadmin輕松地允許訪問命令組。

本節中已經設置了許多別名,這些別名可以方便地將訪問委托給特定類型的命令。

環境缺省

下一節將設置一些默認環境變量。本節中最有趣的項目是!visiblepw行,如果用戶環境設置為顯示密碼,則阻止sudo運行。這是一種不應被推翻的安全防范措施。

指揮部分

命令部分是sudoers文件的主要部分。通過在這里添加足夠的條目,您需要做的每一件事都可以在沒有所有別名的情況下完成?;粫屖虑樽兊煤唵味嗔恕?/p>

本節使用您已經定義的別名告訴sudo誰可以在哪個主機上做什么。當您理解本節中的語法時,這些示例是不言自明的。讓我們看看我們在命令部分中找到的語法。

ruser =ALL ALL

這意味著ruser可以像任何用戶一樣在任何主機上運行任何程序。

這是我們的用戶,ruser的通用條目。第一ALL在行中,指示此規則適用于所有主機。第二ALL允許ruser像其他用戶一樣運行命令。默認情況下,命令以根用戶的身份運行,但ruser可以在sudo命令行上指定程序以其他用戶的身份運行。最后一次ALL意味著ruser可以不受限制地運行所有命令。這將有效地使ruser根。

注意,根有一個條目,如下所示。這使得根用戶可以對所有主機上的所有命令進行全方位的訪問。

root =ALL ALL

這意味著root可以任何用戶的身份在任何主機上運行任何程序。

為了嘗試這一點,我注釋掉了行,并作為根用戶,嘗試在沒有sudo的情況下運行chown。那確實奏效了-真讓我吃驚。然后我用sudo chown這個消息失敗了,“根不在sudoers文件中,這個事件將被報告。”這意味著root可以root的身份運行所有東西,但在使用sudo命令時則不能運行。這將防止root用戶以其他用戶的身份通過sudo命令,但是root有很多方法可以繞過這個限制。

下面的代碼是我為控制對myprog的訪問而添加的代碼。它指定在音頻組中列出的用戶,如在sudoers文件頂部定義的那樣,只能訪問一個主機上的一個程序myprog,即guest 1。

AUDIO guest1=usrlocalbinmyprog

允許音頻組中的用戶訪問主機用戶1上的myprog。

請注意,上述行的語法僅指定允許此訪問的主機和程序。它沒有指定用戶可以像其他用戶一樣運行程序。

繞過密碼

您也可以使用NOPASSWORD允許組音頻中指定的用戶運行myprog,而不需要輸入他們的密碼。以下是如何:

AUDIO guest1=NOPASSWORD : usrlocalbinmyprog

允許音頻組中的用戶訪問主機用戶1上的myprog。

我沒有為我的程序這么做,因為我認為擁有sudo訪問權限的用戶必須停下來思考他們正在做什么,這可能會對此有所幫助。我以我的小程序的條目為例。

wheel

sudoers文件的命令部分中的輪規范(如下圖所示)允許“wheel”組中的所有用戶在任何主機上運行所有命令。wheel組定義在/etc/group文件,并且必須將用戶添加到組中才能工作。%組名稱前面的簽名意味著sudo應該在/etc/group檔案。

wheel ALL = ALL ALL

允許作為“wheel”組成員的所有用戶,如/etc/group文件,可以在任何主機上運行所有命令。

這是一種將完全根訪問委托給多個用戶的好方法,而無需提供根密碼。只需將用戶添加到wheel組中,就可以讓他們訪問完全的根權限。它還提供了一種通過sudo創建的日志條目監視其活動的方法。某些發行版(如Ubuntu)將用戶ID添加到/etc/group,它允許他們使用sudo命令,用于所有特權命令。

最后思想

我在這里使用sudo是為了一個非常有限的目標-為一兩個用戶提供訪問單個命令的權限。我用兩行(如果您忽略我自己的評論)來完成這一任務。將執行某些任務的權限委托給沒有根訪問權限的用戶是很簡單的,并且可以節省您作為系統管理員的大量時間。它還生成可以幫助檢測問題的日志條目。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
92国产精品视频| 欧美成人一区在线| 欧美日韩成人在线观看| 亚洲精品黄网在线观看| 色www亚洲国产张柏芝| 欧美性猛交xxxx免费看| 国产精品久久久久免费a∨| 日韩久久精品电影| 国产一区二区视频在线观看| 91性高湖久久久久久久久_久久99| 深夜成人在线观看| 91精品视频免费观看| 欧美日韩久久久久| 91免费综合在线| 亚洲欧美激情精品一区二区| 成人精品视频99在线观看免费| 国产精品自拍视频| 久久精品一区中文字幕| 日韩理论片久久| 国产成人高潮免费观看精品| 国产在线视频欧美| 国产成人午夜视频网址| 国产精品久久在线观看| 亚洲人成电影网站色| 日韩免费av片在线观看| 日韩成人在线观看| 亚洲国产精品成人av| 日本精品久久中文字幕佐佐木| yw.139尤物在线精品视频| 美日韩精品视频免费看| 日韩人在线观看| 欧美乱人伦中文字幕在线| 亚洲欧美日韩一区二区在线| 成人乱人伦精品视频在线观看| 中文字幕亚洲无线码在线一区| 国产有码在线一区二区视频| 国产精品88a∨| 欧美资源在线观看| 欧美高清videos高潮hd| 亚洲大尺度美女在线| 亚洲成人久久久| 一本大道香蕉久在线播放29| **欧美日韩vr在线| 亚洲精品自产拍| 亚洲天堂成人在线视频| 成人情趣片在线观看免费| 色综合伊人色综合网站| 亚洲美女免费精品视频在线观看| 亚洲日本欧美日韩高观看| 欧美激情2020午夜免费观看| 91欧美日韩一区| 成人日韩在线电影| 日产精品99久久久久久| 97精品国产97久久久久久春色| 欧美日韩中文字幕综合视频| 久久精品国产69国产精品亚洲| 国产日韩精品视频| 久久国产精品影片| 欧美一级淫片播放口| 亚洲欧洲xxxx| 91日韩在线播放| 国产精品吹潮在线观看| 日韩av一区二区在线观看| 亚洲成人av在线播放| 成人免费直播live| 日本精品视频在线播放| 91沈先生在线观看| 91精品国产综合久久久久久久久| 97不卡在线视频| 在线观看成人黄色| 91免费看国产| 95av在线视频| 九九热视频这里只有精品| 久久久精品一区二区三区| 亚洲国产美女精品久久久久∴| 久久久97精品| 国产精品视频最多的网站| 国产日韩欧美夫妻视频在线观看| 欧美丰满少妇xxxx| 久久精品国产成人| 亚洲精品在线视频| 日韩成人激情影院| 国产精品久久久久久久久| 亚洲乱码国产乱码精品精| 国产精品女主播视频| 欧美午夜影院在线视频| 91精品国产自产在线| 国产欧美日韩专区发布| 91国在线精品国内播放| 日韩av电影在线播放| 亚洲一区二区三区在线视频| 亚洲三级av在线| 国产欧美欧洲在线观看| 中文字幕v亚洲ⅴv天堂| 亚洲欧美成人在线| 日韩精品在线观看视频| 精品国产乱码久久久久酒店| 日本高清视频精品| 亚洲性av网站| 国产999视频| 亚洲片在线观看| 欧美激情综合亚洲一二区| 欧美疯狂性受xxxxx另类| 国产精品视频网址| 国产亚洲精品久久久久动| 成人做爽爽免费视频| 亚洲国产精品热久久| 欧美丰满片xxx777| 久久亚洲精品成人| 亚洲天堂免费视频| 九九热99久久久国产盗摄| 国产91精品久久久久久久| 久久综合88中文色鬼| 日韩在线视频导航| 久久99久久99精品中文字幕| 日韩精品在线观看视频| 欧美性生交大片免网| 欧美在线日韩在线| 最新亚洲国产精品| 欧美性xxxx在线播放| 中文字幕欧美日韩在线| 国产精品日韩在线一区| 亚洲精品白浆高清久久久久久| 久久中文字幕在线视频| 5278欧美一区二区三区| 亚洲缚视频在线观看| 欧美日韩国产精品一区二区三区四区| 91av视频在线播放| 国产日韩欧美视频在线| 一区二区三区四区在线观看视频| 日本成人在线视频网址| 久久久久国产精品免费网站| 久久久人成影片一区二区三区| 欧美在线视频网| 日韩性生活视频| 欧美成人h版在线观看| 亚洲福利视频在线| 亚洲网站视频福利| 欧美国产精品va在线观看| 国产精品草莓在线免费观看| 久久夜色精品国产亚洲aⅴ| 欧美日韩午夜视频在线观看| 亚洲一区二区三区香蕉| 亚洲区中文字幕| 91久久精品久久国产性色也91| 一区二区三区动漫| 中文日韩在线视频| 日韩欧美精品中文字幕| 欧美精品激情视频| 68精品久久久久久欧美| 日韩精品亚洲元码| 久久亚洲欧美日韩精品专区| 日韩毛片中文字幕| 国产一区视频在线| 91在线直播亚洲| 亚洲国产一区二区三区四区| xxx成人少妇69| 国产suv精品一区二区| 国产91在线高潮白浆在线观看| 成人激情在线观看| 亚洲一区亚洲二区亚洲三区| 久久久久久一区二区三区| 日本精品一区二区三区在线| 亚洲免费视频在线观看|