[Ubuntu] root 계정으로 로그인할 때 tty 에러메세지 해결
stdin: is not a tty 에러 해결
지난 시간에 root 계정을 활성화 하는 방법에 대해서 알아봤습니다. 윈도우와는 다르게 추가적인 설정들이 필요한데, 그 중에 가장 짜증나게 하는 부분이 아래와 같은 메세지를 보여줄 때 입니다.
root 계정을 활성화 하고 로그인 가능하게 한 뒤, 실제로 로그인을 하게 되면 다음과 같은 에러를 나타내게 되는데 문제는 부팅 과정의 흐름이 끊기게 된다는 것입니다. 일일이 확인 버튼을 눌러주는데 여간 번거로운 일이 아닐 수 없습니다. 특히 WOL 로 컴퓨터를 켜는 경우엔 더더욱 문제가 될 수 있습니다.
에러에 주요한 부분을 살펴보면 /root 폴더에 .profile 파일을 불러오는 중에 에러가 발생했다고 합니다. 여기서 이 문제를 해결할 길이 보입니다. 에러 내용은
stdin: is not a tty
해당 에러에 대한 정확한 원인을 파악하지 못했습니다.
따라서 본 포스팅에서 포스팅하는 내용은 근본적으로 에러를 해결하는 방법이 아닐수도 있습니다.
(단순히 에러메세지를 감추는 정도의 설정일 수 있습니다.)
혹시라도 근본적인 해결책과 원인을 짚어주신다면 감사하겠습니다.
라는 에러를 보여주는데 이 에러는 root 계정으로 로그인을 하게 되면 터미널이든, GUI든 항상 따라오는 에러 같습니다. tty 라고하는 단어는 Tele TYpe 을 뜻하는데, 저도 정확하게는 무슨 의미인지 모르겠습니다.
의미와 원인이 뭐가 됐든, 이 에러로 인해서 매번 부팅시 확인 버튼을 클릭해야 하는데 그 문제를 해결해서, 아니 조금 더 엄밀하게 이야기하면 적어도 저 에러메세지가 보이지 않게끔 해서 원할한 부팅과정을 구축하고 싶습니다.
에러메세지 나오지 않도록 설정하기 |
이 이후의 과정은 최고 관리 권한을 가진 계정인 root 계정으로 로그인 하여야 원할한 설정이 가능합니다.
위에서 이야기 했다시피, /root/.profile 에서 문제가 있는 듯 보입니다. 해당 파일을 확인하고 필요한 부분을 수정하기 위해서 해당 경로로 찾아가 봅시다.
파일 탐색기(nautilus)를 실행하면 제일 처음 보이는 위치가 바로 홈 폴더인데, 현재 root 계정으로 로그인 되어 있으니 제일 처음에 보이는 폴더는 /root 폴더 입니다. 여기서 .profile만 찾으면 되는데 그 파일이 보이지 않습니다.
리눅스 운영체제에서는 숨김파일을 확장자 명만 존재하도록해서 숨김 파일을 만듭니다. 파일의 이름이 없이 .XXX 형태면 숨김파일로 저장이 됩니다. 이것은 윈도우 운영체제와 조금 다른 부분이기도 합니다.
숨김파일로 되어있기 때문에 당연히 보이지 않는 건데, 폴더 설정에서 숨김파일을 표시 하도록 하면 됩니다.
마우스 커서를 좌측 상단으로 올리면 메뉴 중 보기를 클릭하면 아래와 같은 메뉴가 나옵니다.
이 메뉴들 중에서 숨긴 파일 보이기 (단축키 Ctrl+H) 를 누르면 숨겨진 파일들이 보이게 됩니다.
당연히 우리는 이 중에서 .profile 파일을 수정할 예정입니다. 이 .profile 파일을 Gedit를 통해서 편집을 해 줍니다.
해당 파일을 열면 mesg n 이란 부분이 있는데, 이 부분을 삭제합니다.
그리고 그 내용 대신에 다음과 같은 내용을 넣습니다.
if `tty -s`; then
mesg n
fi
이렇게 mesg n 이라는 항목을 저렇게 바꿔주는 과정만 해도 다음번 부팅시에 에러메세지를 보여주지 않습니다.
추가합니다!
위와 같이 if 문으로 묶었을 때 뜬금없이 'tty -s' 명령을 찾을 수 없다는 에러가 발생하기도 한답니다. 그럴 때는 위와 같이 if 문으로 감싸는 대신 mesg n 앞에 tty -s && 만 붙여줘도 됩니다.
최종적으로 mesg n 대신에 tty -s && mesg n 으로 변경을 해도 에러는 보이지 않습니다. (띄어쓰기 주의하세요!)
- 추가된 날짜 : 15/06/30
솔직히 어떤 원리인지 파악은 하지 못했지만, 에러메세지가 보이지 않는 것만 해도 속이 후련하네요.
참고로 우분투는 제가 실제 서버에서 root 계정을 활성화 하면서 사용해 본 적이 없기 때문에 실제 서버에 단일 OS로 설치한 경우라면 상황이 조금 다를 수도 있습니다. 위의 메세지는 가상 서버를 돌리는 환경에서만 발생할 수 있습니다. 만약, 실 서버에서는 위와 같은 에러가 나오지 않는다면 댓글을 남겨주세요!