RH124學習筆記---linux用戶權限su和sudo

用戶受權
    生產環境中,root用戶密碼只有極少數人知道,普通員工只能使用普通用戶登陸,
    若是普通用戶須要執行特殊操做,有兩種方法。
    (1)su -root ,切換到root執行特殊操做,而後再返回到普通用戶
    (2)sudo 
    su
    優勢:
    使用簡單
    缺點:
    一、root密碼容易泄露
    二、普通用戶可執行的操做不可控
    sudo命令
    做用:給普通用戶受權,讓普通用戶能夠執行特定操做的權限
    缺點:須要進行配置受權
    優勢:
    一、不須要切換到root用戶(不須要知道root的密碼)
    二、用戶可執行的命令都是預先設置好的(可執行的權限是可控的)
    三、能夠記錄每一個用戶所執行過的命令
    sudo的使用
    第一步:經過sudo的配置文件爲普通用戶受權
    第二部:普通用戶使用sudo來執行特定的操做
    sudo的配置文件
    /etc/sudoers  
    格式:
    用戶名   主機=(切換的用戶)  可執行的命令
    說明
    用戶名:普通用戶的名稱
    主機:能夠在哪一個主機上執行特定的命令
    ALL 表示任意主機
    localhost 表示當前主機
    hostName 表示具體的主機名
    ***.***.***.*** 表示一個ip地址(192.168.6.123)
    ***.***.***.***/netmask 表示一個網段(192.168.6.0/24)
    切換的用戶:切換到指定的用戶來執行後面的命令,一般的都是root用戶
    表示的方式
        一、(all)
        二、(root)
        三、 空
    可執行的命令:用戶能夠執行命令
        格式:命令1,命令2……
        補充:能夠用通配符的方式
        例子:給test賦權,讓這個用戶能夠在任意主機切換到root用戶執行useradd
    test    ALL=(ALL)       /usr/sbin/useradd
    注意:修改sudo的配置文件,一般不用vi,而是用visodu命令
    使用visodu來修改配置文件,若是你修改的配置文件有錯誤,那麼系統會提示有錯,而且阻止保存。
    例子:讓普通用戶laowantong能夠在任意主機上執行useradd和userdel命令
    一、建立用戶laowantong
    useradd laowantong
    passwd laowantong
    二、修改sudo配置文件
    visudo
    laowantong ALL=(root)  /usr/sbin/useradd,/usr/sbin/userdel
    三、用普通用戶laowantong登陸系統,而後執行新建用戶和刪除用戶的操做
    sudo useradd zhoubotong
    sudo userdel zhoubotong
    思考:爲何用sudo的時候,會提示輸入密碼
    爲何第二次不須要輸入密碼   
    普通用戶在執行sudo的時候,會在/var/db/sudo/lectured/下生成該用戶的一個祕鑰,
    這個用戶的祕鑰有效期是5分鐘,這樣在5分鐘以內再次執行sudo的時
    候,是不須要輸入密碼的。
    擴展受權格式
    test ALL=(root) /usr/sbin/useradd
    test ALl=(root)  ALL
    %gp01 ALL=(root)  /usr/sbin/useradd
    test  ALL=(root) /usr/sbin/*
    %gp01 ALL=(root)/usr/sbin/useradd,/usr/sbin/userdel
    %gp01 ALL=(root)NOPSAAWD:/usr/sbin/useradd,/usr/sbin/userdel  不用輸入密碼
    %gp01 ALL=(root)NOPASSWD:/usr/sbin/useradd,NOPASSWD:/usr/sbin/userdel 不用輸入密碼
    test ALL(root) NOPASSWD:ALL  不用輸入密碼
    %gp01  ALL(root)  /usr/sbin/*,!/usr/sbin/useradd   除了/usr/sbin/useradd 不能執行
    注意:若是直接是一個字符串,那麼這幾一個用戶名
    若是在字符串前面有個%,那麼這是一個用戶組
    用戶使用sudo的基本流程
    一、sudo
    -------->>>>>var/db/sudo/檢查時間戳是否過時
    -------->>>>>若是過時,要求從新輸入密碼
    -------->>>>>記錄時間戳到/var/db/sudo --檢查/etc/sudoers 是否有受權
    -------->>>>>若是有執行命令
    -------->>>>>若是還沒有過時--->>>>>檢查/etc/sudoers 是否有受權
    -------->>>>>若是有執行命令
    -------->>>>>報錯提示無權限,並退出sudo
    sudo配置文件的構成
    定義別名
    受權規則
    別名的類別
    Host_Alias:主機別名。別名字母必須都是大寫,成員能夠是主機、網段
    Host_Alias MYHOST = zhangsan,lisi
    Host_Alias MYHOST = ALL
    Host_Alias MYHOST =locahost,192.168.6.0/24,172,10.0.0/16
    User_Alias:用戶別名。別名字母必須都是大寫,成員都是系統中的用戶,
    也能夠是組
    User_Alias MYUSER =tom,jerry
    User_Alias MYUSER =tom,jerry,%gp01
    Cmnd_Alias:命令別名,成員都是系統中的命令,這裏最好用命令的絕對路徑。
    Cmnd_Alias MYCMD = usr/sbin/useradd,usr/sbin/userdel
    Cmnd_Alias MYCMD = usr/sbin/*,/usr/bin*
    Cmnd_Alias MYCMD = usr/sbin/*,/usr/bin* !/usr/sbin/useradd
    Runas_Alias:角色別名,成員一般都是root或者其餘權限較高的用戶,用的比較少
    注意:一、別名的名稱中的字母必須都是大寫
         二、別名中的能夠有數字和下劃線,可是必須以字母爲開頭
    主機別名舉例
    Host_Alias H1 = localhost,zhangsan,lisi,192.168.6.123,172.20.0.0/16
    用戶別名舉例
    User_Alias DEV = zs,ls,ww,%admin
    命令別名舉例
    Cmnd_Alias CMND1 = /usr/sbin/useradd, /usr/sbin/userdel,/bin/*,/sbin/[a-g]*
    Cmnd_Alias CMND1 = /usr/sbin/useradd, NOPASSWD:/usr/sbin/userdel,/bin/*,!/bin/find,/sbin/[a-g]* 
    特殊寫法
    User_Alias DEV = zs,ls,ww,%admin: NET = dehua,degang
    sudo的受權規則
    格式:
    受權用戶 主機=[(切換到的用戶)] [NOPASSWD:]命令1,[(切換到的用戶)] [NOPASSWD:]命令2,
    [(切換到的用戶)] [NOPASSWD:]命令3……
    說明:
    一、[]中的內容都是可省略的
    二、命令和命令之間用逗號分隔
    三、若是省略[(切換到的用戶)],表示切換到root用戶執行後面的命令
    四、若是(切換到的用戶)寫出(ALL),表示切換到全部用戶,從全部用戶中
    找出能夠執行後面的命令並執行命令
    五、若是[NOPASSWD:]省略,則表示在用戶首次使用sudo時候輸入密碼,密碼有效期爲5分鐘
    timi ALL= /bin/*    
    timi ALL= /usr/bin/passwd, !/usr/bin/passwd root
    timi ALL= /bin/vi, !/bin/vi /etc/*
    或者
    Cmnd_Alias CMD_TIMI = /bin*,  /usr/bin/passwd, !/usr/bin/passwd root,/bin/vi, !/bin/vi /etc/*
    timi ALl= CMD_TIMI
    sudo-l
    User timi may run the following commands on this host:
    (root) /usr/bin/passwd
    sudo命令的選項
    -l:查看當前用戶的受權信息
    -k:讓當前主機上的sudo祕鑰馬上失效
    visudo命令選項
    -c:檢查sudo的配置文件是否有語法錯誤
    治理公司root權限氾濫的狀況
    第一步:分析員工的類別
    分析梳理公司須要使用服務器的員工的數量和類別
    開發一、開發2……開發主管
    運營一、運營2……運營主管
    初級運維一、初級運維二、初級運維3
    中級運維一、中級運維二、中級運維3
    高級運維一、高級運維二、高級運維3
    第二步:分析各種員工要執行的操做
    開發:上傳和下載、建立目錄、文件、刪除文件、目錄
    開發主管:上傳和下載、建立目錄、文件、刪除文件、目錄
    運營……
    運營主管……
    第三步:結合要執行的操做給出必須的命令
    將命令反饋給各個部門,讓他們檢查是否知足平常的操做需求
    第四步:sudo受權
    定義命令別名
    定義用戶別名
    定義主機別名
    sudo受權
    第五步:測試受權是否可用
相關文章
相關標籤/搜索