sudo 또는 su 명령이 없을 때 다른 사용자로 명령을 실행하는 방법

sudo 또는 su 명령이 없을 때 다른 사용자로 명령을 실행하는 방법

나는 여기서 매우 특이한 상황에 처해 있습니다. sudo 또는 su 명령이 없는 오래된 Linux 시스템이 있습니다. 이 컴퓨터에 물리적으로 접근할 수 없기 때문에 다른 사용자로 로그인할 수 없습니다.

Linux 커널은 2.6.18-498이고 시스템은 red-hat 4.1.2-55입니다.

/bin 디렉토리로 이동하면 거기에 su 또는 sudo 바이너리가 없다고 확실히 말할 수 있습니다. 따라서 이것은 잘못 구성된 PATH 변수의 경우가 아닙니다.

이것도 웹 서버이므로 그렇게 구성되었을 수도 있습니다. 다른 사용자로 명령을 실행하는 방법이 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.

답변1

in.telnetd실행 중인 원격 로그인 서비스( , rlogind, ) 가 있는지 확인한 sshd다음 로컬 호스트(127.0.0.1)에 대해 적절한 로그인 명령을 실행하십시오. 예를 들어 다음과 같은 경우가 있습니다 sshd.

$ ssh [email protected]

당신 과 함께 달리세요 telnet:

$ telnet -l root 127.0.0.1

당신 과 함께 달리세요 rlogin:

$ rlogin -l root 127.0.0.1

답변2

set-uid 또는 set gid-bit를 사용하는 모든 명령. 소유하는 사용자 또는 그룹으로 실행됩니다. 그러나 올바르게 작성되었다면 해서는 안 될 일을 하게 만들지는 않을 것입니다. sudo또한 su올바른 비밀번호를 입력한 경우에만 중요한 작업을 수행할 수 있습니다. 대부분의 다른 도구는 한 가지 작업만 안전하게 수행하지만 권한을 상승시킬 수는 없습니다.

그러나 루트로 저장소에 쓸 수 있는 경우(미디어를 제거하고 다른 컴퓨터에 삽입하거나 다른 운영 체제로 부팅하여) 적절한 권한을 사용하여 필요한 파일을 추가할 수 있습니다.

set-uid/set-gid 비트가 있는 실행 파일은 다음과 같습니다.오직Unix 시스템에서 권한을 높이는 방법(최신 시스템에는 이제 기능이 있지만 기능은 동일함)

커널은 비밀번호를 사용하지 않으므로 비밀번호를 구현하려면 루트 소유자와 set-uid 비트 세트를 사용하여 실행 파일을 만들어야 합니다. 실행 파일은 비밀번호를 확인한 다음 사용자를 적절하게 설정하고 쉘(또는 다른 것)을 시작합니다.

함수가 사용되지 않는다고 가정하면 find / -executable -type f -user root -perm -u+s -print 2>/dev/null모든 상승된 실행 파일이 (적어도 일시적으로) 나열되며 대부분(아마도 모두)은 쓸모가 없게 됩니다.

관련 정보