无法 echo >> sudoers 文件“权限被拒绝:/etc/sudoers”

无法 echo >> sudoers 文件“权限被拒绝:/etc/sudoers”

我想编写一个脚本来向我的 VPS 或 VMS 添加一些工具,我写了类似的东西

# Edit sudoers
echo -e "${GREEN}Configure sudoers...${NOCOLOR}"
echo
echo '# Allow user to use sudo without passwd' >> /etc/sudoers
echo '$USER ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

这个脚本作为 Sudo 运行,我测试 echo $USER in Sudo 是用户名,而不是 root 我的意思是我是个新人,所以我不知道这一点并写了这个,但是当我测试它时,我收到了错误,permission error我不知道不知道该怎么办我做了一些搜索但找不到任何东西

答案1

我有三件事要指出。第一,您确实应该使用visudo它来编辑/etc/sudoers文件,即使您设置了$EDITOR一个与该内容相呼应的脚本。另一个是让任何用户在没有密码的情况下运行任何命令并不是最佳选择。最后,$USER将等于 root,这样就毫无意义了。

如果您确实想这样做,请制作一个单独的脚本,其中包含以下内容:

echo '# Allow user to use sudo without a password' >> $1
echo "$PERSON ALL=\(ALL\) NOPASSWD:ALL" >> $1

其次,创建另一个运行主脚本的脚本,如下所示:

sudo "env PERSON=$USER /your/script/here"

这应该会稍微整理一下,因为您可以确保整个脚本以 root 身份运行,并visudo保留备份,以防您搞砸了 sudoers 文件。

答案2

而不是使用:

sudo echo "# This is a comment" >> someFile.txt

您可以使用:

echo "# This is a comment" | sudo tee -a someFile.txt

笔记:不要忘记命令-a的标志tee,否则你会结束覆盖整个文件与新的评论行。

阅读更多相关内容tee

相关内容