본문 바로가기
IT

부팅 후 또는 사용자 전환시에 root 계정을 사용

by Oh.mogilalia 2015. 11. 30.

부팅 후 또는 사용자 전환시에 root 계정을 사용하고 싶은 경우에는 

자동로그인으로 해결할 수 없습니다. 

다른 계정으로도 로그인 할 수 있도록 설정을 변경하면 됩니다.


손님 세션외에는 다른 사용자, 특히 root와 같은 숨겨진 사용자는 로그인조차 할 수 없지요.


이 부분을 변경하기 위해서는 

/usr/share/lightdm/lightdm.conf.d 폴더로 이동한뒤 

50-ubuntu.conf 파일을 수정하면 됩니다. 


이 50-ubuntu.conf 파일에 한문장만 추가하면 

다른 사용자로 로그인이 가능하게 설정할 수 있습니다.


greeter-show-manual-login=true



위처럼 추가하고 저장한뒤, 확실하게 적용되었는지 확인하기 위해 재부팅을 한번 합니다. 



root 계정 비밀번호 설정

sudo passwd root


위와 같은 화면이 나오게 되면, 아래와 같은 순서로 진행하면 됩니다.


로그인 항목 클릭 > 사용자 이름 입력 (root) > 암호 입력

 

이제 앞으로 root 계정을 처음부터 사용할 수 있습니다. 


로그인할 때 tty 에러 메세지를 보이는 경우가 있는데 더이상 나오지 않게 하는 방법은


root 계정을 활성화 하고 로그인 가능하게 한 뒤, 실제로 로그인을 하게 되면 다음과 같은 에러를 나타내게 되는데 문제는 부팅 과정의 흐름이 끊기게 된다는 것입니다. 일일이 확인 버튼을 눌러주는데 여간 번거로운 일이 아닐 수 없습니다. 특히 WOL 로 컴퓨터를 켜는 경우엔 더더욱 문제가 될 수 있습니다.



에러에 주요한 부분을 살펴보면 /root 폴더에 .profile 파일을 불러오는 중에 에러가 발생했다고 합니다. 여기서 이 문제를 해결할 길이 보입니다. 에러 내용은


stdin: is not a tty


라는 에러를 보여주는데 이 에러는 root 계정으로 로그인을 하게 되면 터미널이든, GUI든 항상 따라오는 에러 같습니다. tty 라고하는 단어는 Tele TYpe 을 뜻하는데, 저도 정확하게는 무슨 의미인지 모르겠습니다.


의미와 원인이 뭐가 됐든, 이 에러로 인해서 매번 부팅시 확인 버튼을 클릭해야 하는데 그 문제를 해결해서, 아니 조금 더 엄밀하게 이야기하면 적어도 저 에러메세지가 보이지 않게끔 해서 원할한 부팅과정을 구축하고 싶습니다.


에러메세지 나오지 않도록 설정하기


이 이후의 과정은 최고 관리 권한을 가진 계정인 root 계정으로 로그인 하여야 원할한 설정이 가능합니다.


위에서 이야기 했다시피, /root/.profile 에서 문제가 있는 듯 보입니다. 해당 파일을 확인하고 필요한 부분을 수정하기 위해서 해당 경로로 찾아가 봅시다.


파일 탐색기(nautilus)를 실행하면 제일 처음 보이는 위치가 바로 홈 폴더인데, 현재 root 계정으로 로그인 되어 있으니 제일 처음에 보이는 폴더는 /root 폴더 입니다. 여기서 .profile만 찾으면 되는데 그 파일이 보이지 않습니다.


리눅스 운영체제에서는 숨김파일을 확장자 명만 존재하도록해서 숨김 파일을 만듭니다. 파일의 이름이 없이 .XXX 형태면 숨김파일로 저장이 됩니다. 이것은 윈도우 운영체제와 조금 다른 부분이기도 합니다.


숨김파일로 되어있기 때문에 당연히 보이지 않는 건데, 폴더 설정에서 숨김파일을 표시 하도록 하면 됩니다.


파일 탐색기(nautilus)를 실행하고 홈 디렉토리에서 메뉴 - 보기 - 숨긴 파일 보기 클릭.

당연히 우리는 이 중에서 .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로 설치한 경우라면 상황이 조금 다를 수도 있습니다. 위의 메세지는 가상 서버를 돌리는 환경에서만 발생할 수 있습니다. 만약, 실 서버에서는 위와 같은 에러가 나오지 않는다면 댓글을 남겨주세요!


출처 : Study For Us