Ubuntu의 nginx:권한이 거부되었습니다

Ubuntu의 nginx:권한이 거부되었습니다

저는 시스템 관리를 처음 접했습니다. nginx 설치 후꼭두각시를 통해Ubuntu에서는 다음과 같은 결과가 나타납니다.

[alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)

[warn] 1898#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1

[emerg] 1898#0: open() "/var/log/nginx/access.log" failed (13: Permission denied)

이 메시지를 모두 제거하려면 어떻게 해야 합니까?

나는 명령줄을 직접 사용하고(chown / chmod) 새 서버를 만들 때마다 이를 반복하고 싶지 않습니다. 그래서 꼭두각시 매니페스트에 무엇을 추가해야 할지 고민하고 있습니다.

이 경우 가장 좋은 시스템 관리자 방법은 무엇입니까? /var/log/nginx에 대한 소유자/권한을 변경하거나 로그를 다른 위치에 저장하는 것입니까? chown / chmod를 사용하는 것이 가장 높은 수준의 보안을 보장하는 특정 권한은 무엇입니까?

나는 이것을 시도했지만 도움이 되지 않았습니다:

  file { '/var/log/nginx':
    ensure  => directory,
    mode    => '0755',
    owner   => 'www-data',
    group   => 'www-data',
    recurse => true
  }

편집됨:

vagrant@precise64:~$ ps aux | grep [n]ginx
root      1001  0.0  0.1  62908  1388 ?        Ss   08:47   0:00 nginx: master process /usr/sbin/nginx
www-data  1002  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1003  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1004  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process
www-data  1005  0.0  0.1  63260  1696 ?        S    08:47   0:00 nginx: worker process

vagrant@precise64:~$ sudo chown -R www-data:www-data /var/log/nginx;
vagrant@precise64:~$ sudo chmod -R 755 /var/log/nginx;
vagrant@precise64:~$ ls -l /var/log/nginx/
-rwxr-xr-x 1 www-data www-data 214 Sep 10 11:07 error.log

답변1

이것당신을 도울 수 있습니다.

귀하가 받고 있는 메시지는 루트가 아닌 사용자로 또는 다음을 사용하지 않고 nginx를 시작했기 때문에 발생합니다.sudo.

로그 디렉토리 오류를 제거하려면 nginx가 실행 중인 사용자를 확인하고 해당 폴더에 적절한 권한을 부여해야 합니다(인형 규칙이 잘못된 폴더에 권한을 부여했을 수도 있습니다).

보고하신 경고 메시지는 (경고 상태에서) "user" 지시어가 nginx 마스터 프로세스가 루트로 실행될 때만 사용된다는 사실에 의해 발생합니다.

답변2

꽤 시간이 흘렀다는 건 알지만 이는 대개 SELinux와 관련이 있습니다. 허용으로 설정해 보면 아마도 잘 작동할 것입니다.

관련 정보