root 의 로그인 쉘을 다른 쉘로 바꿨을 때 문제점(single 부팅)
글쓴이: dcmru / 작성시간: 목, 2007/05/31 - 5:14오후
root의 로그인 쉘을 /sbin/sh 가 아닌 다른 쉘로 바꿨을 때 single 모드로 부팅 시
/usr 이 마운트가 되지 않아 single 모드로 부팅이 안되는 경우가 있습니다.
/sbin/sh 는 동적라이브러리를 참조 하지 않아 /usr 이 마운트 되지 않아도 사용할 수 있다는 말인데요,
이런 문제가 생길 수 있는 OS는 어떤 것이 있을까요?
HP-UX가 그런 것 같고,
Linux(RHEL AS 4.0)에서는 /sbin/sh가 없군요.
Linux는 상관없는 문제일까요?
이에 대한 내용을 아시는 분은 알려주세요.
어디서 본 글인데, HP-UX에서 위와 같은 문제를 접했습니다.
Forums:
$ ldd /bin/sh 및 $ ldd
및
해 보니, /lib 아래에 있는 동적 라이브러리만 사용하는군요. 역시나 어떤 문제를 해결하기 위한 방법은 여러 가지가 있나봅니다. :-)
----
$PWD `date`
$PWD `date`
리눅스를 말씀하시는 것이죠?
리눅스에서는 single 부팅을 해도 /lib 를 마운트를 꼭한다는 것인가요?
아니면 마운트가 안될 수가 있을까요? 물리적으로 /lib를 따로 두어 마운트가 안될 수도 있지 않을까요?
그렇다면 리눅스에서 안전한(?) 쉘은 어떤것일까요? 예를 들면 HP-UX 의 /sbin/sh 같은 쉘을 말이죠.
----------------
노력만이 살길이다.
노력만이 살길이다.
/bin과 /usr/bin, /lib와
/bin과 /usr/bin, /lib와 /usr/lib가 따로 있는 이유가 /만 마운트 된 상태에서도 최소한의
명령어를 사용할 수 있도록 하기 위해서입니다. /bin과 /lib의 용량을 다 합해도 기껏해야
수십 메가 밖에 안 됩니다. 상대적으로 덜 중요한 명령어와 라이브러리는 전부 /usr/bin과
/usr/lib로 빼 놓았으니까 당연한 결과죠.
따라서 /lib를 물리적으로 따로 잡을 이유가 전혀 없습니다. 뿐만 아니라 /bin/mount
명령어가 /lib 안에 있는 라이브러리에 링크가 되어 있기 때문에 /lib를 따로 잡아버리면
마운트 자체가 불가능합니다. 따라서 /lib가 물리적으로 따로 잡혀 있는 경우는 전혀 없다고
봐도 무방합니다.
/bin/bash 뿐만 아니라 /bin 안에 있는 명령어는 모두 /lib (또는 /lib32나 /lib64) 안에
있는 라이브러리에만 링크가 되어 있습니다. 따라서 /bin 안에 들어 있는 쉘은 모두 다
안전하게 쓸 수 있는 쉘입니다.
답변
답변 감사드립니다.
이해를 할 수 있겠습니다.
다른 OS 들도 이런 특성이 있는 것인지. 어떤 OS는 /bin이 /usr/bin 의 링크인 것도 있더군요.
그런 링크가 된 OS는 문제가 있을 수 있어 /sbin 의 쉘이 존재한다고 봐도 되는 것인지요?
위의 경우는 Solaris나 HP-UX 인 것 같습니다.
AIX는 또 어떤지 모르겠네요. AIX도 리눅스와 비슷한 경우인지 궁금합니다.
여기서 언급되지 않은 OS의 특성도 궁금하네요...
----------------
노력만이 살길이다.
노력만이 살길이다.
댓글 달기