好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Linux使用Sudo委派權限

Linux使用Sudo委派權限

熱門標簽:福州呼叫中心外呼系統哪家好 七大洲地圖標注 臨汾電銷機器人費用 河南省鄭州市地圖標注 地圖標注w是什么方向 新鄉人工智能電話機器人加盟 昆明外呼系統 地圖標注需要提交啥資料入駐 400電話申請找哪家公司

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文件非常混亂,所以下面我從我使用它的主機復制并解構了整個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, mikem
User_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  visiblepw
Defaults  env_reset
Defaults  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 anywhere
root  =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 commands
wheel =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文件的主要部分。通過在這里添加足夠的條目,您需要做的每一件事都可以在沒有所有別名的情況下完成。化名只會讓事情變得簡單多了。

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

總結

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

標簽:岳陽 紅河 鎮江 四川 烏海 海口 股票 臨沂

巨人網絡通訊聲明:本文標題《Linux使用Sudo委派權限》,本文關鍵詞  Linux,使用,Sudo,委派,權限,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux使用Sudo委派權限》相關的同類信息!
  • 本頁收集關于Linux使用Sudo委派權限的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 亚洲无线一二三四区| 6080三级| 久久久久久精品毛片A级自慰| 宝贝打开生殖腔habo| 校花?一开让我爽一夜| 991在线无码精品秘?人口| 伊人色伊人亚洲综合网站| 特色特色大片在线| 91人妻PORNY精品国产| ???免费裸体视频女性 | 在健身房被私教日出水| 梅花三弄在线高清观看| 欧美午夜??AV天堂| 嗯啊…| 91丨九色丨白浆秘?小青龙| 嗯哦哦啊灬用力哦啊快点| 大众浴池摄像高清摄像头| 孕妇高潮XXXXX孕妇| 69综合网| jizz丝袜| 护士洗澡被狂躁A片在线观看| 欧美 国产 亚洲 另类 动漫| chaopeng在线视频进入| 免费看的毛片| 国产AV一区二区三区色在线看| 全黄h全肉撅起屁股挨打| 福利在线视频导航| 国产精品a8198v久久A片| 美女裞内衣内裤穿开裆内裤| 国产成年网站| 积积对积积免费软件网站| 欧美色图激情小说| 校草被绑住玩弄尿孔H小说| 女生吃男生j免费视频| 黄色综合网站| 性瘾调教(H)| 国产农村妇女一级A片免黑人| 欧美日韩在线视频专区免费| 艳妇诱春h高h丽春院头牌| 96福利视频| 日韩精品片|