sudo详细介绍...
?
1.sudo簡(jiǎn)介
sudo能實(shí)現(xiàn)把有限的管理操作授權(quán)給某普通用戶,并且還能限定其僅能夠在某些主機(jī)上執(zhí)行此類命令,普通用戶的這些操作過(guò)程還會(huì)被記錄在日志中,以便日后審計(jì),而且不需要管理員的帳號(hào)密碼,只需在需要執(zhí)行的命令前加上sudo就行了
1-1.配置sudo文件:
/etc/sudoers?注:雖然該配置文件可以使用vim編輯,但是不推薦,建議使用visudo,這是他專門的命令
語(yǔ)法:?
who which_host=(whom) command #在定義命令的時(shí)候,由于普通用戶是不能獲取管理員的路徑的,所以執(zhí)行的命令要寫全路徑 普通用戶 指定主機(jī)=誰(shuí)的權(quán)限 可執(zhí)行命令1-2.sudo命令
sudo –l : #查看自己可以執(zhí)行哪些管理員命令 [hadoop@lidefu ~]$ sudo -l #查看hadoop可以使用的命令 [sudo] password for hadoop: #需要輸入密碼確認(rèn) User hadoop may run the following commands on this host: (root) /usr/sbin/useradd #hadoop可以執(zhí)行的命令 sudo -k #強(qiáng)迫使用者在下一次執(zhí)行sudu時(shí)必須輸入密碼 [hadoop@lidefu ~]$ sudo -k #直接執(zhí)行就行了,清除一下5分鐘的限制
2.sudo的別名
如果需要定義的用戶或者命令等過(guò)多,逐條寫不便于管理,于是可以使用別名機(jī)制,別名只能使用純大寫字母,別名可以嵌套,也就是說(shuō)可以別名中包含別名
2-1.用戶別名
示例: # User_Alias ADMINS = jsmith, mikem #多個(gè)用戶需要用逗號(hào)隔開(kāi) # User_Alias ADMINS = %group #組名需要用%標(biāo)識(shí)2-2.主機(jī)別名Host_alias
示例: # Host_Alias FILESERVERS = fs1, fs22-3.命令別名
示例: # Cmnd_Alias NETWORKING = /sbin/route...3.練習(xí):
3-1.給用戶hadoop用戶授權(quán)可以添加用戶
[root@lidefu ~]# visudo #使用visudo并添加如下語(yǔ)句 hadoop ALL=(root) /usr/sbinl/useradd [root@lidefu ~]# su - hadoop #切換用戶,可以看到以下,執(zhí)行成功 [hadoop@lidefu ~]$ sudo useradd vdm12315 #使用sudo添加一個(gè)用戶 # #占位符,這里需要輸入密碼,默認(rèn)兩次都需要輸入密碼的間隙為5分鐘 [hadoop@lidefu ~]$ tail -1 /etc/passwd #查看是否添加成功 vdm12315:x:509:509::/home/vdm12315:/bin/bash3-2.使用用戶別名
User_Alias USERADMIN = hadoop #定義用戶別名 USERADMIN ALL=(root) /usr/sbin/useradd #使用用戶別名 [root@lidefu ~]# su - hadoop #切換用戶 [hadoop@lidefu ~]$ sudo useradd ldfi #添加用戶 [sudo] password for hadoop: #需要hadoop的密碼 [hadoop@lidefu ~]$ tail -1 /etc/passwd #查看 ldfi:x:510:510::/home/ldfi:/bin/bash #添加成功3-3.使用命令別名
注意:下面的/usr/bin/passwd非常危險(xiǎn),以為他可以修改root的密碼
Cmnd_Alias USERCMND = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd #添加命令別名 [hadoop@lidefu ~]$ sudo userdel ldfi #使用刪除命令 [sudo] password for hadoop: #輸入密碼 [hadoop@lidefu ~]$ tail -1 /etc/passwd #查看 vdm12315:x:509:509::/home/vdm12315:/bin/bash #ldfi被刪除 [hadoop@lidefu ~]$ sudo passwd root #修改管理員密碼 Changing password for user root. #可以修改 New password:3-4.不允許執(zhí)行特定命令
Cmnd_Alias USERCMND = ...,/usr/bin/passwd, ! /bin/usr/passwd root #不允許修改root的密碼 [hadoop@lidefu ~]$ sudo passwd root #嘗試修改 [sudo] password for hadoop: Sorry, user hadoop is not allowed to execute '/usr/bin/passwd root' as root on lidefu. #不能修改3-5.普通用戶hadoop全權(quán)獲得管理員權(quán)限
?
hadoop ALL=(ALL) ALL #hadoop全權(quán)獲得管理員權(quán)限 hadoop ALL=(ALL) NOPASSWD: ALL #同上,不需要密碼3-6.普通用戶執(zhí)行sudo時(shí)不輸入密碼
USERADMIN ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd #表示所有命令的執(zhí)行都不需要輸入密碼 USERADMIN ALL=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel,PASSWD: /usr/bin/passwd #NOPASSWD后的不需要輸入密碼,PASSWD后的需要輸入密碼3-7.讓whell組的所有用戶都有管理員的權(quán)限
# %wheel ALL=(ALL) ALL #wheel的組都可sudo執(zhí)行所有root命令 # %wheel ALL=(ALL) NOPASSWD: ALL #同上,不需要輸密碼?
3-8.授權(quán)hadoop用戶能夠以管理員身份基于sudo執(zhí)行ifconfig,route,ip,netstat命令,后面兩個(gè)需要輸入密碼執(zhí)行,前兩個(gè)不要
?
USERADMIN ALL=(root) NOPASSWD: /sbin/ifconfig, /sbin/route,PASSWD: /sbin/ip, /bin/netstat #筆者這里錯(cuò)了但是不知道怎么錯(cuò)了,望指教?
轉(zhuǎn)載于:https://blog.51cto.com/lidefu/1387704
總結(jié)
以上是生活随笔為你收集整理的sudo详细介绍...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php的冷门但是很实用的函数
- 下一篇: 开源 免费 java CMS - Fre