在脚本中切换用户
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就是你切换的那个用户的密码。