遵循本教程
并尝试使用命令
echo 'prefix=/usr/local' > node/etc/npmrc
Run Code Online (Sandbox Code Playgroud)
但是,即使使用sudo,我也会收到权限被拒绝的错误。
有任何想法吗?
我希望将文本从标准输入写入 root 拥有的文件。
我通过 SSH 连接以编程方式执行此操作 - 本质上是通过脚本 - 因此使用文本编辑器是不可能的。没有终端。该过程完全自动化。
鉴于可以通过 获取 [a] 根标高sudo,并且可以使用cat重定向来写入 [b] 文件,我假设以下内容可行:
ssh user@host sudo cat >the-file
Run Code Online (Sandbox Code Playgroud)
不幸的是,重定向应用于sudo,而不是cat。在此示例中如何应用重定向cat?
UBuntu 16.04 Bash 4.4
在4-bash-update.sh第158行:
cd "$drive00" && sudo -H -u myuser bash -c "timeout 2s ./binaryfile -gentoken" > "${save_log_dir}"/update-"${now}".log;
^-- SC2024: sudo doesn't affect redirects. Use ..| sudo tee file
Run Code Online (Sandbox Code Playgroud)
我尝试了几次,每次我的文件被吃掉.
我试图在Ubuntu中安装docker,并按照说明我遇到了一个sed我不理解的非常奇怪的命令(这似乎用于为docker设置bash自动完成):
sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
Run Code Online (Sandbox Code Playgroud)
这个命令在做什么?该-i命令意味着就地编辑,但$acomplete -F _docker docker意思是什么?该$是匹配的最后一行,但它在干什么?我甚至不认识那里的任何sed命令!例如,替换命令看起来像:
$s/in/out/
Run Code Online (Sandbox Code Playgroud)
有人可以为我解释这个表达吗?
我想从脚本中添加一个crontab条目作为普通用户,所以我sudo用来获取root权限,但无论我尝试什么都会失败.
$ sudo { crontab -u root -l; echo ' 15 9 * * * root /opt/script.sh'; } | crontab -u root
bash: syntax error near unexpected token `}'
$ sudo echo ' 15 9 * * * root /opt/script.sh' >> /etc/crontab
bash: /etc/crontab: Permission denied
$ sudo echo ok
ok
Run Code Online (Sandbox Code Playgroud)