실행하여 새 사용자를 만들었습니다.
sudo useradd -m harry
사용자를 "su-harry"로 대체하려고하면 내가 볼 수있는 모든 것이 "$"(달러) 기호이고 자동 완성이 작동하지 않고 쉘 내장 (예 : 소스)을 사용할 수 없습니다.
.bashrc 및 .profile을 확인한 결과 $ BASH_VERSION이 설정되지 않았기 때문에 .bashrc가 소싱되지 않음을 발견했습니다.
.profile 내부의 코드는 다음과 같습니다.
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
명령 echo $BASH_VERSION
은 아무것도 반환하지 않습니다.
$ echo $BASH_VERSION
$
쉘 내장 (소스 .bashrc,. .bashrc)도 작동하지 않습니다.
SHELL 변수 값은 대시의 별칭 인 '/ bin / sh'입니다. / bin / bash (export SHELL = / bin / bash)로 변경했지만 효과가 없었습니다.
.profile에 ". .bashrc"를 하드 코딩 할 때 (물론 작동하는지 확인하기 위해) 몇 가지 오류가 발생합니다.
admin@host:~$ sudo su - harry
-su: 13: /home/harry/.bashrc: shopt: not found
-su: 21: /home/harry/.bashrc: shopt: not found
-su: 105: /home/harry/.bashrc: shopt: not found
-su: 28: /etc/bash_completion: [[: not found
-su: 34: /etc/bash_completion: [[: not found
-su: 51: /etc/bash_completion: Bad substitution
\[\e]0;\u@\h: \w\a\]\u@\h:\w$
그것을 고치는 방법에 대한 아이디어가 있습니까?
미리 감사드립니다. Jepetko
이 사용자의 쉘은 /bin/sh
입니다. 이것은 bash보다 리소스를 적게 사용하지만 프로그래밍 기능이 적고 대화 형 기능이없는 작은 셸입니다.
sudo chsh -s /bin/bash harry
사용자의 로그인 쉘을 bash로 변경하려면 실행하십시오 . 이렇게하면의 사용자 항목이 변경됩니다 /etc/passwd
(현재 수행중인 작업을 알지 못하는 경우 해당 파일을 직접 편집하지 마십시오).
SHELL
환경 변수를 설정하면 응용 프로그램이 다른 셸을 실행하도록 지시하지만 현재 실행중인 셸에는 영향을주지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다