相关疑难解决方法(0)

如何在脚本中运行“sudo”命令?

要手动打补丁,我必须输入这个命令

sudo ./playback_delete_data_patch.sh 09_delete_old_data_p.sql  
Run Code Online (Sandbox Code Playgroud)

09之前有一个空格:

sudo ./playback_delete_data_patch.sh [space] 09_delete_old_data_p.sql
Run Code Online (Sandbox Code Playgroud)

如何在脚本中运行它?

还有其他几个命令,但这个命令有问题。

root sudo scripts

126
推荐指数
5
解决办法
48万
查看次数

如何在以 root 权限启动的脚本中以非 root 用户身份运行命令?

问题
在 bash 脚本中,我正在使用命令...

sudo -u node bash
Run Code Online (Sandbox Code Playgroud)

.. 从 root 切换到非 sudo 用户,这是失败的。

上下文
我写一个provision.sh为流浪脚本,建立运行Ubuntu 16.04.3的所有包的服务器需要与流星1.6提供的应用程序。

一个必需的步骤是以nvm非 root 用户身份安装。nvm安装完成后,您需要注销并重新登录才能激活nvm。因此,我创建了一个名为 的非 sudo 用户meteor,并希望在下载和安装nvm.

随后,我想切换回 beroot并立即登录为meteor,以便开始使用nvm安装 Node.js。

你会在下面找到一个被大量评论的脚本。每次我调用 Vagrant 时都会运行这个脚本vagrant reload --provision

我应该使用什么命令而不是sudo -u node bash


echo "# whoami" && whoami && echo "^^^^ root expected"
echo "As root, create non-sudo user meteor:"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) …
Run Code Online (Sandbox Code Playgroud)

bash sudo scripts

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

使用sudo时如何找到哪个用户执行脚本?

我想要的是找到运行 bash 脚本的用户的名称,当这个脚本由sudo. 据我所知,唯一可能的方法是以这种方式解析who -m( who am i)的输出:

user@UbuntuServer:~$ cat who.sh 
#!/bin/sh
whoami
echo $USER
who -m | awk '{print $1}'

user@UbuntuServer:~$ sudo ./who.sh 
root
root
user
Run Code Online (Sandbox Code Playgroud)

问题是:在 Ubuntu Desktop 16.04.4 who -m(resp. who am i) 中什么都不做。为什么?

在此处输入图片说明

另一个问题是为什么 Ubuntu 的在线手册页与在 Ubuntu 桌面或服务器上执行who不同man who

但根据我的目标,这些问题并不是那么重要。正如标题中提到的,主要问题是:我如何找到哪个用户在使用时执行脚本sudo


实际上,原始标题 -如何在 Ubuntu 桌面上找到“我是谁”?- 是相同但错误地提出的问题。

command-line bash who 16.04

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

标签 统计

bash ×2

scripts ×2

sudo ×2

16.04 ×1

command-line ×1

root ×1

who ×1