Linux 系統(tǒng)中 root 賬號(hào)通常用于系統(tǒng)的管理和維護(hù)坊萝,對(duì)操作系統(tǒng)的所有資源具有訪問控制權(quán)限,當(dāng)一個(gè)普通用戶希望執(zhí)行一些系統(tǒng)維護(hù)相關(guān)的操作的時(shí)候许起,就需要使用 sudo 命令十偶,臨時(shí)將該用戶的權(quán)限提升到 root 權(quán)限,可以執(zhí)行一些與系統(tǒng)維護(hù)相關(guān)的命令园细。
1 su 與 sudo 的異同
- 共同點(diǎn):都可以用另一個(gè)用戶權(quán)限執(zhí)行命令惦积,一般都是為了使用 root 用戶權(quán)限,來進(jìn)行一些操作猛频。
- 不同點(diǎn):su 要知道 root 密碼才可以狮崩,sudo 只要輸入自己的密碼就可以了。
- 所以一般給予普通運(yùn)維鹿寻、開發(fā)人員的都是有 sudo 權(quán)限的普通用戶厉亏,而不會(huì)開放 root 用戶。
2 su 命令認(rèn)識(shí)
su (switch user) 命令用于變更為其他使用者的身份烈和,除 root 外,需要鍵入該使用者的密碼皿淋。
- whoami # 查看當(dāng)前是哪個(gè)用戶招刹;
- su root # 當(dāng)前是 ops 普通用戶,切換到 root 用戶窝趣,需要輸入密碼疯暑;
- su # 等于 su root ,都是切換到 root 用戶哑舒,都需要輸入密碼妇拯;
- su root # 切換到 root 用戶,pwd 可看到目錄位置未切換
- su - root # 切換到root用戶洗鸵,pwd 可看到目錄位置切換為 /root
3 sudo 命令認(rèn)識(shí)
sudo (superuser do) 命令以系統(tǒng)管理者的身份執(zhí)行指令越锈,也就是說,經(jīng)由 sudo 所執(zhí)行的指令就好像是 root 親自執(zhí)行膘滨。
(1)查看當(dāng)前用戶被授予哪些權(quán)限甘凭?
可以使用 「sudo -l 」 查看當(dāng)前用戶被授權(quán)的 sudo 權(quán)限有哪些。
(2)賦予 sudo 權(quán)限的用戶有哪些火邓?
使用命令「sudo vim /etc/sudoers」丹弱,找到這一 行:"root ALL=(ALL) ALL"德撬,該行的下面即可看到賦予 sudo 權(quán)限的用戶有哪些。
(3)如何添加用戶躲胳,使其擁有 sudo 權(quán)限蜓洪?
編輯 /etc/sudoers 文件。輸入命令 "vim /etc/sudoers" 坯苹,進(jìn)入編輯模式隆檀,找到這一 行:"root ALL=(ALL) ALL" 在它下面添加 "xxx ALL=(ALL) ALL" (這里的 xxx 是你的用戶名),然后保存退出(關(guān)于賦予權(quán)限的控制北滥,這里不做展開刚操;也可使用 visudo 命令,這里不做細(xì)講)再芋。
4 幾個(gè)常用命令辨析
- sudo -i # 假設(shè)當(dāng)前用戶為 ops 且被賦予 sudo 權(quán)限菊霜,執(zhí)行該命令后,切換到 root 用戶济赎,pwd 可看到目錄位置切換為 /root鉴逞;
- sudo su docker # 假設(shè)當(dāng)前用戶為 ops 且被賦予 sudo 權(quán)限,執(zhí)行該命令后司训,切換到 docker 用戶构捡,pwd 可看到目錄位置未切換;相比當(dāng)前用戶 ops 直接使用「su docker」壳猜,可以免去密碼輸入勾徽;
- sudo -u docker touch readme.text # -u 指定 docker 用戶,使用 sudo 權(quán)限執(zhí)行命令统扳;
5 小結(jié)
su 切換用戶需要輸入目標(biāo)用戶的 password喘帚;sudo 只需要知道自己的 password,可以避免 root 用戶的 password 泄漏咒钟。也著重介紹了 sudo 的用戶添加吹由,查看賦予的權(quán)限以及配合 su 常用的一些使用案例。
「不甩鍋的碼農(nóng)」原創(chuàng)朱嘴,轉(zhuǎn)載請(qǐng)注明來源倾鲫,未經(jīng)授權(quán)禁止商業(yè)用途!同名 GZH 請(qǐng)關(guān)注萍嬉!