3周第3次課 su命令 sudo命令 限制root遠程登錄
一、 su命令
適合情景:多用戶之間的切換,登入到相應用戶環境,執行命令。類似於 windows 的切換用戶
擴展命令:id 、 whoami 查看當前用戶名
語法 : su [-] [操作命令] username
快捷鍵:ctrl-d 退出當前用戶
常用操作示範:
1. 加“-”的意思是,切換用戶的同時切換環境變量,不跟 工作目錄停留在當前,切換不徹底
#su - aming 切換到aming用戶,此時提示符由"#”變成”$”
2.在普通用戶下輸入 su - 則直接切換到root用戶
#su -
3.加”-c”以指定用戶的身份執行相關命令操作
#su - -c “mkdir /tmp/121212” aming 以aming用戶身份創建一個121212目錄
4.特殊情況
當使用 su切換到一個沒有家目錄的用戶,如 user5
[root@centos701 ~]# su - user5
su: 警告:無法更改到 /home/user5 目錄: 沒有那個文件或目錄
-bash-4.2$
原因:在家目錄下沒有系統變量配置文件
解決辦法:建立家目錄,並拷貝系統配置文件到家目錄下
步驟:
1.查看 user5的屬組信息
[root@centos701 ~]# id user5
uid=1007(user5) gid=1007(user5) 組=1007(user5)
2.創建 user5的家目錄,並修改目錄的屬主屬組,並驗證
[root@centos701 ~]# mkdir /home/user5 ##創建
[root@centos701 ~]# chown user5:user5 !$ ##修改屬主屬組
chown user5:user5 /home/user5
[root@centos701 ~]# ls -ld /home/user5
drwxr-xr-x. 2 user5 user5 6 11月 1 23:02 /home/user5 ##驗證權限
3.拷貝/etc/skel 系統模板目錄下的.bash開頭的3個文件到 user5家目錄下
[root@centos701 ~]# cp /etc/skel/.bash* /home/user5/
[root@centos701 ~]# su - user5
上一次登錄:三 11月 1 22:54:13 CST 2017pts/0 上
[user5@centos701 ~]$
二、sudo命令
適合情景:讓普通用戶臨時以root身份執行特殊命令,增強安全性
sudo -列出當前用戶可運行的命令
[root@centos701 ~]# visudo ##修改sudo配置文件,切勿使用 vi 編輯/etc/sudoers.tmp
## 可在此配置文件中對主機、命令、用戶等對象進行組別名管理,方便策略引用
註意:定義命令首字母要大寫,定義別名則全部要大寫,具體可看文檔中的註釋
如對文件查看類命令進行別名管理,在授權可用命令時輸入”FILES”,即可代表該定義的命令
Cmnd_Alias FILES=/usr/bin/ls,/usr/bin/mv,/usr/bin/cat,/usr/bin/tail
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
誰 以誰的身份 可用哪些命令
aming ALL=(ALL) NOPASSWD: /usr/bin/ls,/usr/bin/mv,/usr/bin/cat
user5 ALL=(ALL) FILES
###將欲授權用戶及其可以執行的命令添加進去,NOPASSWD的意思是執行此命令時不需要驗證用戶密碼。
三、限制root遠程登錄
場景:為了安全需要禁止 root 用戶遠程登錄。
方法:通過修改 /etc/ssh/sshd_config 來禁止 root 用戶遠程登錄。
1.[root@centos701 ~]# vi /etc/ssh/sshd_config
2.PermitRootLogin no ##搜索RootLogin,將此選項的 yes 改成 no
3.保存退出
這樣 root 用戶就無法使用 ssh 遠程登錄服務器了
如果確實需要通過遠程使用 root 用戶,可以利用對 visudo 對普通用戶設置運行su權限 ,
來完成普通用戶遠程登錄後使用 "sudo su -"切換到 root 用戶。
1.首先定義普通用戶別名
[root@centos701 ~]# visudo (用”/“搜索 User 定位到相關案例位置 )
# User_Alias ADMINS = jsmith, mikem
User_Alias AMINGS=aming,user5,user6 (按照案例設置用戶別名)
2.給用戶授權使用 su命令
## Allowroot to run any commands anywhere (用”/“搜索 anywhere 定位到相關案例位置 )
AMINGS ALL=(ALL) /usr/bin/su (按照案例設置別名用戶使用的命令)
3.保存退出
此後,就可以遠程使用授權的普通用戶登錄,然後執行sudo su - ,輸入 root 密碼完成切換
3周第3次課 su命令 sudo命令 限制root遠程登錄