在腳本中切換用戶
1. ubuntu腳本中實現切換到root用戶執行命令 執行完在切換回來普通用戶
想從root用戶切回user用戶只需執行命令:su user (user是你自己安裝時候的用戶名),或是直接輸入exit,也可Ctrl+D組合鍵推出
2. 有沒有辦法在Shell腳本中切換到root用戶
如果adsl-start不是腳本,則
chmod 4755 /usr/sbin/adsl-start
如果是腳本就找到對應的程序再 4755
或是用 expect 來搞也可以。看 expect 的例子。
3. SHELL 腳本如何實現切換用戶
目前用的最多的是用Except
步驟如下:
安裝Except
代碼:
#!/usr/bin/envexcept
settimeout30
setuser"USERA"
setmsg"messageinterminal"
setpasswd"yourpassword"
spawnsu$user
expect_before$msg{
send"$passwd "}
interact
注意,msg變數里寫你手動切換user時屏幕提示輸入密碼的信息, passwd就是你切換的那個用戶的密碼。
4. shell腳本切換用戶並執行命令
#!/bin/bash
su - test <<EOF
pwd;
exit;
EOF
5. linux shell腳本切換用戶執行一段命令
ls -l /bin/echo 看看echo命令的許可權是什麼 如果其他用戶沒有執行許可權,就切到root下加一下x許可權
chmod o+x /bin/echo
6. linux 中如何執行腳本
首先腳本需要有執行許可權
chmod u+x file.sh
執行腳本有三種方法:
1. ./file.sh
特點:開啟bash子進程來執行,也就是開啟額外的進程來進行,不影響原進程的變數、配置等
2. bash file.sh
特點:和./file.sh相同
3. source file.sh 或者 . file.sh
特點:在原bash進程中執行腳本。
第三種方法主要用於在腳本中切換用戶su、切換目錄cd等命令。
source 和 . 命令是相同的。
你可以搜索 source
補充,如何查看腳本運行是否開啟了bash子進程
1.
vim
file.sh
2.
寫入
#!/bin/bash
#echo
$$命令會輸出bash進程id
echo
$$
3.
保存並賦予可執行許可權chmod
u+x
file.sh
4.
在你的shell中輸入,echo
$$
屏幕輸出4176
5.
./file.sh
屏幕輸出3600
6.
bash
file.sh
屏幕輸出3984
7.
source
file.sh
屏幕輸出4176
和
你直接在shell中輸出的一樣,說明是在同一個bash進程
7. unix腳本中如何切換用戶
這個得用 sudo 命令。他在切換用戶後,執行完指定命令後自動切回原用戶。
echo start
sudo -u user ./some.sh
#執行多個命令把命令寫進腳本里。
echo end
8. Shell腳本中切換用戶執行命令
Shell腳本中切換用戶執行命令起因:由於將新項目添加到內網、外網創建git版本庫及gitosis管理比較繁瑣,於是寫個腳本來實現,需要git用戶組的用戶才能進行git相關操作。解決方法:Shell代碼
su
-
www
-c
cd
gitosis-admin
&&
git
add
.
使用su
-u
yourusr
-c
命令,默認的目錄是在/home/yourusr/
目錄的,執行的命令需要切換目錄要注意
9. linux開機啟動腳本中怎樣切換多個用戶啊
啟動oracle服務:
su - oracle -c "dbstart && lsnrctl start"
啟動weblogic應該也是相同道理:
su - weblogic -c "service weblogic start"
10. 怎麼在shell腳本中實現su切換用戶
目前用的最多的是用Except
步驟如下:
安裝Except
代碼:
123456789- #!/usr/bin/envexceptsettimeout30setuser"USERA"setmsg"messageinterminal"setpasswd"yourpassword"spawnsu$userexpect_before$msg{send"$passwd "}interact
注意,msg變數里寫你手動切換user時屏幕提示輸入密碼的信息, passwd就是你切換的那個用戶的密碼。