我写了一个应该创建目录的脚本。它在没有 sudo 的情况下工作,但没有它。脚本需要用 sudo 调用

I wrote a script that's supposed to make a directory. It works without sudo, but doesn't with it. THe script is required to be called with sudo

我应该制作一个脚本,将一些文件从 /etc 备份到一个目录中 我必须创建名为 backup-confs。问题是我必须 运行 使用 sudo 的脚本,但是当我这样做时它不会创建目录。没有它也能正常工作,但我不明白为什么它不能与 sudo 一起工作。

#!/bin/bash
mkdir /home/student/tema3-scripts-output/backup-confs 2>> err.txt

这个版本也不行

#!/bin/bash
cd 2>> err.txt..
cd tema3-scripts-output 2>> err.txt
mkdir backup-confs 2>> err.txt
cd .. 2>> err.txt
cd tema3-scripts 2>> err.txt

我看到您正在使用相对目录引用(例如 cd tema... 而不是 cd /tmp/tema...)。当 sudo 下的 运行 时,您正在更改用户,这可能意味着您正在更改目录,因此我建议您始终使用绝对目录引用。

不要把所有的事情都做一遍,把它分开。 也许在创建目录时遇到问题,同时重定向来自“.../backup-confs

的输出
  1. 尝试使用绝对引用sudo mkdir /home/some-new-dir
  2. 授予文件权限 chmod 777 /home/some-new-dir

和个人喜好,使用“复制”:cp /home/student/some-config /home/some-new-dir/some-config