1、sudo權限說明
sudo權限是root把本來只能超級用戶執行的命令賦予普通用戶執行。
sudo的操作對象是系統命令;
使用visudo命令可以進行sudo權限操作。如下圖所示:
visudo命令,實際修改的是 /etc/sudoers文件(命名非常人性化,sudo命令執行者們~~~),和使用vim /etc/sudoers命令作用一模一樣。
執行命令,查看/etc/sudoers文件:
vim /etc/sudoers
1.1、使用sudo給用戶賦予權限
配置格式:root ALL=(ALL) ALL
- root:用戶名;
- 第一個ALL:被管理主機的地址;
- 第二個ALL:表示可使用的身份;
- 第三個ALL:表示授權命令(絕對路徑);
注意:被管理主機的地址,指的并非訪問來源IP,而是訪問目標IP!!!
說明:假設用戶A的IP是192.168.1.123,要訪問的Linux服務器IP地址是192.168.1.127。此時Linux服務器的超級用戶在為用戶A賦予sudo權限的時候,第一個ALL的IP地址要填寫本服務器IP即192.168.1.127,而非用戶A的電腦IP。
1.2、使用sudo給用戶組賦予權限
配置格式:%wheel ALL=(ALL) ALL;
- wheel:用戶組名;
- 第一個ALL:被管理主機的地址;
- 第二個ALL:表示可使用的身份;
- 第三個ALL:表示授權命令(絕對路徑);
注意:%不能被省略!!!
2、查看可用的sudo命令
命令:sudo -l;
3、普通用戶執行sudo命令
命令格式:sudo [授權命令的絕對路徑];
4、sudo權限示例
示例場景:超級用戶root每天忙得不行,所以把修改密碼的權限賦予了zhoujielun,讓其代勞。
使用vim命令打開/etc/sudoers文件,在其中添加內容 zhoujielun ALL=/usr/bin/passwd,如下圖所示:
然后強制保存退出。
執行命令,切換用戶到zhoujielun:
su - zhoujielun
查看用戶zhoujielun可執行的sudo命令:
sudo -l
如下圖所示:
使用sudo命令,會要求輸入用戶的密碼(一段時間內無需輸入密碼即可查詢)。
輸入密碼驗證成功后,會顯示用戶可以使用的sudo命令。
此時使用命令為用戶wangsulong更改密碼。注意必須要使用 sudo+命令絕對路徑的方式,如果不加sudo,會提示只有root可以修改密碼。
不加sudo直接更改密碼,執行命令:
/usr/bin/passwd wangsulong
結果報錯,如下圖所示:
必須要使用sudo命令,才表示使用的是root用戶賦予的更改密碼權限,執行命令:
sudo /usr/bin/passwd wangsulong
如下圖所示,能夠為用戶wangsulong修改密碼了。