❶ linux shell腳本切換用戶執行一段命令
ls -l /bin/echo 看看echo命令的許可權是什麼 如果其他用戶沒有執行許可權,就切到root下加一下x許可權
chmod o+x /bin/echo
❷ SHELL 腳本如何實現切換用戶
目前用的最多的是用Except
步驟如下:
安裝Except
代碼:
#!/usr/bin/envexcept
settimeout30
setuser"USERA"
setmsg"messageinterminal"
setpasswd"yourpassword"
spawnsu$user
expect_before$msg{
send"$passwd "}
interact
注意,msg變數里寫你手動切換user時屏幕提示輸入密碼的信息, passwd就是你切換的那個用戶的密碼。
❸ 怎麼在shell腳本中實現su切換用戶
目前用的最多的是用Except
步驟如下:
安裝Except
代碼:
123456789- #!/usr/bin/envexceptsettimeout30setuser"USERA"setmsg"messageinterminal"setpasswd"yourpassword"spawnsu$userexpect_before$msg{send"$passwd "}interact
注意,msg變數里寫你手動切換user時屏幕提示輸入密碼的信息, passwd就是你切換的那個用戶的密碼。
❹ SHELL腳本切換用戶需輸入密碼
先確認一下su -c 能否解決問題,語法 su - <user name> -c <cmd> 以指定用戶執行命令
[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用戶的密碼
❺ 在shell腳本內如何切換用戶
使用命令即可
su - xxx -c "pwd"
❻ Shell腳本中切換用戶執行命令
Shell腳本中切換用戶執行命令起因:由於將新項目添加到內網、外網創建git版本庫及gitosis管理比較繁瑣,於是寫個腳本來實現,需要git用戶組的用戶才能進行git相關操作。解決方法:Shell代碼
su
-
www
-c
cd
gitosis-admin
&&
git
add
.
使用su
-u
yourusr
-c
命令,默認的目錄是在/home/yourusr/
目錄的,執行的命令需要切換目錄要注意
❼ shell腳本,我從root用戶切換到普通用戶之後,新定義了一個變數,但列印變數的值是空的,怎麼回事
在$前面加上轉義, echo ${Result1} 替換成echo ${Result1}
這個問題跟root用戶切換到普通用戶什麼的沒關系,而是因為你在用here-document的時候,並沒有用雙引號或單引號將!引用起來,或用轉義符將here-document中的元字元$轉義,這時候here-document中的文本將被擴展,即參數替換被啟用。
你運行一下這段腳本,看看Result1值的變化,就會明白了
#!/bin/bash
Result1="001"
echo "Parameter substitution is enabled"
bash<<EOF
if [ "1" = "1" ];
then
Result1="111";
echo ${Result1};
echo "wr";
fi
EOF
echo "Parameter substitution is disabled"
bash<<EOF
if [ "1" = "1" ];
then
Result1="111";
echo ${Result1};
echo "wr";
fi
EOF
bash<<'EOF'
if [ "1" = "1" ];
then
Result1="111";
echo ${Result1};
echo "wr";
fi
EOF
❽ linux中如何寫shell腳本實現改變用戶為root並且不需要手動輸入密碼
編輯/etc/sudoers,給用戶設置免密碼使用su命令的許可權,執行
sudo su -
即可免密切換到root
❾ SHELL切換用戶後怎麼繼續執行腳本,求大神
(1) 需要把${fileforwardpath}改成真正的full path。
(2) make sure這個path上每個dir的permission是755
(3) make sure 這兩個sql file(0_CreateUser.sql & 1_DBSetup.sql)的permission是755