pi 계정 삭제를 시도했으나.. 프로세스 실행중이라고 삭제가 안된다;
여튼 막 지우고지우려다보니 무력화는 된거같다.
/etc/sudoers.d
여기 디렉토리가면 파일이 있는데 거기에서 sudo 사용가능하게 설정이 된당. /etc/sudoers 파일 안고쳐도 됨..
이건 아무데서도 안알려준거보니 버전이 바뀌면서 바뀌었나봉가..
pi 계정을 대체하기 위해 아래 절차를 수행했다.
1. 계정생성
sudo useradd [계정]
2. 계정 그룹 복제
$ sudo addgroup [계정] adm
$ sudo addgroup [계정] dialout
$ sudo addgroup [계정] cdrom
$ sudo addgroup [계정] pi
$ sudo addgroup [계정] audio
$ sudo addgroup [계정] video
$ sudo addgroup [계정] plugdev
$ sudo addgroup [계정] games
$ sudo addgroup [계정] users
$ sudo addgroup [계정] input
$ sudo addgroup [계정] netdev
$ sudo addgroup [계정] spi
$ sudo addgroup [계정] i2c
$ sudo addgroup [계정] gpio
$ sudo addgroup [계정] dialout
$ sudo groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio
$ sudo groups [계정]
[계정] : [계정] adm dialout cdrom audio video plugdev games users input netdev pi spi i2c gpio
3. 계정 삭제
$ sudo userdel -r pi
삭제는 실패하겠지만..ㅋ
4. 한글 폰트등 설치~
$ sudo apt-get install ttf-unfonts-core
$ sudo apt-get install ibus
$ sudo apt-get install ibus-hangul
6. 원격접속을 위한 VNC 서버 설치
이건 포스팅을 참조하여 하였음.. 아래 vnc서버는 뭔가 단점이 있는걸로 보여서..
http://blog.naver.com/PostView.nhn?blogId=godnanai&logNo=220836579448&parentCategoryNo=&categoryNo=62&viewDate=&isShowPopularPosts=true&from=search
방화벽;;
sudo
ufw allow 5901
다른건 아래 정보 참조;;
출처: https://blog.ayukawa.kr/archives/1357
무선 네트워크 설정
- 설정 화면이 표시되면 일단 ESC 키를 눌러서 빠져나간다. 참고로, 이 화면은 이후에라도
raspi-config
명령으로 다시 표시하고 설정할 수 있다.
cat /etc/network/interfaces
를 입력해서 interfaces 파일의 내용을 확인한다. 아마도 아래와 같이 기록되어 있을 것이다.
- interfaces 파일에서
allow-hotplug ~
로 시작하는 줄이 있는지 확인한다. 위 코드(?)에서는 아래에서 네번째 줄부터 끝까지가 해당하는 부분이다. 이 문단의 내용은 무선 랜카드의 이더넷 인터페이스 설정으로, 이 문단이 없으면 무선 랜카드를 이용할 수 없다. 라즈비안 2015년 2월 16일자 기준으로, 해당 내용은 기본으로 들어있는 것을 확인했지만 만약 없다면 추가해주자. - 사용할 와이파이의 SSID를 수동으로 지정하기 위해 nano 등의 에디터를 이용해서
/etc/wpa_supplicant/wpa_supplicant.conf
파일을 연 다음, 가장 아래쪽에 다음과 같은 내용을 추가한다.
근데 왠지 우리집은 이렇게 설정해줘야 인터넷이 됬었다 (…)
- wpa_supplicant.conf 파일을 위와 같이 고치고 저장한 뒤에 잠시 기다리면 무선 인터넷이 연결된다. 단, 당연히 라즈베리파이에 무선 랜카드가 설치되어 있어야 한다.
2015년 5월 13일 수정. 4번째 라인의 scan_ssid 항목을 추가했다. 해당 항목에 대한 설명은 숨겨진 SSID(Hidden SSID) 접속이 잘 안될때를 참고하자. - 만약 아무리 기다려도 무선 인터넷이 연결되지 않는다면,
sudo ifdown wlan0
을 입력하고 다시sudo ifup wlan0
을 입력해서 인터페이스를 재시작해보자(만약 설정이 잘못 되었다면 이 과정에서 오류가 발생할 것이다). 이도저도 아니라면 아예sudo reboot
를 입력해서 라즈베리파이를 재시작해보자 (…) 웃기게 느껴질 수도 있겠지만, 라즈베리파이 재단의 Setting WiFi up via the command line 문서에 그대로 나와있는 내용이다.
라즈베리파이 환경설정
sudo raspi-config
를 입력해서 라즈베리파이 환경설정 화면으로 진입한다. 위아래 방향키로 항목 이동 후 엔터키를 누르거나, TAB 키를 누른 후 Select에서 엔터키로 항목을 선택할 수 있다.
- 제일 먼저
Expand Filesystem
을 선택한다. 라즈베리파이 재단에서 제공하는 라즈비안의 이미지는 기본적으로 3GB의 파일 시스템에서 사용하도록 파티션이 설정되어 있다. 이것을 SD 카드의 전체 공간을 사용할 수 있도록 파티션을 재설정해준다. Internationalisation Options
>Change Timezone
을 선택한 다음,Asia
>Seoul
을 선택해서 표준시간대를 서울로 변경한다. 이 화면에서 로케일 설정도 가능한데, 아래에서 다시 언급한다.Advanced Options
>SSH
>Enable
을 선택해서 SSH를 활성화한다. 2015년 2월 16일자 버전 기준으로, SSH는 기본으로 설정되어 있으니 굳이 설정하진 않아도 된다.- 첫 화면으로 돌아가서, Finish를 선택해서 환경설정을 종료한다. 자동으로 라즈베리파이가 재시작된다. 참고로 여기서 그냥 ESC를 눌러서 환경설정을 종료할 수도 있는데, 이 경우 환경설정이 완료되지 않은 것으로 간주되어, 로그인할 때마다 NOTICE: the software on this Raspberry Pi has not been fully configured. Please run ‘sudo raspi-config’라는 메시지가 표시되며 환경설정이 완료되지 않았다며 경고한다.
원격접속용 VNC Server 설치
사실은 SSH 설정하는 부분까지 묶어놓고 “원격관리를 위한 SSH와 VNC 서버 설치”라는 이름으로 작성하고 싶었는데, 하필 SSH가 기본 설정이어서-_-… 여하튼;;;
- PuTTY 등 SSH를 지원하는 클라이언트를 이용해 라즈베리파이로 접속한다. 라즈베리파이의 IP를 확인하기 위해서는 라즈베리파이에서 ifconfig 명령어를 이용한다.
- 라즈베리파이의 기본 계정은 pi / raspberry 이므로, 접속시엔 이걸 입력한다
- PuTTY로 접속하면 경고창이 뜨는데, 접속하려는 서버가 등록되어 있지 않으므로 보안을 보장할 수 없다는 의미. 그냥 무시하고 접속하자.
- 예(Y)를 선택한 경우, 이 접속이 안전하다고 저장한 뒤 접속함. 이후 다시 접속할때는 이 경고가 뜨지 않는다.
- 아니오(N)를 선택한 경우, 접속은 하지만 이 접속이 안전하다고 저장하지는 않는다. 이후 다시 접속할때 같은 경고가 또 뜬다.
- 취소를 선택한 경우, 접속을 취소하며 PuTTY는 종료된다.
sudo apt-get update
명령으로 패키지 목록을 업데이트한다.sudo apt-get upgrade
명령으로 설치된 패키지들을 업그레이드한다.sudo apt-get install tightvncserver
명령으로 TightVNC 서버를 설치한다.vncserver
를 실행해서 외부에서 VNC로 접속할 수 있도록 한다. vncserver 최초 실행시에는 접속시에 사용할 패스워드를 묻는다.- 패스워드 입력 후에는 Would you like to enter a view-only password (y/n)? 이라고 묻는데, 걍 n을 입력한다.
- VNC 서버는 5901 포트에서 실행된다. 만약 VNC 서버가 실행중인지 확인하기 위해서는
sudo netstat -tulpn | grep 5901
이나sudo netstat -tulpn | grep vnc
을 입력해서 확인할 수 있다.
- VNC 서버가 실행되고 있다면 외부에서 VNC 뷰어 프로그램을 이용해서 접속할 수 있다. VNC는 서버 주소를
IP:세션번호
의 형태로 입력받으므로, 접속할 서버의 주소를127.0.0.1:1
의 형태로 입력한다. - VNC 서버를 종료할 때에는
vncserver -kill :1
의 형태로 입력한다.:1
은 세션번호. 띄어쓰기를 주의하자.-kill
과:1
사이에 공백 한칸이 있다. - 만약 부팅시 자동으로 VNC 서버가 실행되기를 원한다면 라즈베리파이 활용 강좌 : 라즈베리파이 원격제어(TigerVNC)라는 글의 Tip.2를 참고하자.
한글로 설정하고 한글 입력기 설치
사실 라즈비안을 한글로 쓸 필요는 딱히 없다. 기본 메시지가 모두 한글화 되어 있는 것도 아니고… 그래도 기왕이면 다홍치마라고-_- 난 왠지 꼭 한글로 설정해놓고 쓰는 편이다.
sudo raspi-config
로 환경설정 화면을 띄운다.Internationalisation Options
>Change Locale
을 선택한다.Change Locale
화면이 나타나면en_GB.UTF-8 UTF-8
과en_US.UTF-8 UTF-8
,ko_KR.UTF-8 UTF-8
을 찾아서 선택하고 Ok를 선택한다.- 이어서 나타나는 화면에서
ko_KR.UTF-8
을 선택한다. 참고로ko_KR.UTF-8
을 고르면 라즈비안이 한글로 나오고,en_GB.UTF-8
이나en_US.UTF-8
을 고르면 영어로 나온다. 알아서 선택. - 첫 화면이 나오면 Finish를 눌러서 빠져나간다.
- 이후 SSH로 새로 접속해보면 몇몇 메시지들이 한국어로 표시된다. 만약 한글이 깨져보일때는 SSH 프로그램의 인코딩을 변경해준다. PuTTY의 경우, 처음 실행하자마자 나오는 환경설정 화면에서
Window
>Translation
에서 우측의Use font encoding
을UTF-8
로 변경한다.
sudo apt-get install ibus ibus-hangul
을 입력해서 iBus 입력기와 iBus 한글 입력기를 설치한다.- iBus 설치가 완료되었다면, VNC Server를 새로 실행해서 VNC로 접속해본다. 만약 VNC Server가 이미 실행중이라면 종료 후 다시 실행하던가, 새로운 세션을 만들어서 접속한다.
- 데스크톱 상단에 키보드같은 아이콘이 새로 생겼는데, 이 아이콘을 마우스 우클릭한 뒤
기본 설정(Preferences)
을 클릭한다. 괄호 안은 언어가 영어일때 표시되는 메시지. iBus 환경설정(iBus Preferences)
창이 나타나면입력방식(Input Method)
탭으로 이동한다.입력 방식을 선택합니다(Select an input method)
>한국어(Korean)
>Korean
순으로 선택한 뒤, 우측의추가(Add)
버튼을 클릭한다.일반(General)
탭으로 돌아와서,활성화 또는 비활성화(Enable or Disable)
의 우측에 있는...
버튼을 클릭한다.- 여기서 등록하는 키가 한/영 변환키가 되는데, 등록할 수 있는 키는 6개가 한계인건지, 6개가 이미 등록되어있는 기본 상태에서는 등록이 안된다. 어차피 읽어봐도 뭔 키인지도 잘 모르겠는데-_- 그냥 다 지워버리자.
- 나는 원래 한/영 변환에 Shift+Space 조합을 선호하는 편인데, 이 조합을 그대로 등록(키 코드(Key Code)에는 직접
space
라고 입력하고, 수정자(Modifiers)는Shift
를 선택한 뒤추가
버튼)하고 나서 직접 Shift+Space를 눌러보면, 이 키 조합이 먹히질 않는걸 확인할 수 있다.
- 키 코드 우측의
...
버튼을 클릭해서 직접 Shift+Space를 눌러보면 키 코드가 Kana_Shift 라는 식으로 조금 이상하게 표시되는데, 아마도 VNC 클라이언트의 오류가 아닌가 싶다. 이 상태에서추가
>확인
버튼을 클릭하고,iBus 환경설정(iBus Preferences)
화면에서닫기
버튼을 눌러 빠져나온다.
- Text Editor라도 열어서 Shift+Space 조합으로 한글/영문 상태가 변경되는지 확인한다. 변경될때마다 우측 상단의 키보드 아이콘이 변경된다.
사실 이렇게 설정해놔도, 테스트해보니 한글이 엉망으로 입력되서 거의 써먹지 못할 수준이었다. 어차피 라즈베리파이 쓰면서 굳이 VNC로 접속까지 해가면 한글 입력할 일은 없을거 같기는 하다만(…) 일단 VNC가 아니라, 라즈베리파이에 직접 모니터와 키보드를 연결해서 입력해보면 멀쩡하게 잘 입력되는걸 봐서는, Real VNC의 VNC Viewer에 문제가 있는 것 같다.
기타 등등
난 보통 라즈비안을 설치하면 딱 여기까지 설정하는데, 그 외 기타등등(…) 내가 안쓴다지만 그래도 내가 알아두면 나쁘진 않겠다 싶은걸 몇개 더 기록해두려고 한다.
raspi-config
위에서도 언급했듯이, raspi-config는 라즈베리파이의 환경설정을 위한 툴이다. 위에서는 내가 꼭 하는 것들만 지나가듯이 명시해 뒀는데, 자세한 설명은 아래 문서들을 참고하자. 다만, 라즈베리파이 공식 홈페이지의 문서 외에는 버전 차이로 최신 버전과 다른 내용이 있을수도 있다.
- raspi-config
- 라즈베리파이 공식 홈페이지의 raspi-config 설정
- 라즈베리파이 Raspbian raspi-config 설정 | BERRRYCRACKER
- 작은항해자의 항해 :: 기본환경설정(raspi-config)
계정 설정
나는 아직 라즈베리파이로 뭔가 대단한걸 하고 있는건 아니어서-_- 그냥 기본 제공되는 pi 계정만으로 그냥 사용하고 있지만, 만약 사용자를 관리해야 한다면 아래 명령어들을 사용한다.
- 사용자 추가
- sudo adduser {사용자 이름}
- 사용자 삭제
- sudo userdel {사용자 이름}
- -r 옵션을 붙여서 sudo userdel -r {사용자 이름} 형태로 입력하게 되면, 홈 디렉토리도 함께 삭제된다.
- 패스워드 변경
- sudo passwd {사용자 이름}
- 패스워드 삭제
- sudo passwd {사용자 이름} -d
- Sudoers 등록
- 데비안 계열에서는 sudo를 사용할 수 있는 사용자를 Sudoers라고 하는데, Sudoers로 지정된 사용자 외에는 sudo 명령어를 이용할 수 없다. sudo를 이용할 수 없으므로, 당연히 관리자 권한을 얻을 수도 없고 시스템 관리도 할 수 없다.
- Sudoers로 등록하기 위해서는 sudo visudo라는 명령어를 입력하면 nano 에디터로 /etc/sudoers 파일을 수정하는 화면이 표시된다.
- 만약 visudo 실행시 사용할 편집기를 변경하고 싶다면, sudo update-alternatives –config editor를 실행해서 시스템 기본 편집기를 변경해준다.
- 기본 계정인 pi가 Sudoers이므로, pi ALL= ~ 와 비슷하게 생긴 라인을 찾아서, 해당 라인과 비슷하게 Sudoers를 등록해준다.
- 사실 root 계정이랑 pi 계정은 raspi-config 화면에서 패스워드를 변경할 수 있으므로, 딱히 passwd 명령어로 변경할 필요는 없지 않은가 싶다. 마찬가지로, root 계정은 기본적으로 패스워드가 비활성화 되어 있으므로(=로그인이 안됨) 딱히 변경할 필요가 없지 않은가 싶다.
VNC Server 패스워드 변경
- VNC Server의 패스워드는 vncpasswd 명령어로 변경할 수 있다.
- vncpasswd ~/.vnc/passwd
- 사실 별다른 옵션 없이 vncpasswd만으로도 변경되는걸 확인하기는 했다. 근데 사실 VNC 서버의 패스워드는 $HOME/.vnc/passwd에 저장되는데, 별다른 옵션 없이 사용한 vncpasswd는 때때로 /root/.vnc/passwd 파일을 변경하려 드는 경우가 있었다. 평소에도 passwd 파일의 경로를 직접 지정해주는 것이 좋을 것 같다.
간단한 리눅스 명령어 모음
이 글을 작성하면서 알게 된 건데, 라즈베리파이 재단의 문서가 굉장히 잘 되어 있다. 작성하면서 참고한 페이지들은 참고자료 항목에 명시하기로 하고, Linux Commands 문서는 리눅스의 기본적인 명령어들 몇 가지가 설명되어 있기 때문에, 리눅스 사용(특히 리눅스의 터미널 사용)에 익숙하지 않다면 한번쯤 훑어보는 것도 좋다.
특히 상위 문서인 Linux라는 문서를 죽 훑어보면 전반적인 리눅스 시스템에 대한 감을 잡을 수 있겠다 싶다. 난 안읽어봤다 (…)
참고자료
이 글은 아래 문서들을 참고했다.
- sonhc’s Inventorys :: [Raspberry Pi] raspbian 개인 서버 설정팁 #2 : 기본셋팅
- 내 글과 비슷하게, 첫 기본 설정에 관한 문서
- Linux Users
- 라즈베리파이 공식 문서 중 리눅스에서 사용자를 관리하는 방법에 대한 문서
- 머가필요해 :: Ubuntu – sudoers visudo
- visudo의 사용법
- 태효의 세상 사는 이야기 : sudoers 파일
- Sudoers 및 visudo에 관한 문서들
- TightVNC: Manual Page for vncpasswd(1)
- VNC Server의 패스워드를 바꾸는 명령어인 vncpasswd 명령어 문서
- 개발, 검색, 함수 :: update-alternatives
- 리눅스 기본 명령어들의 심볼릭 링크를 변경하는 update-alternatives 명령어에 관한 설명
- 라즈베리파이 기초강좌 : 한글 키보드 및 언어설정 하기 | Raspberry Pi Village
- 산딸기마을의 한글 키보드 및 언어 설정법 문서
- Linux : InputMethod [권남]
- 리눅스에서 한글 입력을 지원하는 여러 입력기들이 소개되어 있다.
- 리눅스 민트 UIM 입력기 사용하기 – 리눅스 포럼
- 처음에는 iBus 입력기 말고 UIM 벼루 입력기를 사용하려고 했었고, 그때 참고했던 페이지. 하지만 결국은 iBus 입력기로 되돌아오고 말았다-_-
'개발 > Programming' 카테고리의 다른 글
springframework 4.0 무엇이 달라졌나 (0) | 2017.09.05 |
---|---|
TCP 파라미터 튜닝을 통한 접속 증가 방법 (0) | 2017.08.23 |
[Node.JS] 강좌 10-1편: Express 프레임워크 응용하기 – EJS (0) | 2017.08.10 |
Node와 Angular를 이용하여 간단한 TODO App 예제 샘플 만들어보기 (0) | 2017.08.04 |
node.js 스터디 1일차 (0) | 2017.08.03 |