Vagrant 用户本身似乎没有 sudo/root 权限
Vagrant user doesn't seem to natively have sudo/root permissions
我正在尝试确定 Vagrant 或 nginx 中是否存在错误。
我有以下 Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.network "private_network", ip: "10.0.1.7"
config.vm.network :forwarded_port, guest: 8080, host: 9005
end
所以我 运行 vagrant up && vagrant ssh
和服务器配置和启动。我想 手动 在我的新 VM 上安装 nginx,所以(根据 the instructions 在 Ubuntu 14.04 上安装 nginx)然后我 运行:
sudo apt-get update
sudo apt-get install nginx
nginx 安装。我 运行 mkdir ~/mysite
然后我将其 /etc/nginx/nginx.conf
文件更改为:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root /home/vagrant/mysite;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
然后我运行nginx -s reload
。我收到的错误是:
vagrant@precise32:~$ nginx -s reload
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2016/12/22 00:36:48 [notice] 1442#0: signal process started
2016/12/22 00:36:48 [alert] 1442#0: kill(890, 1) failed (1: Operation not permitted)
我的理解是 vagrant
应该是 VM 上具有 sudo 访问权限和 root 权限的用户。不?任何人都可以重现这个并弄清楚为什么我无法用我的自定义 nginx.conf
文件重新加载 nginx 吗?
vagrant 用户确实具有 sudo
特权,但这并不是因为他有这种权利,他可以 运行 作为 root 命令。正如您使用 sudo 运行 sudo apt-get update
一样,您需要使用 sudo 运行 nginx :
$ sudo nginx -s reload
我正在尝试确定 Vagrant 或 nginx 中是否存在错误。
我有以下 Vagrantfile
:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.network "private_network", ip: "10.0.1.7"
config.vm.network :forwarded_port, guest: 8080, host: 9005
end
所以我 运行 vagrant up && vagrant ssh
和服务器配置和启动。我想 手动 在我的新 VM 上安装 nginx,所以(根据 the instructions 在 Ubuntu 14.04 上安装 nginx)然后我 运行:
sudo apt-get update
sudo apt-get install nginx
nginx 安装。我 运行 mkdir ~/mysite
然后我将其 /etc/nginx/nginx.conf
文件更改为:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root /home/vagrant/mysite;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
然后我运行nginx -s reload
。我收到的错误是:
vagrant@precise32:~$ nginx -s reload
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2016/12/22 00:36:48 [notice] 1442#0: signal process started
2016/12/22 00:36:48 [alert] 1442#0: kill(890, 1) failed (1: Operation not permitted)
我的理解是 vagrant
应该是 VM 上具有 sudo 访问权限和 root 权限的用户。不?任何人都可以重现这个并弄清楚为什么我无法用我的自定义 nginx.conf
文件重新加载 nginx 吗?
vagrant 用户确实具有 sudo
特权,但这并不是因为他有这种权利,他可以 运行 作为 root 命令。正如您使用 sudo 运行 sudo apt-get update
一样,您需要使用 sudo 运行 nginx :
$ sudo nginx -s reload