1. 程式人生 > >linux命令--su/sudo

linux命令--su/sudo

su

功能說明

su命令用於切換當前使用者身份到其他使用者身份,變更時須輸入所要變更的使用者帳號與密碼。
su在不加任何引數,預設為切換到root使用者,但沒有轉到root使用者家目錄下,也就是說這時雖然是切換為root使用者了,但並沒有改變root登入環境;使用者預設的登入環境,可以在/etc/passwd 中查得到,包括家目錄,SHELL定義等;

常用選項

語法
su(選項)(引數)

選項
這裡寫圖片描述
引數
使用者:指定要切換身份的目標使用者。

使用例項

1.切換當前使用者到root使用者,並重新讀取使用者環境相關配置檔案。

scarlett@scarlett
-X550VXK:/root$ sudo su -l root root@scarlett-X550VXK:~# pwd /root

sudo

功能說明

sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

常用選項

語法
sudo (選項)(引數)

選項
這裡寫圖片描述

引數
指令:需要執行的指令和對應的引數。

1.配置sudo,使當前使用者可以執行root可以執行的所有命令。

配置sudo必須通過編輯/etc/sudoers檔案,而且只有超級使用者才可以修改它,還必須使用visudo編輯。之所以使用visudo有兩個原因,一是它能夠防止兩個使用者同時修改它;二是它也能進行有限的語法檢查。所以,即使只有你一個超級使用者,你也最好用visudo來檢查一下語法。

切換使用者到root,利用visudo修改sudoers

# /etc/sudoers

# 
# This file MUST be edited with the 'visudo' command as root. 
# 
# See the man page for details on how to write a sudoers file. 
# Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL scarlett ALL=(ALL) ALL # Allow members of group sudo to execute any command after they have # provided their password # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL

2.允許users使用者組中的使用者像root使用者一樣使用shutdown命令

%users  localhost=/sbin/shutdown -h now

su與sudo的區別

su方式切換是需要輸入目標使用者的密碼,而sudo只需要輸入自己的密碼,所以sudo可以保護目標使用者的密碼不外流的。當幫root管理系統的時候,su是直接將root所有權利交給使用者,而sudo可以更好分工,只要配置好/etc/sudoers,這樣sudo可以保護系統更安全,而且分工明確,有條不紊。