相关疑难解决方法(0)

如何在Bash中作为另一个用户执行一组命令?

这里已经存在一些关于将命令作为另一个用户运行的问题.但是,问题和答案集中在单个命令而不是一组长命令上.

例如,请考虑以下脚本:

#!/bin/bash
set -e

root_command -p param1  # run as root

# these commands must be run as another user
command1 -p 'parameter with "quotes" inline'
command2 -p 'parameter with "quotes" inline'
command3 -p 'parameter with "quotes" inline'
Run Code Online (Sandbox Code Playgroud)

这里有几点需要注意:

  • 最后三个命令必须作为另一个用户使用su或运行sudo.在示例中有三个命令,但假设还有更多...

  • 命令本身使用单引号和双引号.

上面的第二点阻止使用以下语法:

su somebody -c "command"
Run Code Online (Sandbox Code Playgroud)

...因为命令本身包含引号.

什么是"分组"命令并在另一个用户帐户下运行它们的正确方法?

bash su

65
推荐指数
2
解决办法
9万
查看次数

什么是cp:在Unix中无法统计错误,我在尝试将东西从一个文件夹复制到另一个文件夹时出现此错误

嗨,我想知道为什么我收到此错误.我有这个名为mock的目录,里面有另外3个目录.我试图使用下面的代码将模拟目录中的所有项目复制到projweek目录中.

