2012년 5월 3일 목요일

TTY로 접근이 거부될 때

Permission denied.

리눅스 쓰다보면 참 흔하게 볼 수 있는 에러메시지이다. 그런데 최근 Ubuntu Linux 12.04 LTS에서부터 그 흔한 tty (윈도로 치면 시리얼포트) 열 때에도 이런 메시지를 뱉는다.

결론부터 이야기하자면 권한 문제.
개인적으로 USB-to-Serial 계열 장치들을 쓸 때가 많은데, 이 장치들이 권한 문제로 터미널 프로그램(screen 또는 minicom 같은...)에서 열리지 않는다.

$ ls -al /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0  5월  3 17:44 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1  5월  3 17:46 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2  5월  3 17:44 /dev/ttyUSB2

이렇게 확인해보니 ttyUSB* 장치들의 사용자는 root, 그룹은 dialout 이다. 그렇다면 나는 어떤 그룹에 속해 있을까?

$ id
uid=1000(jsjeong) gid=1000(jsjeong) 그룹들=1000(jsjeong),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

보니까 dialout 그룹에 속해있지 않다. 그러니 권한이 없다고 나오지. 아래처럼 usermod 명령어로 그룹에 넣어줄 수 있다.

$ sudo usermod -a -G dialout jsjeong

그리고 잊지 말아야 할 것은 재부팅. (재부팅해야 적용되는지 몰라서 하루 종일 삽질했다.)

$ id
uid=1000(jsjeong) gid=1000(jsjeong) 그룹들=1000(jsjeong),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)

드디어 dialout 그룹에 들어간 것을 확인할 수 있다.
그나저나 왜 이 그룹을 디폴트 그룹에서 뺀 걸까? 이게 무슨 보안상 위협이라도 되나?;;

댓글 없음:

댓글 쓰기