su命令、sudo命令、限制root遠程登錄
● su 的用法:
su [OPTION選項參數] [用戶]
-, -l, ——login 登錄並改變到所切換的用戶環境;
-c, ——commmand=COMMAND 執行一個命令,然後退出所切換到的用戶環境;
語法:su username,臨時切換到username用戶
或者su - username,切換到username用戶,並初始化各種環境變量
如果某個用戶沒有創建家目錄,則需創建家目錄,並將相關配置文件拷貝過來。
二:sudo命令
● sudo(有時間限制)
臨時執行root命令,需要輸入用戶密碼,並且需要root預先設定。我們可以使用visudo命令來編輯配置文件/etc/sudoers
默認root能夠sudo,因為文件中有一行“root ALL=(ALL) ALL”,在該行下加入“test ALL=(ALL)ALL”,就可以讓test用戶有了sudo權利。
該配置分為三個部分
- 最左側是用戶名,指定哪個用戶擁有sudo權利。
- 左邊的ALL其實是一個用戶名,即test可以切換到哪個用戶身份,ALL表示所有用戶。小括號裏面指定主機名或者主機IP,即test用戶從哪個ip登陸來的,ALL為所有。
- 最後的ALL,用來指定test用戶可以使用的命令為哪些。多個命令用逗號隔開。
該配置文件不用重啟即可生效。
批量設置用戶:
將配置文件中“# %wheel ALL=(ALL) ALL”前面的#去掉,讓其生效。
sudo -i: 為了頻繁的執行某些只有超級用戶才能執行的權限,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時該密碼為當前賬戶的密碼。沒有時間限制。執行該命令後提示符變為“#”而不是“$”。想退回普通賬戶時可以執行“exit”或“logout” 。
其實,還有幾個類似的用法:
sudo /bin/bash : 這個命令也會切換到root的bash下,但不能完全擁有root的所有環境變量,比如PATH,可以擁有root用戶的權限。這個命令和 sudo -s 是等同的。
sudo -s : 如上
sudo su : 這個命令,也是登錄到了root,但是並沒有切換root的環境變量,比如PATH。
所以,我們再來總結一下:
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遠程登錄