Linux 기반 시스템에는 중복되는 기능이 많이 있습니다. 예를 들어 이러한 시스템은 동일한 작업을 수행합니다.
sudo --login --user <user>
sudo su - <user>
이것sudo
-only 방식이 더 우아해 보입니다. 없이도 가능한가요?su
너무 많이 파괴하지 않고?
답변1
su
내가 올바르게 기억한다면 다음과 같은 미묘한 차이점이 있습니다 sudo
.
su
사용자 ID 변경만 허용됩니다(예: 슈퍼유저가 됨).su
다른 사용자의 비밀번호를 알고 있는 모든 사용자가 이를 제어할 수 없이 해당 사용자가 되도록 허용합니다.sudo
다른 사용자(루트 포함)로 명령을 실행할 수 있습니다.sudo
파일에 의해 제어됩니다/etc/sudoers
.
이 명령의 원래 목표 sudo
는 루트 권한으로 명령을 실행할 수 있는 사람과 실행할 수 없는 사람을 더 효과적으로 제어하는 것이었습니다. 시스템에 여러 관리자가 있는 경우 sudo
루트 암호 없이 루트로 명령을 실행하도록 허용하는 것이 내 관점에서는 더 안전합니다 . 많은 배포판에서는 /etc/sudoers
사용할 수 있는 사용자 또는 그룹 목록을 제어할 수 있습니다 sudo
.
답변2
사용 측면에서 보면 sudo는 su를 완전히 대체할 수 있습니다. 하지만 많은 스크립트와 프로그램에서 사용되기 su
때문에 안전하게 제거할 수 있는 방법은 없습니다. 많은 Linux 배포판에는 sudo가 사전 설치되어 있지 않습니다. 스크립트에서 sudo를 사용하면 이러한 시스템과 호환되지 않습니다. Jernej가 자신의 의견에서 언급했듯이 su는 Posix 표준의 일부입니다. 이는 스크립트를 작성할 때 su
스크립트를 사용하면 모든 Posix 호환 운영 체제에서 실행될 것이라고 신뢰할 수 있어야 함을 의미합니다 .
여기참고사항입니다.
답변3
sudo
호출 프로세스보다 큰 파일 설명자를 자동으로 닫습니다. >&2
이는 문제가 될 수 있습니다.
모든 sudoers
것이 또 다른 것입니다.(아마도 불필요함)시도되고 테스트된 기본 사용자/그룹 Unix 스타일 권한 체계 /etc/passwd
에서 추상화되었으므로 자체 관리가 필요합니다.
예를 들어,~에서man growisofs
:
실행되면
sudo(8) growisofs
시작이 거부됩니다. 그 이유는 다음과 같습니다. 당연히growisofs
DVD 미디어에 기록할 데이터 세트에 액세스하거나mkisofs
생성을 통해 간접적으로 액세스해야 합니다.ISO9660사전 마스터링된 이미지를 녹화하려는 경우 즉시 또는 직접 레이아웃할 수 있습니다. 에서 실행되면sudo(8)
파일 시스템의 모든 파일에 대한 읽기 액세스 권한을growisofs
효과적으로 부여합니다 . 이는 실행 가능한 이미지에 대한 대체 경로를 결정하기 위해 환경 변수가 구문 분석 된다는 사실로 인해 더욱 악화됩니다 . 즉 , 아래에서 실행하면 높은 권한으로 선택한 프로그램을 실행할 수 있는 권한이 효과적으로 부여됩니다 . 어떤 이유로든 위의 내용이 여전히 허용 가능하다고 생각하고 결과에 기꺼이 직면할 의향이 있는 경우 실제 바이너리를 얻기 위해 다음 래퍼 스크립트를 제자리에서 실행하는 것을 고려하십시오 .sudoers
growisofs
$MKISOFS
mkisofs
sudo(8)
growisofs
sudoers
sudo(8)
growisofs
#!/bin/ksh
unset SUDO_COMMAND
export MKISOFS=/path/to/trusted/mkisofs
exec growisofs "$@"
그러나 위의 "해결 방법"에 대해 제안된 대안은 실제로 설치이며
growisofs
set-root-uid
, 이 경우 데이터mkisofs
에 대한 무단 액세스를 방지하기 위해 데이터에 액세스하거나 실행하기 전에 권한을 삭제합니다.
적어도 su
실제로는 일시적으로 사용자를 전환하고 Unix 스타일 권한을 유지합니다. sudo
, 반면에,초월하다사용자. 그래도 올바르게 접근하면 /etc/sudoers
sudo
대부분의 측면에서 완전히 교체가 가능하며 대부분의 동일한 보안 문제가 제기되므로 su
최소한의 보안 비용으로 편리하게 수행할 수 있으며 자체 안전 문제도 몇 가지 더 발생할 수 있습니다. 제 생각에는su
sudo
이것은 훌륭한 토론이었습니다.이 주제에 대해.
하지만 그냥 건너뛰고 넘어가면 어떨까요?
CTRL+ ALT+Fn
login: root
또는...
ssh root@localhost
무슨 일이 있어도뿌리그래도?