1. 程式人生 > >su命令、sudo命令、限制root遠程登錄

su命令、sudo命令、限制root遠程登錄

linux

一:su命令

● su 的用法:
  su [OPTION選項參數] [用戶]
  -, -l, ——login 登錄並改變到所切換的用戶環境;
  -c, ——commmand=COMMAND 執行一個命令,然後退出所切換到的用戶環境;
語法:su username,臨時切換到username用戶
或者su - username,切換到username用戶,並初始化各種環境變量
如果某個用戶沒有創建家目錄,則需創建家目錄,並將相關配置文件拷貝過來。
技術分享圖片

二:sudo命令

● sudo(有時間限制)
臨時執行root命令,需要輸入用戶密碼,並且需要root預先設定。我們可以使用visudo命令來編輯配置文件/etc/sudoers

安裝visudo命令:yum install -y sudo
默認root能夠sudo,因為文件中有一行“root ALL=(ALL) ALL”,在該行下加入“test ALL=(ALL)ALL”,就可以讓test用戶有了sudo權利。
該配置分為三個部分

  1. 最左側是用戶名,指定哪個用戶擁有sudo權利。
  2. 左邊的ALL其實是一個用戶名,即test可以切換到哪個用戶身份,ALL表示所有用戶。小括號裏面指定主機名或者主機IP,即test用戶從哪個ip登陸來的,ALL為所有。
  3. 最後的ALL,用來指定test用戶可以使用的命令為哪些。多個命令用逗號隔開。
    該配置文件不用重啟即可生效。

批量設置用戶:
將配置文件中“# %wheel ALL=(ALL) ALL”前面的#去掉,讓其生效。

表示wheel組中的所有用戶都有了sudo權利,可以把需要的用戶添加進來即可。

sudo -i: 為了頻繁的執行某些只有超級用戶才能執行的權限,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時該密碼為當前賬戶的密碼。沒有時間限制。執行該命令後提示符變為“#”而不是“$”。想退回普通賬戶時可以執行“exit”或“logout” 。
其實,還有幾個類似的用法:
sudo /bin/bash : 這個命令也會切換到root的bash下,但不能完全擁有root的所有環境變量,比如PATH,可以擁有root用戶的權限。這個命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su : 這個命令,也是登錄到了root,但是並沒有切換root的環境變量,比如PATH。

sudo su - : 這個命令,純粹的切換到root環境下,可以這樣理解,先是切換到了root身份,然後又以root身份執行了 su - ,這個時候跟使用root登錄沒有什麽區別。這個結果貌似跟sudo -i 的效果是一樣的,但是也有不同,sudo 只是臨時擁有了root的權限,而su則是使用root賬號登錄了linux系統。

所以,我們再來總結一下:
sudo su - 約等於 sudo -i
sudo -s 完全等於 sudo /bin/bash 約等於 sudo su
sudo 終究被一個"臨時權限的帽子"扣住,不能等價於純粹的登錄到系統裏。

三:限制root遠程登陸

vi /etc/ssh/sshd_config
按Root關鍵字搜索
將PermitRootLogin yes 改為no
這樣就禁止root直接登陸。
然後再用普通用戶登陸服務器,再su或者sudo到root用戶下。

su命令、sudo命令、限制root遠程登錄