저는 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>