2012-07-24 1 views
1

저는 Rails 3 애플리케이션을 Unicorn과 Nginx로 돌리고 있습니다.모든 유니콘 프로세스를 www-data (비 루트)로 실행해야합니까?

user "www-data" 

을하지만 난 그냥 www가 데이터로 모든 유니콘 프로세스를 실행해야하는지 궁금 해요 : 현재, 유니콘은 unicorn.rb에서이 라인 루트로 인해 실행됩니다. 그 일을하는 데 문제가 있습니까? 파일 소켓을 사용하고 있으므로 포트 (< 1024)를 열면 문제가되지 않습니다. 내가 알아야 할 다른 것?

답변

2

루트로 응용 프로그램을 실행하면 안됩니다. 이렇게하면 응용 프로그램 루트 권한이 생기며 실수로 파일 시스템을 노출하면 공격자가 많은 노력 없이도 루트 권한을 가질 수 있습니다.

www- 데이터 또는 다른 공유 사용자로 실행하지 마십시오. 대신 특정 앱에 대한 사용자를 만들고 고유 한 권한을 부여합니다. 필자의 경우 한 대의 서버에서 여러 응용 프로그램을 실행 중이므로 하나의 응용 프로그램이 손상된 경우 추가 보호 계층이 허용됩니다. https://jhalderm.com/pub/papers/dcvoting-fc12.pdf

+0

당신은 유니콘 (및 다른 웹 서버)의 기능이 존재하지 않아야 전환 사용자를 생각하십니까 : 그래서,

여기 잘못 될 수있는 몇 가지에 좋은 읽기입니다? – Pablo

+0

나는 그것을 사용하지 않는 것을 선호한다. 시스템 관리에 관해서는 지나치게 신중합니다. Paperclip과 같은 것이 누가 그러한 취약점을 노출했는지 누가 예상 했습니까? 그것들이 존재해서는 안된다는 것이 아니라, 시스템이 올바르게 설정 되었다면 필요하지 않아야합니다. –

+0

참고 : 클립과 관련된 문제는 해결되었습니다. 제 3 자 소프트웨어가 안전하다고 가정하면 실수로 간주 할 수있는 예를 사용하고 있습니다. –