루트가 아닌 다른 사용자로서 대화식 쉘을 얻으려면 어떻게해야합니까?


14

기본 보안 모델 (루트 잠김, sudo권한 상승에 사용)과 함께 Ubuntu 10.04 LTS 서버를 사용 하고 있습니다. 나는 때때로 sudo -i높은 권한으로 일련의 명령을 실행해야 할 때나 루트 전용 권한을 가진 디렉토리에서 뒤섞여 야 할 때 사용하는 것을 좋아합니다.

때로는 권한이없는 자체 시스템 계정 ( adduser --system --group --no-create-home --disabled-login some-daemon-user)으로 실행되는 소프트웨어를 설정할 때 본인이나 루트가 아닌 해당 사용자로 일련의 명령을 실행해야하는 경우가 있습니다 . 을 사용해 보았지만 오류 메시지없이 상태를 sudo -i -u some-daemon-user반환 1합니다.

나는 체크 한 syslog, messages, auth, 및 debug로그 파일 /var/log과 그들 중 누구도 어떤 메시지를 해당 참조가 포함 sudo또는 문제의 계정을.

그렇다면 비밀번호를 설정하고 로그인하지 않고 root가 아닌 다른 sudo 스타일이 될 수 있습니까? 내 시스템이 어떤 식 으로든 '깨지'거나 방금 잘못하고 있습니까?

답변:


14

아 .. 문제는 일반적으로 해당 사용자의 표준 쉘이 설정되어 /bin/false있으며 보안상의 이유로 이것을 변경해서는 안된다는 것입니다. 그러나 여전히 예를 들어 실행할 수 있습니다.sudo -u www-data /bin/sh


1
"보안상의 이유"에 대한 자세한 정보를 제공 할 수 있습니까? sudoFlorian이 위에서 제안한 것처럼 사용자로 쉘을 실행하는 데 사용하면 다른가요 ?
Calrion

1
그 이유는 시스템 사용자로서 로그인을 수행하는 공격자, 즉 로그인 프로그램의 버그를 악용함으로써 공격자가 유효한 쉘로 끝날 가능성이 적기 때문입니다. 따라서 카르마가 좋은 경우에도 설정을 / etc / passwd 파일에 그대로 두어야합니다. sudo를 통해 직접 쉘을 호출하는 것은 이와 관련이 없습니다.
Paul Hänsch

따라서 문제는 passwd실제로 쉘을 사용자로 실행 하지 않고 파일에 쉘을 설정하는 것 입니다. 잡았다!
Calrion

9

sudo -i/bin/false시스템 사용자를위한 대상 사용자의 비밀번호 데이터베이스 항목으로 지정된 쉘을 실행합니다 .

사용하다

 sudo -u some-daemon-user bash

또는

sudo -u some-daemon-user -H bash

대상 사용자에 대해 설정된 $ HOME 환경 변수를 설정하려는 경우

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.