배경
나는 그 차이를 알고있는 사이 su -
, sudo su -
및 sudo <command>
:
su -
-사용자를 루트로 전환하고 루트 암호가 필요합니다sudo su -
-사용자를 루트로 전환하고 현재 사용자의 비밀번호 만 필요sudo <command>
-특정 명령에 대해서만 루트 액세스 권한을 부여합니다. 현재 사용자의 비밀번호 만 필요
제 질문은 sudo su -
프로덕션 환경에서 안전한 사용법 인지 아닌지에 관한 것입니다.
몇 가지 생각 :
-
sudo su -
개별 사용자 암호에 따라 루트 계정에 액세스함으로써 보안 위험을 초래하는 것처럼 보입니다 . 물론 이것은 엄격한 암호 정책을 시행함으로써 완화 될 수 있습니다.su -
관리자가 실제 루트 암호를 공유해야하기 때문에 더 나을 것이라고 생각하지 않습니다 . -
사용자가 루트 계정으로 완전히 전환 할 수있게하면 누가 시스템을 변경했는지 추적하기가 더 어려워집니다. 하루 종일 여러 사용자에게
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
것일 수 있습니다.