gpt4 book ai didi

linux - 多行写入失败(权限被拒绝)

转载 作者:太空狗 更新时间:2023-10-29 11:32:40 29 4
gpt4 key购买 nike

我想将一个多行字符串写入一个只有 root 权限才能访问的文件。

这是我目前所拥有的:

sudo cat > /etc/init/myservice.conf <<EOL
start on runlevel [2345]

stop on runlevel [06]

respawn

script

cd ~/somefolder

. venv/bin/activate

exec python manage.py runserver 0.0.0.0:8080

end script
EOL

当执行此命令时,我得到的只是“权限被拒绝”。手动创建文件是可行的。

最佳答案

输出重定向是在 sudo 运行之前处理的,因此您仍在尝试以您自己的身份打开文件,而不是以 root 身份打开文件。一种选择是使用 tee 而不是 cat,因为 tee 而不是当前的 shell 将打开文件进行写入。

sudo tee /etc/init/myservice.conf > /dev/null <<EOF
start on runlevel [2345]

stop on runlevel [06]

respawn

script

cd ~/somefolder

. venv/bin/activate

exec python manage.py runserver 0.0.0.0:8080

end script
EOF

虽然使用的分隔符并不重要,但使用指示文件 结尾的东西比 结尾更有意义:) tee 实际上将其输入写入命名文件和标准输出,但您不需要查看您正在编写的内容,因此重定向到 /dev/null

关于linux - 多行写入失败(权限被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23141098/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com