cp  /mock/* ~/projweek
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误

cp: cannot stat ‘mock/*’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

关于为什么那样的任何想法?

unix bash command-line mv cp

16
推荐指数
5
解决办法
4万
查看次数

为什么我不能在shell脚本中使用'sudo su'?如何自动使用sudo运行shell脚本

我无法弄清楚这有什么问题.当我在终端中运行并输入密码时,没有任何反应,但如果我在终端中单独运行每个命令,它就可以工作.谢谢!

#!/bin/bash    

sudo su;
mkdir /opt/D3GO/;
cp `pwd`/D3GO /opt/D3GO/;
cp `pwd`/D3GO.png /opt/D3GO/;
cp `pwd`/D3GO.desktop /usr/share/applications/;
chmod +x /opt/D3GO/D3GO
Run Code Online (Sandbox Code Playgroud)

linux bash shell sudo

12
推荐指数
4
解决办法
2万
查看次数

SSH到服务器,Sudo su - 然后在bash中运行命令

我有以下内容

#!/bin/bash

USER='scott'
PASS='tiger'

ssh -t $USER@server006.web.com "sudo su - http" 
Run Code Online (Sandbox Code Playgroud)

这是Works,但我试图让它在之后运行一个脚本,如果我这样做,使用-c或<

该脚本像这样做一个grep:

grep -i "Exception:" /opt/local/server/logs/exceptions.log | grep -e "|*-*-*:*:*,*|" | tail -1 | awk -F'|' '{print $2}' >> log.log
Run Code Online (Sandbox Code Playgroud)

这也适用于它自己,但我需要http才能做到这一点.

我也不能把SCP的输出输回到server001,所以我被困在这里,

任何想法都会被接受赞赏.本

ssh bash shell aix sudo

11
推荐指数
2
解决办法
2万
查看次数

执行 chroot 并在 chroot 中执行命令的 Shell 脚本

如果在shell脚本中我写

chroot /home/mayank/chroot/codebase
cd SBC
Run Code Online (Sandbox Code Playgroud)

当我运行这个 shell 脚本时,它确实进入chroot但不执行命令cd SBC,当我退出时chroot它会执行cd SBC

如何通过 shell 脚本实现某些功能chroot并执行命令chroot

bash shell chroot

9
推荐指数
1
解决办法
1万
查看次数

在 Bash 中检查 sudo(带有 if 语句的脚本)

我使用 bash 的时间不超过 6 个小时,现在我正在尝试创建一个菜单,让您可以做一些“有趣”的事情:D。

我的问题是if 语句检查您是否处于 sudo 模式。我想有3个条件:

  1. 如果我以sudo模式执行脚本,我将能够输入要复制的文件夹的路径。
  2. 如果我在没有 sudo 模式的情况下执行脚本,它会要求我插入密码,如果我这样做正确,脚本将向我显示echoread op,允许我写入要复制的文件夹的路径。
  3. 与第 2 点相同,但如果我的身份验证失败,应用程序将自动关闭。

创建副本

2)
    if [ "$EUID" -ne 1 ]
      then 
            echo "Checking if you are in sudo mode..."
            echo "Error, please insert your password:"
            sudo ls /root
            if [ "$EUID" -ne 1 ]
                then
                    echo -e "\nCould not authenticate the user."
                    echo -e "For security reasons the application will be closed."
                    exit    
            else
                echo "==============================================================="
                echo -e "ALL …
Run Code Online (Sandbox Code Playgroud)

linux bash sudo if-statement su

8
推荐指数
1
解决办法
5815
查看次数

源环境变量并在远程计算机上运行本地脚本之前执行bash

我正在尝试使用ssh连接执行远程本地脚本.我已经阅读了有关它语法的文档.但我的问题是,在运行脚本之前,我需要执行bash和源环境变量.

这看起来适合我,但它没有源命令:

ssh [user]@[server] 'bash -s' < [local_script]
Run Code Online (Sandbox Code Playgroud)

我用EOF尝试过这样的东西,但它对我也不起作用:

#!/bin/bash
/usr/bin/ssh  "$user@$$host" <<EOF
bash -s
source /dir/to/profile/.profile
source /dir/to/env/set/env.sh
/path/to/script/script.sh stop
EOF
Run Code Online (Sandbox Code Playgroud)

您对这种远程命令的实现有什么想法吗?我必须在环境设置之前获取配置文件,否则它会给出异常.但主要问题是关于来源.

也许这是一个简单的问题,但我没有任何想法.提前感谢您的所有答案.

ssh bash shell

6
推荐指数
2
解决办法
1万
查看次数

bash脚本启动新shell并继续运行命令

我是编写bash脚本的完全菜鸟.我正在尝试执行以下操作:

#!/bin/bash

mkdir New_Project
cd New_Project
pipenv install ipykernel
pipenv shell
python -m ipykernel install --user --name==new-virtual-env
jupyter notebook
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在执行之后pipenv shell,它启动新shell,然后不执行最后两个命令.当我退出新shell时,它会尝试执行剩余的行.有没有办法让脚本从头到尾运行所有这些命令?

bash shell jupyter-notebook pipenv

6
推荐指数
1
解决办法
2194
查看次数

sudo命令后如何执行多个命令

我需要运行批处理以登录到服务器,进入sudo su - username并运行特定命令。

我尝试下面的代码:

putty username@servername -pw password -m myshell.sh
Run Code Online (Sandbox Code Playgroud)

myshell.sh:

#!/bin/sh
sudo su - username
cd to particular folder
then tail a file
Run Code Online (Sandbox Code Playgroud)

我进入sudo,但此后脚本卡住,直到我注销。

unix linux shell

3
推荐指数
1
解决办法
6450
查看次数

ssh 并通过heredoc以另一个用户身份执行多个命令

我有一个脚本需要通过 ssh 执行作为另一种用途,有没有办法像这样传递整个脚本:

ssh -t user@server.com sudo -u user2 sh -c << EOF
 cd /home
 ls
 dir=$(pwd)
 echo "$dir"
 echo "hello"
 ....
EOF
Run Code Online (Sandbox Code Playgroud)

返回:sh: -c: 选项需要参数

单独使用 sshsudo不是一种选择,并且不可能将 .sh 文件直接放在计算机上。

linux ssh bash

2
推荐指数
1
解决办法
1575
查看次数

标签 统计

bash ×9

shell ×6

linux ×4

ssh ×3

sudo ×3

su ×2

unix ×2

aix ×1

chroot ×1

command-line ×1

cp ×1

if-statement ×1

jupyter-notebook ×1

mv ×1

pipenv ×1