“스도 수-”가 나쁜 습관으로 간주됩니까? 액세스함으로써 보안

배경

나는 그 차이를 알고있는 사이 su -, sudo su -sudo <command>:

  • su - -사용자를 루트로 전환하고 루트 암호가 필요합니다
  • sudo su - -사용자를 루트로 전환하고 현재 사용자의 비밀번호 만 필요
  • sudo <command>-특정 명령에 대해서만 루트 액세스 권한을 부여합니다. 현재 사용자의 비밀번호 만 필요

제 질문은 sudo su -프로덕션 환경에서 안전한 사용법 인지 아닌지에 관한 것입니다.

몇 가지 생각 :

  1. sudo su -개별 사용자 암호에 따라 루트 계정에 액세스함으로써 보안 위험을 초래하는 것처럼 보입니다 . 물론 이것은 엄격한 암호 정책을 시행함으로써 완화 될 수 있습니다. su -관리자가 실제 루트 암호를 공유해야하기 때문에 더 나을 것이라고 생각하지 않습니다 .

  2. 사용자가 루트 계정으로 완전히 전환 할 수있게하면 누가 시스템을 변경했는지 추적하기가 더 어려워집니다. 하루 종일 여러 사용자에게 sudo su -액세스 권한 이 부여되는 사례를 보았습니다 . sudo su -작업을 시작하기 전에 사용자가 시스템에 로그인 할 때 가장 먼저하는 작업 이 실행 됩니다. 그런 다음 언젠가는 무언가가 깨졌으며, rm -rf *잘못된 디렉토리에서 누가 실행했는지 추적 할 수 없습니다 .

질문

위의 우려를 감안할 때 사용자가 사용 sudo su -하거나 su -전혀 사용하지 않는 것이 좋은 생각 입니까?

관리자가 게으름을 제외하고 sudo su -또는 su -대신에 사용자 계정을 구성 할 이유가 sudo <command>있습니까?

참고 : 루트 사용자에 대한 직접 ssh 액세스가 비활성화 된 경우 사용자가 실행 중이 sudo su -거나 su -관리자가 시스템을 변경 해야하는 경우는 무시합니다 .



답변

당신의 경우를 보자 :

 su -

루트 환경을 사용하여 / bin / sh를 루트 사용자로 실행합니다. 루트 암호가 필요하며 syslog 설정에 따라 로깅이 기록 될 수 있습니다 (보통 기본적으로 /var/log/auth.log).

 sudo /bin/sh

현재 환경 변수 세트를 사용하여 루트 사용자로 쉘을 실행합니다 (sudoers 파일에 정의 된 일부 예외). 비밀번호는 루트 사용자 비밀번호가 아닌 소스 사용자 비밀번호입니다. sudo는 일반적으로 기록됩니다.

 sudo su -

환경을 루트 사용자로 설정하는 루트 사용자로 쉘 (보통 / bin / sh)을 실행합니다. 원본 사용자의 암호가 필요하며 일반적으로 기록됩니다.

때로는 자신의 환경에 루트 환경이 있어야하므로 적절한 방법입니다. 두 경우 모두 sudo는 여전히 셸 명령 사용을 기록합니다.


답변

* 위의 우려를 감안할 때, 사용자가 sudo su를 사용할 수있게하는 것이 좋은 생각입니까?

아니, 내 의견으로는 아닙니다. 루트 암호가 필요하지 않다는 점을 제외하고는 su를 허용하는 것보다 실질적인 이점이 없습니다.

또는 su-전혀?

항상 루트 로그온을 사용하지 않기 때문에 su가 필요하고 균형이 잡혀 서버를 더욱 안전하게 만듭니다.


답변

OP는 일반적인 사용을 허용 / 장려하지 않는 충분한 이유를 제공하는 것으로 보이 sudo bash거나 sudo su -내부가 일반적으로 기록되지 않는 강력한 모드로 전환하기 때문입니다. 그리고 그들은 그들이 그 모드에 있다는 것을 잊고 후회할만한 일을합니다.

Ergo, 대부분의 사용자가 실행 sudo on/a/particular/command/또는 명령 목록으로 제한하는 것이 더 안전 해 보입니다 . 그렇게하면 모든 sudo 명령이 기록됩니다.

실제로 예외가 발생합니까? 확실한. 그러한 예외에 대한 반응이 제한되지 않은 게으른 관행으로 되돌아가는 sudo su것일 수 있습니다.


답변