저는 지원 업무를 하며 가끔 원격 Linux 시스템에 대한 셸 액세스 권한을 얻습니다.
관리자가 나에게 원격 액세스를 제공하면 로그인할 때 다음과 같은 출력이 나타나는 경우가 종종 있습니다.
[joe@mycomputer ~]$ ssh [email protected]
[email protected] password:
Creating directory '/foobar/users/bob'.
Unable to create and initialize directory '/foobar/users/bob'.
Last login: Mon Jul 29 13:05:27 2013 from bar.edu
Could not chdir to home directory /foobar/users/bob: Input/output error
-bash: /foobar/users/bob/.bash_profile: Input/output error
-bash-4.1$
-bash-4.1$ echo $HOME
/foobar/users/bob
나와 거래하는 관리자는 나보다 Linux에 대해 더 많이 알고 있습니다. 내 질문은 다음과 같습니다
"디렉터리를 초기화할 수 없습니다"라는 메시지가 나타나는 이유는 무엇입니까?
- 이것이 그들의 실수입니까, 아니면 안전 문제입니까?
useradd bob
내 계정을 만들 때 -m 옵션을 사용하지 않았다고 가정합니다 .
- 이것이 그들의 실수입니까, 아니면 안전 문제입니까?
쉘 이름이 "bob" 대신 "bash-4.1"인 이유는 무엇입니까?
고쳐 쓰다
나는 시스템의 일반 사용자가 아니기 때문에 네트워크 공유 foobar/users가 없고 로컬 저장소만 있는 것으로 추측합니다. 내가 로그인하는 서버 중 그렇게 많은 비율이 동일한 방식으로 서버를 구성한다는 것이 이상합니다.
내가 조사한 자료
답변1
먼저 간단한 질문입니다. 내 쉘 이름은 왜 입니까 -bash-4.1$
? 쉘 이름의 기술적 이름은 "명령 프롬프트"입니다. bash는 환경 변수를 통해 설정됩니다 PS1
. 귀하의 환경에 PS1이 설정되어 있지 않으면 bash는 기본적으로 bash 버전을 프롬프트로 표시합니다. ( ENVIRONMENT
환경에 대한 자세한 내용과 Shell Variables
기본적으로 제공되는 환경 목록은 bash 매뉴얼 페이지의 리소스 섹션을 참조하세요.) 표시하려면 bob
(작업 디렉토리 표시에 익숙하다고 가정합니다) 다음을 사용할 수 있습니다.
PS1='\W$ '
PROMPTING
Bash 프롬프트에서 설정할 수 있는 다른 항목을 알아보려면 Bash 매뉴얼의 리소스 섹션을 참조하세요 .
나는 고장난 하드 드라이브, 전원이 꺼진 외부 USB 드라이브 또는 NIS/NIS+ 자동 마운트를 사용하는 경우 NFS 문제(/foobar/users 아래의 디렉토리가 자동 마운트될 수 있음)를 의심 Unable to create and initialize directory
하고 지적합니다.Input/output error
/foobar/users
mount
어떤 장치가 파일 시스템의 어떤 부분을 제공하는지 알려주는 명령의 출력을 검사하여 경로가 어떤 파일 시스템에 있는지 확인할 수 있습니다 . 여기서 알려줄게어디/foobar는 다음에서 설치됩니다. /foobar가 나열되지 않으면 / 디렉토리에 대해 I/O 오류가 발생한 것이며 대부분예디스크에 오류가 발생했습니다. 파일 시스템 유형별로 마운트를 필터링하여 mount -t nfs
모든 nfs 드라이브에 mount -t ext3
모든 ext3fs 마운트 지점 등을 표시할 수도 있습니다. man mount
이 옵션을 보면 -t
지원되는 파일 시스템이 표시됩니다.
디렉토리가 있는 장치를 찾으면 하드 드라이브인 문제(/dev/sda1 또는 이와 유사한 경우)를 진단하는 방법에 대한 더 나은 아이디어를 갖게 되며 시스템 로그에서 오류를 찾기 시작할 수 있습니다. 파일 grep sda1 /var/log/syslog
. NFS인 경우 드라이브를 다시 마운트하거나 NFS 서비스를 다시 시작해야 합니다.
답변2
첫 번째 로그인에서는 홈 디렉토리를 생성할 수 없으며 이후 시스템은 해당 디렉토리에 들어갈 수 없습니다. 이는 디렉터리 생성 성공 여부를 확인하는 오류가 없기 때문입니다. 폴더 생성이 실패한 이유를 조사하려면 시스템 관리자에게 문의해야 합니다.
답변3
"입/출력 오류"는 파일 시스템 드라이버에 문제가 있음을 나타냅니다. 이는 드라이버 오류이거나 하드웨어 오류일 수 있습니다. "해당 파일이나 디렉터리가 없습니다" 라는 보고는 cd
홈 디렉터리 생성 스크립트의 버그를 나타낼 수 있지만 "입력/출력 오류"는 cd
더 깊은 문제를 나타낼 수 있습니다. 시스템 관리자에게 문의하세요.
쉘 프롬프트 bash-4.1$
는 홈 디렉토리를 열 수 없기 때문에 익숙하지 않습니다. 따라서 홈 디렉토리 .bashrc
(다른 프롬프트 설정이 있을 수 있음)는 읽혀지지 않습니다.