프로그램을 루트로 실행하고, 프로그램을 사용자로 실행하고, 프로그램을 sudo xxxx로 실행하세요.

프로그램을 루트로 실행하고, 프로그램을 사용자로 실행하고, 프로그램을 sudo xxxx로 실행하세요.

질문이 몇 개 있습니다:

  • 루트로 프로그램을 실행하는 것과 를 사용하여 프로그램을 실행하는 것의 차이점은 무엇입니까 sudo programxxx? sudo가 더 안전한가요?
  • 사용자로 프로세스를 실행해야 합니까? 아니면 아마도 sudo excuteprogram?
  • 그렇다면 apache, phpmyadmin, mysql 사용자로 이러한 프로그램을 어떻게 실행합니까? (즉, 1명의 사용자 실행 = 1개의 데몬, 프로그램, 그게 좋은가요?)
  • 사용자로 프로그램을 실행하는 방법은 무엇입니까? 일반 사용자로는 Apache, mysql 및 기타 프로그램을 실행할 수 없습니다.

답변1

Sudo는 다음과 같기 때문에 더 "안전"합니다.최소 권한의 원칙. 이는 "꼭 필요한 경우에만 관리자 권한으로 실행"을 의미합니다.~ 해야 하다"

또한 Sudo는 auditd를 활성화하지 않는 한 루트로 실행할 때 어떤 사용자가 어떤 명령을 실행하는지 기록합니다.

Sudo는 또한 매우 구성 가능합니다. "Web Admins"라는 그룹이 Apache 또는 nginx 프로세스를 다시 시작하도록 허용할 수 있습니다. 따라서 수퍼유저/관리자 권한을 특정 그룹에 필요한 명령으로 제한할 수 있습니다.

Sudo를 사용하면 루트가 아닌 다른 사람으로 프로그램을 실행할 수도 있습니다. "sudo -u mysql"을 사용하면 mysql 사용자로 실행할 수 있습니다. 다시 말하지만, 이는 다양한 그룹이나 사람에게 다양한 권한을 부여하여 제어할 수 있습니다.

답변2

프로그램을 루트로 직접 실행하거나 sudo를 통해 실행하면 결과는 본질적으로 동일합니다. 항상 루트 계정을 사용하지 않으려면 sudo를 사용하십시오. 그렇지 않으면 오류로 인해 심각한 결과가 발생할 수 있습니다.

참조하는 특정 프로그램과 관련하여 권한 있는(<1024) 포트에 바인딩하거나 부팅 시 자동으로 시작하는 등 일부 프로그램은 올바르게 초기화할 수 있도록 먼저 루트로 시작해야 합니다. 대부분은 다른 사용자에게 양도할 수 있지만 이는 일반적으로 제품에 따라 다릅니다. 특정 설명서를 참조하세요.

관련 정보