天天看點

Linux 雜記 特殊權限管理之sudo

  • sudo

    :
    • 特殊權限管理,用于給不同的使用者管理不同的功能,使彼此隻見不互相幹擾;
    • Linux

      通過

      sudo

      不進行使用者切換,但是在使用

      sudo COMMAND

      的那一刻擁有了執行這個指令的權限;
    • sudo

      :用于定義某個使用者能夠以另某使用者的身份通過某主機執行某指令,其中配置檔案在

      cat /etc/sudoers

      ,使用

      visudo

      來編輯,而且可以用來檢查其文法的正确性,

      visudo -f /etc/sudoers

      ,
  • /etc/sudoers

    :配置檔案的文法格式:
  • 每一個行用于定一個一個sudo條目:
who         which_hosts=runas       TAG:conmand
root    ALL=(ALL)       ALL //表示管理者可以使用任何身份執行任何指令;
           
  • sudo

    支援别名機制,類似定義的管理組
  • 1.

    who:User_Alias

User_Alias      FULLTIMERS = millert, mikef, dowdy
必須使用大寫英文字母的組合,使用者别名可以包含目前主機上面的使用者組,
User_Alias      FULLTIMERS = %millert, %mikef, %dowdy
這裡表示的就是組名;
           
  • 2.

    which_hosts:Host_Alias

主機名稱可以使用主機名,IP,組名,網絡位址,其他主機位址;
Host_Alias      CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
           
  • 3.

    runas:Runas_Alias

    :支援使用者名,

    %組名

    ,其他的

    Runas

    别名;
  • 4.

    command:Cmnd_Alias

    :指令最好是用絕對路徑,目錄:此目錄内的所有路徑,其他實作定義過的指令别名;
  • 對于上述的四種别名,别名必須是大寫的英文字母;
  • 5.

    TAG

    :支援标簽,

    NOPASSWD

    :表示執行這個指令是不需要密碼的;
  • 接下來實作hadoop通過sudo執行useradd指令,并且能夠添加使用者
  • 1.

    visudo -f /etc/sudoers

添加:
hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
$ sudo useradd tom
sudo] password for hadoop:  //需要輸入hadoop的密碼
$ sudo /usr/sbin/userdel tom
Sorry, user hadoop is not allowed to execute '/usr/sbin/userdel tom' as root on localhost.localdomain.
$ sudo usermod -s /bin/csh tom
           
  • 接下來添加執行不使用密碼的方式來執行上面兩個指令:
    Linux 雜記 特殊權限管理之sudo
    Linux 雜記 特殊權限管理之sudo
  • 定義使用者管理類别名的方式
User_Alias USERNAME=haoop,%hadoop,%useradmin
Cmnd_Alias USERADMINCMMD=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,! /usr/bin/passwd root
USERNAME ALL=(root) NOPASSWD:USERADMINCMMD
           
  • sudo

    預設使用者在第一次認證通過的開始将使用者的密碼記錄下來,并且預設時間為5分鐘;
  • sudo

    :
    • -k

      :指令用于讓認證資訊失效,使用者下次執行仍然需要密碼;
    • -l

      :用于列出目前使用者可以使用的sudo類指令;
  • 使用

    sudo

    執行的指令過程都是在

    /var/log/secure

    都有進行定義;,如果郵件服務是正常的,當存在非法使用者執行

    sudo

    指令時,超級使用者是可以是收到郵件通知的;

繼續閱讀