1. SHELL腳本切換用戶需輸入密碼
先確認一下su
-c
能否解決問題,語法
su
-
-c
以指定用戶執行命令
[root@fw98
/]#
whoami
root
[root@fw98
/]#
su
-
mao
-c
whoami
mao
不能滿足需求的話,可以用expect,我的環境上沒有expect,不能幫你試了,大致是下面的感覺,詳細你網路查一下
#!/usr/bin/expect
su
-
mao
#你要執行的命令
expect
"Password:"
#執行後終端回顯的交互信息
send
"admin_123\r"
#當終端出現上面的交互詳細後,模擬鍵盤輸入的內容
#此例,執行su
-
mao
切換mao用戶,終端提示輸入密碼後,模擬鍵盤輸入mao用戶的密碼
2. linux下切換用戶命令
su是在用戶間切換,可以是從普通用戶切換到root用戶,也可以是從root用戶切換到普通用戶。如果當前是root用戶,那麼切換成普通用戶test用以下命令。
su-test如果要切換回root用戶,那麼用以下命令。
su或su-用戶名root可以省略不寫。
切換回root用戶時要輸入root密碼。一般直接輸入exit命令來切換回root用戶,這樣就不用輸入密碼。
3. linux 用戶退出怎麼命令
用戶退出登錄的方法有以下三種:
1、在shell提示符下輸入 exit 按回車確認
2、在shell提示符下輸入 logout 按回車確認
3、按快捷鍵crtl+d (此方法同logout效果)
Linux常用命令之——退出、切換用戶exit、su
exit命令同於退出shell,並返回給定值,在shell腳本中可以終止當前腳本執行,執行exit可使shell以指定的狀態值退出。
若不設置狀態值參數,則shell以預設值退出,狀態值0代表執行成功,其他值代表執行失敗。
su命令用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。
選項:
-c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份;
-f或——fast:適用於csh與tsch,使shell不用去讀取啟動文件;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
-m,-p或--preserve-environment:變更身份時,不要變更環境變數;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本信息。
4. SHELL 腳本如何實現切換用戶
目前用的最多的是用Except
步驟如下:
安裝Except
代碼:
#!/usr/bin/envexcept
settimeout30
setuser"USERA"
setmsg"messageinterminal"
setpasswd"yourpassword"
spawnsu$user
expect_before$msg{
send"$passwd "}
interact
注意,msg變數里寫你手動切換user時屏幕提示輸入密碼的信息, passwd就是你切換的那個用戶的密碼。
5. shell 如何在切換用戶後執行後面的語句
這個得用 sudo 命令。他在切換用戶後,執行完指定命令後自動切回原用戶。
echo start
sudo -u user ./some.sh
#執行多個命令把命令寫進腳本里。
echo end
注意採納。