저는 수년 동안 Linux를 사용해 왔으며 운영 체제가 어떻게 작동하는지에 대한 설명이 필요하지만 보안상의 이유로 설명이 꼭 필요합니다.
직장에서 누군가 LAMP 스택의 일부를 새로운 CentOS 서버에 설치한 상황이 발생했습니다. 그들은 루트 사용자를 사용하여 모든 것을 설치했습니다. 이는 제가 올바르게 기억한다면 이러한 모든 프로그램(데몬 등)이 루트 사용자 계정을 사용하여 실행된다는 것을 의미합니다. 내 경험에 비추어 볼 때 이것은 나쁜 생각이라고 생각합니다.
apache, mysql, php 등 프로세스별로 사용자를 생성하는 방법을 본 적이 있습니다. 이것이 옳은 일입니까? 그렇다면 이러한 사용자를 어떻게 생성하고 필요한 권한을 부여합니까?
사용자 계정을 만든 다음 해당 사용자 계정을 사용하여 소프트웨어를 설치해야 합니까?
인사이트를 얻고자 개별적으로 문제들을 찾아보았으나, 뭔가 부족하거나 오해하고 있는 것 같은 느낌이 듭니다. 나에게 가장 중요한 것은 우리가 나쁜 상황에 빠지지 않도록 안전하게 설정하는 것입니다. 나는 이것에 대해 실제로 몇 가지 지침을 사용할 수 있습니다. 누구든지 제가 묻는 질문에 대해 설명해 주실 수 있거나 제가 사용할 수 있는 리소스가 있다면 좋을 것입니다.
답변1
"루트로 설치"가 반드시 나쁜 것은 아닙니다. 특히 패키지 관리자를 사용하여 설치한 경우에는 더욱 그렇습니다. 예를 들어, yum을 통해 CentOS에 mysql을 설치하면 mysql 사용자가 생성되고 mysql 프로세스는 일반적으로 해당 사용자로 실행됩니다.
시작하려면 다음을 참조하세요.https://serverfault.com/questions/212269/tips-for-secure-a-lamp-server. 특정 질문이 있는 경우 여기에 게시하거나 serverfault.com의 새 질문에 게시하세요.
답변2
CentOS를 포함한 대부분의 시스템에서 올바른 위치에 프로그램과 파일을 쓸 수 있는 권한을 얻으려면 루트로 설치해야 합니다.
이는 설치된 프로그램이 루트로 실행된다는 의미는 아닙니다. 대부분은 그렇지 않으며 일부(예: Apache)는 특수 사용자로 실행됩니다. 그러나 이러한 프로그램을 시작하고 제한된 리소스(예: 포트 80 및 443)를 얻으려면 이러한 프로그램을 루트로 시작한 다음 루트가 아닌 전용 사용자로 변경해야 합니다.
답변3
그럼에도 불구하고 서버에 소프트웨어를 설치하고 구성하려면 루트 액세스 권한이 필요합니다.
그 후에는 일반 사용자로 작업하고 파일에 액세스할 수 있습니다.
구경하다여기예를 들어 CentOS 서버에 LAMP를 설치하고 구성합니다.