su命令、sudo命令以及限制root用戶遠程登錄
su:切換用戶的命令。root用戶切換到任何用戶都不需要密碼,普通用戶切換到其他用戶或者root用戶都需要密碼。
whoami:查看當前是哪個用戶。
id:查看當前是哪個用戶並列出詳細信息。
su 和 su - 的區別:su - 會徹底切換到某個用戶,包括家目錄、環境變量等等。一般切換用戶就使用su - 用戶名。直接su - 是切換到root用戶。
su - -c "命令" 用戶名:以某個用戶的身份去執行某個命令。(不切換到用戶)
sudo命令
sudo:使某個指定的用戶可以使用某些root的命令。這樣就可以不用告訴他root的密碼也能執行一些權限較高的命令,更安全。
visudo:打開sudo的配置文件。相當於vi /etc/sudoers。不建議後一種方法,最好使用visudo這個命令,因為可以檢測到語法錯誤,不容易出錯。
找到 root ALL=(ALL) ALL 這一行,在這一行的下方添加條目。格式為:
用戶 ALL=(ALL) 命令的絕對路徑:讓前面的這個用戶可以執行後面的命令。(命令之間用逗號隔開)
使用這些命令前一定要加sudo,而且第一次使用時會提示輸入用戶的密碼,之後就不需要了。
如果不想提示輸入密碼,則可以在配置文件裏做如下修改:
在vi編輯器裏,進入底行模式,輸入set nu,即可顯示行號。輸入set nonu,即可取消顯示行號。
visudo裏面可以設置別名,可以設置用戶別名和命令別名,方便批量管理。具體格式如下:
除了別名可以批量管理,也可以通過組來管理,把需要sudo的用戶都放到一個組裏,然後再在visudo裏面設置,如下:
限制root用戶遠程登陸
vi /etc/ssh/sshd_config,打開ssh的配置文件。找到 #PermitRootLogin yes 這一行,去掉前面的#號,把yes改為no,保存退出。重啟sshd服務 systemctl restart sshd。重新打開一個終端,連接服務器,發現無法登陸root用戶,但普通用戶可以正常登陸。登陸普通用戶後可以正常切換到root用戶。
若想實現某個普通用戶切換到root用戶不需要密碼,則把su命令添加到sudo裏面即可。
su命令、sudo命令以及限制root用戶遠程登錄