之前我部署全部用的 root 用户,各种流畅。 这次单独设置了 deploy 用户,动不动就 Permission denied。 要给 deploy 用户设置了 sudo 权限,那还不同样危险么?那为什么不直接用 root 用户部署呢?
好吧,我(deploy 用户)现在的问题是:
$ /app/nginx/sbin/nginx -s reload
nginx: [alert] could not open error log file: open() "/app/nginx/logs/error.log" failed (13: Permission denied)
2015/04/07 14:17:56 [notice] 18767#0: signal process started
2015/04/07 14:17:56 [error] 18767#0: open() "/app/nginx/logs/nginx.pid" failed (2: No such file or directory)
试图找下 nginx.pid, 结果:
$ find / -name nginx.pid
find: `/app/lost+found': Permission denied
find: `/sys/kernel/debug': Permission denied
...
我对 nginx 不太熟,之前部署过好几次(root 用户)也没有遇到这种问题…… 怎么个思路呢?
1 设置 deploy 有 root 同等的权限(感谢#5 楼 @liwei78)
$ sudo vi /etc/sudoers
# 加一行
deploy ALL=(ALL) ALL
( 我之前明明设置了 adduser deploy sudo,也常常用 sudo 来执行各种命令,跟这个有什么差别呢?好吧,回去恶补下 linux 才行……)
2 启动 nginx…… (额,原来我之前根本没有启动……)