터미널에서 루트가 아닌 사용자로 로그인


18

이것은 Google에서 빠르게 답변을 얻을 것으로 예상되는 질문입니다. 그러나 어떻게 든 구글이 실패합니다. 터미널 세션에 로그인 한 상태에서 세션을 종료하지 않고 비밀번호를 알고있는 루트가 아닌 다른 사용자로 일시적으로 작업하고 싶다고 가정 해 봅시다. 이 사용자로 로그인하면 로그 아웃 할 때까지이 사용자의 홈 디렉토리 등이 올바르게 설정됩니다. 어떻게합니까?

나는 시도했다

su -- username

그런 다음 암호를 입력하면 오류가 발생하지 않지만 명령 프롬프트가 눈에 띄게 변경되지 않았으며 여전히 myname @ myhost라고 표시됩니다. 홈 디렉토리는 또한 myname의 디렉토리였으며 로그인을 시도한 새 로그인이 아닙니다.

나는 지금-명백한 것처럼 리눅스 / 우분투에서 매우 경험이 없기 때문에 모든 정보를 환영합니다.

답변:


18

어느 사용자에게 변경 하시겠습니까?

문제는 쉘이 할당되지 않은 사용자를 "su"하려고한다는 것입니다. 소프트웨어를 설치할 때 시스템 또는 일부 패키지에 의해 생성 된 mysql, pulse 등과 같은 대부분의 사용자에게는 쉘이 할당되어 있지 않습니다.

파일을 조사하여 사용자에게 쉘이 할당되어 있는지 확인할 수 있습니다. /etc/passwd각 사용자의 행 끝을 살펴보십시오 /bin/false. 쉘이 할당되지 않았 /bin/bash거나 다른 것이있는 경우 셸을 사용하면 해당 사용자를 "su"할 수 있어야합니다.

"셸 할당 됨"이라고하면 기본적으로 "셸 액세스"가 있음을 의미합니다.

여전히 사용자에게 쉘 액세스 권한이없는 경우 언제든지 해당 사용자로 명령을 실행할 수 있습니다

 sudo -u user command

사용자에게 쉘 액세스 권한이없는 경우에도 "sudo -u user command"를 사용하여 해당 사용자로서 항상 명령을 실행할 수 있습니다.
Sam

추가] -s /bin/bash당신에게 su명령을 사용하거나 chsh -u username -s /bin/bash사용자의 쉘을 변경합니다. 이로 인한 보안 영향에주의하십시오.
gertvdijk

6

sudo 액세스 권한이 있으면 권장합니다.

sudo su username -

기본적으로 동일한 작업을 수행하지만 다른 사용자가 아닌 비밀번호 만 알고 있으면됩니다.

그러나 다른 사용자 비밀번호가있는 경우 :

su username - 잘 작동합니다.

1을 확인하십시오-그리고 마지막에 있습니다.


어쨌든 당신이 묘사 한 두 가지 방법 모두 내 것과 똑같이 행동합니다-명령은 오류없이 허용되지만 홈 디렉토리는 옳지 않으며 프롬프트는 여전히 원래 사용자입니다. 그 후에 로그 아웃하면 완전히 로그 아웃됩니다.
앤드류 Savinykh

좋아, 로그인이 허용 된 로그인 사용자입니까? 쉘을 "true"로 설정하면 계정 로그인을 차단할 수 있으며, 설명과 정확히 동일하게 수행됩니다. 이것은 "apache"및 "ftp"와 같은 "system"계정에서 많이 사용되었습니다 sudo cat /etc/passwd. 내용을 붙여 넣지 마십시오. 그냥 눈을 떼고 사용자가 마지막 줄로 실제 껍질을 가지고 있는지 확인하십시오.
coteyr 2016

1
참고로,이 작업을 수행하는보다 적절한 방법은 쉘을 "false"로 설정하여 오류를 발생시키는 것입니다. 기술이나 의사 보안상의 이유로 일부 시스템과 계정은 여전히 ​​사실을 사용하지만 (wana-be-hackers의 코딱지를 악화시키기 위해)
coteyr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.