"su"를 사용하여 사용자를 전환하면 $ 프롬프트가 표시됩니다.

"su"를 사용하여 사용자를 전환하면 $ 프롬프트가 표시됩니다.

저는 Ubuntu 19를 사용하고 있으며 일부 사용자를 만들었습니다. 내가 생성하고 실행하려고 시도한 최신 사용자에 대해:

su userx

$ 프롬프트를 사용해서만 로그인하는데 해당 사용자로 "bash"를 입력하면 다음과 같은 결과가 나타납니다.사용자 x@myhost:

다른 사용자는 모두 user@myhost로 로그인되어 있습니다. 이 사용자가 $ 프롬프트로 바로 이동하는 이유는 무엇입니까? 그리고 내 길 중 어느 것도 작동하지 않는 것 같습니다. 내가 입력하는 동안"bash"를 입력하기 전까지는 작동하지 않습니다.

답변1

사용자를 생성할 때 사용자에 대한 로그인 셸을 설정하지 않았기 때문에 su기본값은 다음 /bin/sh에서 언급한 대로 입니다 man su.

       The invoked shell is chosen from (highest priority first):

           The shell specified with --shell.

           If --preserve-environment is used, the shell specified by the
           $SHELL environment variable.

           The shell indicated in the /etc/passwd entry for the target
           user.

           /bin/sh if a shell could not be found by any above method.

useradd 대신 adduser를 사용하면 이 프로세스가 더 쉬워집니다.

/etc/passwd의 user 옆에 로그인 셸이 나열되지 않으면 이것이 문제인지 확인할 수 있습니다.

다음을 실행하여 이 문제를 해결할 수 있습니다.usermod -s /bin/bash <username>

관련 정보