修改文件内容
我正在使用 bash 脚本在远程计算机上安装 lighttpd 服务器。安装后,我需要配置服务器的端口。系统说我没有权限修改文件 /etc/lighttpd/lighttpd.conf,即使我
sudo echo "server.bind=2000" >> /etc/lighttpd/lighttpd.conf
这样做了,我该如何修改?
I'm installing a lighttpd server on a remote machine using a bash script. After installation, I need to configure the port for the server. The system says I don't have permission to modify the file /etc/lighttpd/lighttpd.conf even though I do
sudo echo "server.bind=2000" >> /etc/lighttpd/lighttpd.conf
How shall I modify this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您正在做的是以 root 身份运行
echo
,然后尝试以普通用户身份将其输出附加到配置文件。你想要的是 sudo sh -c 'echo "server.bind=2000" >>> /etc/lighttpd/lighttpd.conf'
What you're doing is running
echo
as root, then trying to append its output to the config file as the normal user.What you want is
sudo sh -c 'echo "server.bind=2000" >> /etc/lighttpd/lighttpd.conf'
尝试使用 chmod 更改文件权限
Try to change the file permission using
chmod
如果您无权更改文件
/etc/lighttpd/lighttpd.conf
,请检查lighthttpd
的手册页。如果您可以使用不同的配置文件启动它,则在某处创建一个配置文件并用它启动lighthttpd
。If you don't have the right to change the file
/etc/lighttpd/lighttpd.conf
check the man page oflighthttpd
. If you can start it with a different config file, then create a config file somewhere and startlighthttpd
with it.问题是>>右边的位是不在 sudo 下运行。使用 sudo -i 以超级用户身份启动 root shell 并运行命令,或者仅使用前面提到的编辑器。
The problem is that the bit on the right of >> is not run under sudo. Either use sudo -i to bring up a root shell a superuser and run the command, or just use an editor as mentioned before.