提高權限 -- sudo

 

介紹vim


 

su 命令的缺點:安全

  使用 su 命令時, 不指定用戶名默認切換至 root 用戶, 須要輸入 root 密碼, 但實際生產中 root 密碼是不能夠被普遍告知的; 若須要執行 root 用戶才能執行的命令時, 須要經過 sudo 命令 或者 wheel 組的設置來實現..bash

 

sudo :服務器

  • 容許系統管理員分配給普通用戶一些合理的 "權力" , 讓受權用戶能夠執行只有超戶或其餘特定用戶才能完成的操做, 減小 root 用戶的登陸次數及管理時間, 達到提升系統安全的效果;
  • 使用方法: sudo 受權命令 , 默認設置爲首次執行時, 需輸入當前用戶的登陸密碼, 5 分鐘內再次執行 sufo 命令時無需再次輸入密碼;
  • 可以限制指定用戶在指定主機上運行某些命令;
  • 可提供日誌, 詳細的記錄每一個用戶使用sudo有哪些操做,且能將日誌傳輸到中心主機或者日誌服務器;
  • 爲系統管理員提供配置文件, 容許系統管理員集中的管理用戶的使用權限和使用主機, /etc/sudoers;

 

配置受權網絡


 添加單個用戶 sudo 受權dom

// 使用 visudo 或者 vim /etc/sudoers 一樣能夠實現;
// 格式: 用戶    主機名=(命令程序列表) 命令,!命令(表示此命令不能使用)
vim /etc/sudoers
    ... ...
    root    ALL=(ALL)    ALL
    ... ...
    # Allow users to run some commands
    tian    localhost=(root)        !/sbin/reboot,!/sbin/init,!/sbin/poweroff,!/sbin/shutdown

''' 
 第一個 ALL : 指網絡中的主機, 能夠指定 IP 地址; 第二個 ALL : 目標用戶, 能夠不寫, 默認root ; 也就是以誰的身份去執行命令; 第三個 ALL : 命令,或者排除什麼命令 '''

  

批量用戶受權this


 

// ****************************** 方法一 : 使用組 ************************************
// 多個用戶可使用組功能, 配置文件中 % 表明組, NOPASSWD 免輸入密碼;
vim /etc/sudoers        // 開啓 wheel 組, Centos 7 默認是開啓的;
    ... ...
    %wheel        ALL=(ALL)       NOPASSWD: ALL        // NOPASSWD:ALL 免密鑰存在必定的風險;
    // 可按下方配置進行設置, 禁掉不安全命令;
    %wheel        ALL=(ALL)       NOPASSWD: ALL,!/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
    ... ...
    
// 示例一; 能夠指定組裏面的特定用戶, 也能夠直接使用 ALL
    %wheel    tian=/sbin/*,/usr/sbin/*,!/sbin/reboot,!/sbin/init,!/sbin/poweroff,!/sbin/shutdown 
// ****************************** 方法二 : 別名 ***************************************
// 設置 主機別名 , 用戶別名 , 命令別名; 格式: 用戶別名  主機別名=命令別名(全部別名均大寫)
vim /etc/sudoers ... ... ## 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 ADMIN = tian,zxjr ## Command Aliases   // 命令別名
 ## These are groups of related commands... Cmnd_Alias ADMINCOM = !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su ADMIN ALL=(ALL) NOPASSWD: ALL,ADMINCOM 

 

 

開啓 sudo 操做記錄功能spa


 

// 編輯sudo配置文件, 添加 Defaults logfile;
vim /etc/sudoers             或者 visudo
    ... ...
    Defaults logfile=/var/log/sudo
    ... ...
    
// 保存退出,
useradd                 // 使用 tian 用戶執行 /usr/sbin 下的root的命令;回顯沒有權限;
    -bash: /usr/sbin/useradd: Permission denied
sudo useradd zxjr     // 使用 sudo 執行;輸入 用戶 tian 的密碼; 
    [sudo] password for tian: 
    useradd: user 'zxjr' already exists
su -                 // 切換到 root 用戶;
Password: 
tail -f /var/log/sudo         // 查看日誌記錄, 詳細記錄時間, 用戶, tty端, 所在路徑, 使用用戶, 執行命令;
    Apr  8 22:02:09 : tian : TTY=pts/0 ; PWD=/home/tian ; USER=root ;
        COMMAND=/usr/sbin/useradd zxjr
相關文章
相關標籤/搜索