sudo的用法


為了系統安全我們一般不直接使用root用戶進行日常維護,sudo是臨時提升root權限,有時執行一些命令或者更新沒權限的文件時需要使用root,這個時候就需要sudo上場了

普通用戶是沒有sudo使用權的,需要root管理員添加才行

sudo

root ALL=(ALL) ALL
參數說明:
第一個ALL:指網絡中的主機
第二個ALL:指目標用戶,也就是以誰的身份去執行命令
第三個ALL:指命令名,可以執行所有命令

例:讓jspear用戶在本地主機上以admin的身份執行kill命令
jspear localhost=(admin) /bin/kill

如果多個用戶可以使用組功能,%代表這個是組,NOPASSWD是免輸入密碼
%wheel  ALL=(ALL)       NOPASSWD: ALL     #取消注釋
usermod -a -G wheel jspear                #添加用戶jspear到組wheel,使用id查看用戶所屬組

需要再添加新用戶使用sudo只需要繼續執行usermod,不用修改visudo文件
#centos7默認已經開放%wheel這一行,之前的centos版本沒有啟用


添加到wheel組的用戶都能夠利用root身份進行任何操作,可以自定義限制用戶執行的指令
[root@localhost ~]# visudo jspear ALL=(root) /usr/bin/passwd <=命令需要使用絕對路徑
這樣其實是有個很大漏洞的,可以直接sudo passwd修改root密碼,需要再做下限制
[jspear@localhost ~]$ sudo passwd
Changing password for user root.
New password: 

[root@localhost ~]# visudo
jspear  ALL=(root)      NOPASSWD:ALL,!/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/bin/su
ALL允許所有命令,!代表不執行,上面意思是允許執行所有,passwd后加任意字符可以執行,但passwd與passwd root這兩個命令除外,如此jspear用戶就無法改變root密碼了,並且禁止sudo su

如果我有多個用戶需要加入上面管理員行列,除了一個人添加有沒有簡單方法呢,哈哈,有的,使用別名
另外可以是【命令別名、賬號別名、主機別名】
[root@localhost ~]# visudo
User_Alias ADMIN = jspear,admin,user1,user2
Cmnd_Alias ADMINCOM = !/usr/bin/passwd,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/useradd,!/usr/sbin/userdel,!/usr/sbin/visudo,!/bin/su
ADMIN  ALL=(root) NOPASSWD:ALL,ADMINCOM
注意:User_Alias、Cmnd_Alias、Host_Alias這些是系統規定的,必須這樣的形式寫法
當需要添加用戶或者添加限制只需要修改User_Alias、Cmnd_Alias這兩行即可 sudo的時間間隔問題:默認兩次執行sudo的間隔在5分鍾內,五分鍾內執行sudo是不需要再次輸入密碼的



sudo搭配su直接轉換為root
[root@localhost ~]# visudo
User_Alias ADMIN = jspear,admin,user1,user2
ADMIN  ALL=(root) /bin/su -


admin@localhost ~]$ sudo su -   #使用Admin用戶sudo su -輸入admin密碼可以直接進入root權限

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for admin: 
[root@localhost ~]# 


sudo用法可以查看鳥哥寫的博客:http://linux.vbird.org/linux_basic/0410accountmanager.php#sudo

提示:centos 7由於默認將%wheel ALL=(ALL) ALL開啟,需要將這行注釋,否則NOPASSWD不會生效

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM