다음을 통해 로그인할 수 없습니다.터미널 {1-6}일반 사용자로서. 나는 단지 root
...
일반 사용자로 로그인하면 컴퓨터에 인사말 메시지가 표시되고 /etc/motd
즉시 로그아웃됩니다.
이유는 무엇입니까?
검사하는 데 유용한 로그 파일은 무엇입니까?
일반 사용자로 정상적으로 로그인이 가능합니다난쟁이존재하다 tty7
.
답변1
텍스트 모드 콘솔이나 네트워크를 통해 로그인하면로그인 쉘처형되다. 여러 시스템 전체 및 사용자별 구성 파일을 읽습니다. 다음은 가장 일반적인 것입니다(셸이 여기에 나열되지 않은 경우 해당 설명서를 참조하세요).
- 쉿, 크쉬:
/etc/profile
;~/.profile
- 스래시:
/etc/profile
,~/.bash_profile
없으면~/.bash_login
, 없으면~/.profile
. - zsh:
/etc/zshenv
,/etc/zprofile
,/etc/zlogin
,/etc/zshrc
(대화형인 경우) ,~/.zshenv
,~/.zprofile
,~/.zlogin
(~/.zshrc
대화형인 경우); - .csh, tcsh:
~/.login
- 물고기:
/usr/share/fish/config.fish
,/etc/fish/config.fish
~/.config/fish/config.fish`
이러한 파일은 다른 파일을 로드할 수 있습니다. 특히 많은 배포판 /etc/profile
은 /etc/profile.d
.
이러한 파일 중 하나에 셸을 종료시키는 내용이 포함되어 있으면 명령을 입력할 수 없는 상태로 로그아웃됩니다.
set -x
해당 파일 상단에 포함 라인을 추가하면 실행된 명령의 추적을 볼 수 있습니다. (이것은 Bourne 스타일 쉘에 적용되며 set echo
csh에서 사용되며물고기는 그런거 없어요)
GUI를 통해 로그인하는 경우(디스플레이 관리자), 로그인 쉘은 실행되지 않습니다. 그러나 대부분의 시스템은 sh 또는 bash를 실행하고 /etc/profile
및 ~/.profile
.
로그인할 수 없어서 멈춘 경우:
- Ctrl로그인 중에 +C를 눌러 보세요 . 적절한 시점에 클릭하면 구성 파일 로드가 시작될 때 셸이 중단되고 명령줄이 표시됩니다.
- 네트워크를 통해 명령을 실행합니다. 원격 쉘이 로그인 쉘이 아니기 때문에 구성 파일을 로드하지 않는
ssh mymachine.example.com 'mv .profile no.profile'
문제를 해결하십시오 .~/.profile
(하지만 bash는 이상합니다..bashrc
부모가 대화형rshd
이거나sshd
쉘이 대화형이 아닌 경우에도 로드됩니다.) - FTP 또는 SFTP를 통해 계정에 액세스하세요.
답변2
글쎄, 내 실험에서 일부 파일이 남아 있다는 사실을 발견했기 때문에 cdm
로그인 /etc/profile.d/zzz-cdm-profile.sh
중에 실행하면 tty
즉시 로그아웃이 발생했습니다. 이것을 제거하면 문제가 해결되었습니다.