sudo——讓普通用戶更靈活

sudo命令

1、sudo能夠授權指定用戶在指定主機上運行某些命令。如果未授權用戶嘗試使用sudo ,會提示聯系管理員

2、sudo可以提供日志,記錄每個用戶使用sudo 操作

3、sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機

4、sudo 使用時間戳文件來完成類似“檢票”的 系統,默認存活期為5 分鐘的 “入場券”

5、通過visudo命令編輯配置文件,具有語法檢查功能

配置文件:/etc/sudoers, /etc/sudoers.d/

時間戳文件:/var/db/sudo

日志文件:/var/log/secure

配置文件支持使用通配符glob:

         ?: 任意單一字符

         *:匹配任意長度字符

         [wxc]:匹配其中一個字符

         [!wxc]:除了這三個字符的其它字符

         \x:轉義

         [[alpha]]:字母

                 示例:/bin/ls [[alpha]]*

配置文件規則有兩類 ;

         1、別名定義:不是必須的

         2、授權規則:必須的

sudo –i –u wang  切換身份

sudo [-u user] COMMAND

         -V:顯示版本信息等配置信息

         -u user:默認為root

         -l,ll:列出用戶在主機上可用的和被禁止的命令

         -v:再延長密碼有效期限5分鐘, 更新時間戳

         -k:清除時間戳,下次需要重新輸密碼

         -K:與-k類似,還要刪除時間戳文件

         -b:在后臺執行指令

         -p:改變詢問密碼的提示符號

                 如 -p ”password on %h for user %p"

授權規則格式:

    用戶 登入主機=(代表用戶) 命令

示例:

         root ALL=(ALL) ALL

         /etc/sudoers中 關于root權限的行,是一個后門,如果root用戶不是管理員了,但可以使用sudo命令來獲取所有用戶的權限

        

         A用戶加入到wheel組中,B用戶運行以A身份運行命令<sudo>

         則B用戶要運行擁有wheel組的權限,需要2次sudo

                 sudo -u A sudo cat /etc/shadow

格式說明:

         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

                 授權用戶可以直接編輯/etc/sudoers文件

                 用法:sudo /etc/dudoers

         Cmnd_Alias

別名有四種類型:User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias

別名格式:[A-Z]([A-Z][0-9]_)*

別名定義:

        Alias_Type NAME1 = item1, item2, item3 : NAME2 = item4, item5

示例1:

         Student ALL=(ALL) ALL

         %wheel ALL=(ALL) ALL

示例2:

         student ALL=(root) /sbin/pidof,/sbin/ifconfig

         %wheel ALL=(ALL) NOPASSWD: ALL

示例3:

         User_Alias NETADMIN= netuser1,netuser2

         Cmnd_Alias NETCMD = /usr/sbin/ip

         NETADMIN ALL=(root) NETCMD

示例4:

         User_Alias SYSADER=wang,mage,%admins

         User_Alias DISKADER=tom

         Host_Alias SERS=www.magedu.com,172.16.0.0/24

         Runas_Alias OP=root

         Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod

         Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk

         SYSADER SERS=  SYDCMD,DSKCMD

         DISKADER ALL=(OP) DSKCMD

示例5:

         User_Alias ADMINUSER = adminuser1,adminuser2

         Cmnd_Alias ADMINCMD = /usr/sbin/useradd,

         /usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,

         !/usr/bin/passwd root

         ADMINUSER ALL=(root) NOPASSWD:ADMINCMD, ,

         PASSWD:/usr/sbin/userdel

示例6:

         Defaults:wang runas_default=tom

         wang ALL=(tom,jerry) ALL

         使用sudo命令時,不寫-u USER,默認是wang

示例7:

    wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd

示例8:

    wang ALL=(ALL) /bin/cat /var/log/message*

原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/49075

(1)
megedugaomegedugao
上一篇 2016-09-25 14:43
下一篇 2016-09-25 15:00

相關推薦

  • 作業權限管理

    一、在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 首先創建三個組g1,g2,g3,題目要求在/data/testdir目錄里創建的文件自動屬于g1組那么首先要將這個目錄的屬組改為g1,然后通過更改…

    Linux干貨 2016-08-03
  • 馬哥教育網絡班21期+第2周課程練習

    一、Linux文件管理類命令     1、文件的復制、移動和刪除        A、cp  文件的復制          cp命令的用法:    &n…

    Linux干貨 2016-06-26
  • web service之http協議

    一.概述 1.web應用的核心是http協議(HyperText Transfer Protocol),http協議的由兩部分組成,客戶端程序和服務器端程序,通過交換http報文進行會話。web頁面則是由對象(也叫資源)組成的,對象直白的說就是一個個的文件,而這些對象可以通過URL引用,URL由兩部分組成,存放對象的主機名和對象的文件路徑,而這些對象都存儲在…

    Linux干貨 2016-11-03
  • bash特性

    bash特性之一:命令別名      獲取當前用戶可用的別名的定義:  bash的特性之二:命令歷史      命令語法格式:      history [-c] [-d OFFSET] [n]&nb…

    Linux干貨 2016-11-06
  • 軟鏈接和硬鏈接及兩者之間的不同

    在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號…

    Linux干貨 2016-12-05
  • 馬哥教育網絡班22期+第三周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     [root@zabbix ~]# who|awk '{print $1}'|sort| uniq 2、取出最后登錄到當前系統的用戶的相關信息。 &nb…

    Linux干貨 2016-08-23
欧美性久久久久