리눅스를 CLI 방식으로 원격 접속하는 것은 비교적 쉽다.

`openssh-server` 설치 후에 사용자 계정으로 접속하면 끝이다.

 

그런데, 리눅스에서 GUI 방식으로 접속하는 것은 쉽지 않다.

 

Windows 환경에서는 원격데스크탑(mstsc) 이용하면 끝인데,

리눅스에서는 뭔가를 설치하고 설정을 해줘야 한다.

 

프로그램의 선택지도 다양하다.

- TightVNC

- RealVNC

- TeamViewer

- xrdp

- https://en.wikipedia.org/wiki/Comparison_of_remote_desktop_software

 

 

그런데, Windows에서의 원격데스크탑은

본래 사용하고 있던 화면 그대로의 모습으로 작업하던 세션 그대로 연결이 되는데

위에서 언급한 대부분의 리눅스 원격데스크탑 도구들은 그렇지가 않다.

 

그러던 중 알게된 vino

다른 사람들은 다 알고 있었는데, 나만 몰랐나!?

구글 검색을 해보니 아직 그다지 많은 자료가 없는 것으로 보아 아직 유명하지는 않은 것 같다.

 

 

 

1. Install

  - 기본 설치되어 있다. 혹시 모르니 그래도 한 번 더 확인!

❯ sudo apt install vino

패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 vino는 이미 최신 버전입니다 (3.22.0-3ubuntu1.2).
vino 패키지는 수동설치로 지정합니다.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

 

2. Settings

  - 기본 설정 화면에서 확인할 수 있다.

  - 암호 설정을 하면 된다.

  - 하지만, 암호 길이 제한일 비롯해서 추가적인 설정을 하려면 `dconf-editor`가 필요하다.

 

 

3. dconf-editor

  - 마찬가지로 설치는 쉽다.

❯ sudo apt install dconf-editor
  
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  dconf-editor
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

  - 설치한 dconf-editor를 실행하자.

  - `/org/gnome/desktop/remote-access` 파일을 편집하자

  - `require-encryption` 항목을 꺼주자. 보안상 문제의 여지가 있지만 이 부분은 좀 더 알아보기로 하고...

  - 만약 password를 8자 이상 사용하고 싶으면 base64 encoding 해서 `vnc-password` 항목에 넣어주면 된다.

 

 

4. VNC Viewer

  - 사용하지 않았던 것으로 해보련다.

    . ultraVNC - https://uvnc.com/

  - Viewer로만 사용할거니 그에 맞게 설치하면 된다.

 

 

5. Connect

  - 이제 연결할 일만 남았다.

  - IP만 쓰고 Connect 하면 된다. 세부 옵션을 사용하고 싶으면 `Show Options`

  - 앞에서 입력해놓은 패스워드 사용

  - 정말 원하는대로 나온다!!!

 

 

정말 손쉽게 사용할 수 있다. 강추 !!!

 

반응형

 

# Background Description

파일 서버 용도로 사용하던 PC의 운영체제가 Windows XP 였는데,

더이상 기술지원이 안된다고 하여서

이번 기회에 Ubuntu 20.04로 갈아타게 되었다.

 

 

# Issues

기존 부터 사용해오던 공유폴더를 사용해서

Windows PC와 파일을 계속 주고 받고 싶다.

 

 

# Environment

## Windows PC

- Edition: Windows 10 Pro

- Version: 21H1

 

## Linux PC

- Distribution: Ubuntu

- Version: 20.04

 ❯ lsb_release -a

 No LSB modules are available.
 Distributor ID: Ubuntu
 Description: Ubuntu 20.04.3 LTS
 Release: 20.04
 Codename: focal


 ❯ uname -a

 Linux HP 5.13.0-28-generic #31~20.04.1-Ubuntu SMP Wed Jan 19 14:08:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

 

# SAMBA

## install

- apt를 이용해서 손쉽게 설치할 수 있다.

❯ sudo apt install samba

 패키지 목록을 읽는 중입니다... 완료
 의존성 트리를 만드는 중입니다       
 상태 정보를 읽는 중입니다... 완료
 다음의 추가 패키지가 설치될 것입니다 :
   attr ibverbs-providers libboost-iostreams1.71.0 libcephfs2 libibverbs1 librados2 librdmacm1 python3-crypto
   python3-dnspython python3-gpg python3-markdown python3-packaging python3-pygments python3-pyparsing
   python3-samba python3-tdb samba-common samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools
 제안하는 패키지:
   python-markdown-doc python-pygments-doc ttf-bitstream-vera python-pyparsing-doc bind9 bind9utils ctdb ldb-tools
   ntp | chrony smbldap-tools winbind heimdal-clients
 다음 새 패키지를 설치할 것입니다:
   attr ibverbs-providers libboost-iostreams1.71.0 libcephfs2 libibverbs1 librados2 librdmacm1 python3-crypto
   python3-dnspython python3-gpg python3-markdown python3-packaging python3-pygments python3-pyparsing
   python3-samba python3-tdb samba samba-common
   samba-common-bin samba-dsdb-modules samba-vfs-modules tdb-tools
 0개 업그레이드, 22개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
 10.5 M바이트 아카이브를 받아야 합니다.
 이 작업 후 70.2 M바이트의 디스크 공간을 더 사용하게 됩니다.
 계속 하시겠습니까? [Y/n]

 

## add user

- SAMBA 사용을 허가해줄 계정을 등록해줘야 한다.

- 해당 계정은 실제 계정을 사용해야 한다(Linux 계정).

❯ sudo smbpasswd -a (username)

 New SMB password:
 Retype new SMB password:
 Added user (username).

 

## set Config

- SAMBA 설정 파일 백업 먼저 하고 수정 해보자.

❯ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.220209

❯ sudo nano /etc/samba/smb.conf

- 기본적인 옵션 설명은 아래와 같다.

옵션 value 설명
comment (text) 공유 폴더에 대한 설명
path (text) 공유 폴더 경로
read only yes/no 공유 폴더를 읽기 전용으로 설정
writable, write ok yes/no 공유 폴더를 쓰기 가능으로 설정
valid users (id, id, ...) 공유 폴더 접근 가능 유저 목록
write list (id, id, ...) 공유 폴더 쓰기 가능 유저 목록
public, guest ok yes/no 게스트 이용 가능 여부
browsable yes/no 파일 목록을 보여줄 것인지 여부
printable yes/no 프린터 스풀 파일 지정
create mask, create mode (0644 / 0777 / ...) 생성 권한
force group (group, group, ...) 접근 가능 그룹 지정
directory mask (0644 / 0777 / ...) 공유 폴더 권한

- SAMBA 설정 파일 내용 샘플은 아래와 같다.

- 기존 내용의 제일 밑에 작성하면 된다.

...
[2022]
comment = whatwant's fileserver in 2022 
path = /srv/4t-1/2022      
browsable = yes
writeable = yes
read only = no
create mode = 0777
directory mode = 0777
public = yes
valid users = whatwant

- `smb.conf` 파일을 수정했으면, 서비스 재시작을 해줘야 한다.

❯ sudo service smbd restart

 

 

# Use

- 윈도우 PC에서 접근 해보자.

smb

- `2022` 디렉토리를 더블클릭하면, 다음과 같이 인증 요구 창이 나온다.

passwd

- 앞에서 등록한 패스워드로 인증하면 된다.

 

반응형

 

이것 저것 보다가 우연히 발견한

새로운 에디터가 있어서 한 번 설치해보고 써보고자 한다.

 

https://micro-editor.github.io/

 

https://micro-editor.github.io/

https://github.com/zyedidia/micro

 

 

micro text editor

 

이름이 나쁘지는 않은 것 같은데,

일반 명사를 사용하다보니 구글링과 같은 검색을 할 때 원하는 결과를 얻기가 쉽지 않다.

 

 

Features

nano, vi, vim 등의 훌륭한 기본 에디터들이 있음에도 불구하고

굳이 `micro text editor`를 써야 하는 이유가 뭘까!?

 

- Easy to Use
- Highly Customizable
- Colors and Highlighting
- Multiple Cursors
- Plugin System
- Common Keybindings
- Mouse Support
- Terminal Emulator

 

 

뭐 좋은거 같다 ^^

 

 

 

Environments

이하 내용을 진행한 환경은 다음과 같다.

 

- Ubuntu 18.04 Desktop

 

 

 

Download

- 최신 버전 확인 후에 다운로드 부터 받아보자

   . https://github.com/zyedidia/micro/releases/

❯ wget https://github.com/zyedidia/micro/releases/download/v2.0.10/micro-2.0.10-amd64.deb

 

 

Install

- 설치도 쉽다~

❯ sudo dpkg --install micro-2.0.10-amd64.deb

 

 

 

Execute

- 실행도 쉽다~

❯ micro

micro

 

도움말을 호출하자!

`Ctrl + g` 키를 누르면 된다.

 

help

 

command 명령어를 입력하기 위한 prompt 모드 전환을 위해서는 `Ctrl + e`를 누르면 된다.

단축키를 알아보기 위해서 `help defaultkeys`를 타이핑해보자.

 

prompt

 

 

윗 창과 아랫 창을 왔다 갔다 하기 위해서는 `Ctrl+w`를 누르면 되고,

현재 위치의 창을 닫기 위해서는 `Ctrl+q`를 누르면 된다.

 

 

 

plugins

그렇다. micro editor는 plugin도 지원한다.

 

https://micro-editor.github.io/plugins.html

 

설치법도 친절하게 알려준다

plugin install

 

반응형

 

최근 업무나 공부를 하면서 CSV 타입의 파일을 사용하는 경우가 종종있다.

 

단순한 텍스트 형식의 파일이므로 메모장 같은 Viewer를 이용하거나

CLI 환경에서는 `cat` 명령어만으로도 내용을 확인할 수 있기에 편리하긴 하지만...

 

그냥 일반적은 텍스트 파일 처럼 보게 되면

데이터를 살펴보기에 불편하긴 하다.

 

 

1. Download CSV

  - 테스트 해보기 위해 CSV 파일 하나를 다운로드 받아놓자

$ wget https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/stuff/titanic.csv

 

 

2. Basic

  - 보통 `cat` 형식으로 해당 파일을 보면 이렇다.

$ cat titanic.csv

 

3. Tidy Viewer (tv)

  - CSV 형식의 파일을 예쁘게 출력해주는 아이가 있다.

    - https://github.com/alexhallam/tv

 

  - Ubuntu 환경을 위해 deb 패키지를 제공해준다.

 

    ① Version Check

      - 현재 사용할 수 있는 버전을 확인해보자

        . https://github.com/alexhallam/tv/releases

 

    ② Download

$ wget https://github.com/alexhallam/tv/releases/download/0.0.21/tidy-viewer_0.0.21_amd64.deb

 

    ③ Install

$ sudo dpkg --install tidy-viewer_0.0.21_amd64.deb

 

    ★ 오류

      - Ubuntu 18.04 환경에서 아래와 같은 설치 오류가 발생했다.

      - 관련 이슈는 아래와 같이 reporting 되어 있다.

        . https://github.com/alexhallam/tv/issues/52

 

      - 일단 깨끗하게 오류난 패키지 설치 과정을 청소하자.

$ sudo dpkg --purge tidy-viewer

 

      - 위 이슈에서 제안한 해결 방법으로 설치를 해보자

$ sudo snap install --edge tidy-viewer

 

    ④ alias

      - 편한 사용을 위해 alias 설정까지 해보자

        . bashrc

$ echo "alias tv='tidy-viewer'" >> ~/.bashrc
$ source ~/.bashrc

        . zshrc

$ echo "alias tv='tidy-viewer'" >> ~/.zshrc
$ source ~/.zshrc

 

4. tv

  - 이제 예쁘게 잘 보이는지 확인해보자

$ tv titanic.csv

 

  - 에휴... 오류다.

 

  - 다음 처럼 하면 잘 된다

$ cat titanic.csv | tv

 

 

어?! 이쁘고 깔끔하다!

 

 

설치할 때 문제가 좀 있었고, 사용할 때에도 좀 불편한 점이 있긴한데... 이쁘다!

 

Ubuntu 20.04에서 해보면 문제 없이 사용할 수도 있을 것 같은데...

20.04 환경까지 켜서 확인해보긴 지금 귀찮아서 ^^

 

 

조금 더 지켜보고 내 기본 사용환경에 포함시키는 방향으로 해봐야겠다 !

 

 

반응형


개인적으로 SSH Client는

Ubuntu Terminal에서 직접 사용하는 것이 가장 편하다 보니

회사에서도 Main PC는 그냥 Ubuntu를 설치하고

Windows는 VirtualBox로 설치해 놓고 사용하고 있다.


하지만, 집에서는 여러가지 이유로 Main PC를 Windows10으로 사용할 수 밖에 없어서

SSH Client를 사용하기 위해서 VirtualBox로 Ubuntu 설치해놓고 그것을 이용하고 있다.


SSH Client를 필요로 하는 개발자라면 최소한 1번 이상은 사용해봤을 Putty가 있기는 하지만

개인적으로 썩 마음에 들지 않기에

Windows 환경에서 쓸만한 SSH Client를 계속 찾아보고 있다.


그러던 中 눈에 띈 Xshell !!



안타깝게도 Open-source 프로젝트는 아니다.

하지만, 개인 사용자에게는 무료 라이선스를 제공하고 있다.



이름과 이메일만 작성하면 다운로드 받을 수 있는 주소를 보내준다.



집에서만 사용하는 용도라면 충분히 훌륭하다.

그리고 난 착하게도(^^) 이렇게 포스팅을 하고 있으니 착한 사용자!!!



그냥 다운로드 받아서 설치하면 된다.



설치도 그냥 슉슉~



화면도 깔끔하다.



oh-my-zsh 폰트도 안깨지고 잘 나온다.

더 마음에 드는 것은 창 크기를 조절하면 그에 맞춰서 터미널도 반영된다는 것이다.



Xshell의 장점이자 단점인 것 같은데...

ANSI Color를 직접 컨트롤 하기 때문인 것으로 추정되는 원인으로 인하여

요즘 유행하는 bpytop을 실행하면 위 이미지처럼 배경색이 깨져서 나온다.


뭐 조금 아쉬운 부분은 있지만,

VirtualBox 띄워서 터미널 사용하는 것보다는 조금 가볍게 사용할 수 있다는 측면에서 충분히 만족한다.

그리고 여러 개의 창을 띄울 때에도 편하게 할 수 있어서 충분히 좋다.


반응형



우리 아이가 어렸을 적에 쓰기 위해서 구매했던 노트북이 있었는데,

이제는 성능이 제대로 나오지 않아 새로운 노트북을 구매하면서 마땅한 사용처가 없어졌다.


그래서, 버리려다가 저전력 서버로 한 번 셋팅해보고자 마음을 먹었다.



무려 2세대 !!! ㅋㅋㅋ


메모리도 2GB 밖에 안되었는데...

마침 맥북프로 메모리 업그레이드 하면서 교체했던 것이 있어서 4GB로 업그레이드~!!





1. Ubuntu Server 다운로드


  - "Ubuntu Server 20.04.1 LTS" 버전으로 다운로드 받아서 설치하기로 했다.


  - https://ubuntu.com/download/server



  - "Option 3번"으로 다운로드 받으면 된다.





2. 설치 USB 만들기


  - 부팅 USB 만들기 위해서 rufus 포터블로 다운로드 받아보자.


  - https://rufus.ie/


  - 다운로드 받은 뒤 실행한 뒤에



  - 위와 같이 설정을 하면 된다. (파티션 방식, 대상 시스템, 파일 시스템, 클러스터 크기 등)



  - "시작"을 누르면 위와 같은 화면이 나오는데, 그냥 "예"를 선택하면 된다.



  - ISO 이미지 모드로 쓰면 된다.





3. 노트북 BIOS 셋팅


  - 일단 BIOS에 들어가면 된다. (삼성 노트북은 부팅할 때 F2를 눌러주면 된다)


  - Boot 순서 항목에서 USB를 앞으로 잡아주면 된다.






4. Ubuntu 설치


  - 설치 언어는 그냥 English로 잡아주자. 한글 등은 나중에 직접 잡아주면 된다.



  - 설치 중에... 유선랜을 연결하지 않았더니, 인터넷 안된다고 뭐라한다. 뭐 일단은 그냥 무시하고 고고~~~!!



  - 그냥 나머지는 쭉~쭉~ 설치하면 된다.


  - 하지만, 재부팅 후에 로그인을 해도... 무선랜이 동작하지 않는다. 이걸 잡아보자.





5. cloud-init 제거



$ sudo dpkg-reconfigure cloud-init


제일 하단의 None 항목 빼고 나머지 전부 선택을 해제


$ sudo apt purge cloud-init


$ sudo rm -rf /etc/cloud/

$ sudo rm -rf /var/lib/cloud/


또는,


$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud

$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud





(VirtualBox 에서 게스트 확장 설치하기)


  - 메뉴 - 장치 - 게스트 확장 CD 이미지 삽입...


$ sudo mkdir /media/cdrom


$ sudo mount -t iso9660 /dev/cdrom /media/cdrom


$ sudo apt install build-essential linux-headers-`uname -r`


$ sudo /media/cdrom/./VBoxLinuxAdditions.run


$ sudo umount -v /media/cdrom


$ sudo reboot






6. 무선랜 설정


  - Reference : https://medium.com/@yping88/how-to-enable-wi-fi-on-ubuntu-server-20-04-without-a-wired-ethernet-connection-42e0b71ca198


  - 무선랜 드라이버 설치를 위해 파일들을 복사해야 한다. 다음의 3개 파일을 다운로드 받자 (다른 PC에서)


    . http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb


  - USB는 앞에서 사용한 것을 재활용하기로 하고, FAT32로 포맷해서 준비하자.


  - 앞에서 다운로드 받은 3개의 파일을 USB에 넣자.


  - USB를 우리의 Ubuntu Server Notebook에 꼽자


  - USB를 바로 사용하지는 못하지만, 꼽힌 것을 인식했는지를 우선 확인해보자.


$ sudo fdisk -l



  - 제일 아래 부분을 보면 USB가 보일 것이다. Device 명칭을 잘 확인하자.


  - USB를 mount 하기 위해서 mount 위치 용도의 디렉토리 하나 만들고 mount를 하자.


$ sudo mkdir /media/usb


$ sudo mount -t vfat /dev/sdb1 /media/usb



  - USB에서 보이는 3개의 파일을 설치하면 된다.


$ cd /media/usb


$ sudo dpkg -i libnl-route-3-200_3.4.0-1_amd64.deb libpcsclite1_1.8.26-3_amd64.deb wpasupplicant_2.9-1ubuntu4_amd64.deb


  - 이제는 무선랜카드가 잘 잡혔는지 확인해보자.


$ ls -al /sys/class/net/



  - 밑에 보면 "wlp2s0b1"과 같이 제대로 인식된 것을 확인해볼 수 있다. (물론 다른 환경에서는 다른 이름일 수도 있다!!!)


  - 다른 명령어로도 확인해볼 수 있다.


$ ip link



  - 무선랜카드가 잘 잡혔으니, 이제 무선랜 설정을 해보자.


  - netplan 으로 설정하면 되는데, 기존 설정 파일을 백업하고 설정 작업하면 된다.


$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml


$ sudo nano /etc/netplan/00-installer-config.yaml


network:

  ethernetes: {}

  version: 2

  wifis:

    wlp2s0b1:

      dhcp4: true

      optional:true

      access-points:

        "SSID Name":

          password: "**********"

  renderer: networkd


  - 각자 환경에 맞는 "SSID Name"과 "Password" 설정하면 된다.


  - 문법에 맞춰서 잘 설정했는지 확인해보자.


$ sudo netplan --debug generate


  - 문제가 없으면 이제 실제 적용을 해보자.


$ sudo netplan apply


  - 제대로 동작을 하는지 보기 위해서 재부팅을 하면 된다.


$ sudo reboot





7. 기본 패키지 업그레이드


  - 이제 인터넷이 되니 패키지 업그레이드를 하자


$ sudo apt update


$ sudo apt upgrade


  - 네트워크 관련 도구도 설치를 하자


$ sudo apt install net-tools





8. Language Pack 설치


  - 정상적인 한글 사용을 위해 Language Pack 설치를 해보자


$ sudo apt install language-pack-ko


$ sudo locale-gen ko_KR.UTF-8


$ sudo dpkg-reconfigure locales


$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX




9. Timezone 셋팅


  - Timezone도 제대로 되어있는지 셋팅해보자.


$ sudo timedatectl


$ sudo timedatectl list-timezones | grep Seoul


$ sudo timedatectl set-timezone Asia/Seoul


$ sudo timedatectl


$ date





10. nano 설정


  - 주요 데이터로 nano를 사용하기 위한 환경 설정도 해보자.


$ nano ~/.nanorc


set tabsize 4

set tabstospaces


  - root 계정을 위해서도 추가로 셋팅해주자.


$ sudo nano /root/.nanorc





11. 노트북 덮개 설정


  - 노트북 덮개를 닫더라도 절전 모드로 전환되지 않도록 하기 위한 설정을 하자.


$ sudo nano /etc/systemd/logind.conf


  - "HandleLidSwitch=ignore" 라인을 추가하면 된다.


...

#HandleLidSwitch=suspend

HandleLidSwitch=ignore 

...


  - 수정한 내역을 반영해보자.


$ sudo systemctl restart systemd-logind






12. ssh-server


  - 이미 설치되어있던데... 혹시 모르니


$ sudo apt install openssh-server


  - 이제 외부에서 접속해보면 된다.





13. git 설치하기


  - 요즘은 기본이 되어버린 git ... 설치하고 기본 환경 셋팅을 하자


$ sudo apt install git


  - 사용자 환경 설정을 하자


$ git config --global user.name "whatwant"


$ git config --global user.email "whatwant@whatwant.com"






14. zsh


  - zsh 설치해보자


$ sudo apt install zsh


$ sudo apt install fonts-powerline


$ chsh -s $(which zsh)


  - 로그아웃 하고 재로그인을 해야 이후 셋팅을 진행한다.



  - 그냥 2번으로 선택해보자.


  - oh-my-zsh 설치를 진행하자.


$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


  - theme를 변경해보자.


$ nano ~/.zshrc


# ZSH_THEME="robbyrussell"

ZSH_THEME="agnoster"


  - 또, 로그아웃 하고 재로그인 해보자. 원하는 모습으로 잘 나올 것이다.


  - 유용한 플러그인도 몇 가지 설치해보자


$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting


$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions


  - 다운로드 받은 플러그인을 등록하자.


$ nano ~/.zshrc


#plugins=(git)

plugins=(git zsh-syntax-highlighting zsh-autosuggestions)


  - 그리고 다시 설정 파일을 로딩하면 된다.


$ source ~/.zshrc


  - 멀티라인으로 출력되도록 하자.


$ nano ~/.oh-my-zsh/themes/agnoster.zsh-theme


  - 아래 파란색으로 된 부분만 추가해주면 된다.


...

## Main prompt

build_prompt() {

  RETVAL=$?

  prompt_status

  prompt_virtualenv

  prompt_aws

  prompt_context

  prompt_dir

  prompt_git

  prompt_bzr

  prompt_hg

  prompt_newline

  prompt_end

}


## multiline

prompt_newline() {

  if [[ -n $CURRENT_BG ]]; then

    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR

%(?.%F{$CURRENT_BG}.%F{red})❯%f"


  else

    echo -n "%{%k%}"

  fi


  echo -n "%{%f%}"

  CURRENT_BG=''

}


PROMPT='%{%f%b%k%}$(build_prompt) '






15. sudo 패스워드 없애기


  - 툭하면 sudo를 사용해야하는데, 자꾸 패스워드 입력하는 것이 귀찮으니 없애버리자.


$ sudo visudo


  - 원하는 계정에 대해서 아래와 같이 제일 밑에 라인을 추가하자


whatwant ALL=(ALL) NOPASSWD:ALL





16. NTP


  - 시간 자동 동기화 설정 여부를 확인해보자.


$ timedatectl status


                      Local time: 일 2020-12-27 03:10:03 KST

                 Universal time: 토 2020-12-26 18:10:03 UTC

                        RTC time: 토 2020-12-26 18:10:04

                      Time zone: Asia/Seoul (KST, +0900)

 System clock synchronized: no

                    NTP service: inactive

                RTC in local TZ: no


  - 위와 같이 "System clock synchronized: no"로 되어 있으면 이하 과정을 실행해야 한다.


$ sudo systemctl start systemd-timesyncd


$ sudo systemctl enable systemd-timesyncd


  - 다시 확인해보자


$ timedatectl status


                       Local time: 일 2020-12-27 03:17:33 KST

                  Universal time: 토 2020-12-26 18:17:33 UTC

                         RTC time: 토 2020-12-26 18:17:34

                       Time zone: Asia/Seoul (KST, +0900)

System clock synchronized: yes

                     NTP service: active

                  RTC in local TZ: no


  - 혹시라도 방화벽 이슈로 NTP 서버를 변경해야 하면 아래와 같이 하면 된다.


$ sudo nano /etc/systemd/timesyncd.conf


  - NTP 부분의 주석 삭제하고 아래와 같이 서버를 지정해주면 된다.


NTP=time.windows.com



반응형


대부분 이미 설치되어 있겠지만, 그래도 기본 환경을 맞추기 위해 필수 패키지들을 설치해보자.


$ sudo apt-get install build-essential curl file git



그리고, 본격적인 설치를 위해 다음 명령어를 실행하면 된다.


$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"




그리고 PATH 설정을 해줘야 하는데,

참고한 사이트와는 상황이 조금 다르다 보니 직접 찾아서 해봤다.


지금 사용하고 있는 쉘이 bash가 아니고, zsh 이다.

그래서... ^^


$ nano ~/.zshrc


기본은 주석처리 되어있는 "export PATH" 부분이 보이면 그냥 아래에 다음 줄을 추가해주면 되고

이미 PATH 설정을 사용하고 있으면 앞 부분에 brew 경로만 추가해주면 된다.


export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"

export MANPATH="/home/linuxbrew/.linuxbrew/share/man:$MANPATH"

export INFOPATH="/home/linuxbrew/.linuxbrew/share/info:$INFOPATH"



수정을 모두 했으면, 환경 설정을 다시 읽어들이고...


$ source ~/.zshrc




잘 되는지 확인을 해보려면...


$ brew install hello





반응형


최근 서버에 문제가 발생해서 ssh 접속을 하려고 했는데,

그만... 글쎄... 패스워드가 기억이 나지를 않는 것이다.


한창 서버 작업을 할 때에는 그냥 쉭쉭~ 입력해서 잘 사용했었는데...

1달 정도 지난 후에... 나의 머리와, 나의 손이 기억을 잊은 것이다.


그런데, 이러한 패스워드를 어디에 적어놓기에는 너무 찜찜해서... 뭔가 방법을 찾고 있던 와중에,

얼마 전에 어떤 밋업에 갔다가 알게된 재미있는 솔루션이 하나 있다 !!!



"pass"라는 이름의 오픈소스 프로젝트인데...

이름이 너무 평범하여 검색엔진으로 검색하기 너무 어렵다.

https://www.passwordstore.org/



0. 설치 환경

- 필자가 이후 과정을 진행한 환경은 다음과 같다.


$ lsb_release -a


No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 18.04.3 LTS

Release:        18.04

Codename:       bionic



1. 설치하기

- Ubuntu에서는 이미 패키지로 제공해주고 있었다.


$ sudo apt-get install pass


Reading package lists... Done

Building dependency tree

Reading state information... Done

The following additional packages will be installed:

  gnupg2 libice6 libqrencode3 libsm6 libxmu6 libxt6 qrencode tree x11-common xclip

Suggested packages:

  python libxml-simple-perl ruby

The following NEW packages will be installed:

  gnupg2 libice6 libqrencode3 libsm6 libxmu6 libxt6 pass qrencode tree x11-common xclip

0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.

Need to get 428 kB of archives.

After this operation, 1,575 kB of additional disk space will be used.

Do you want to continue? [Y/n]



2. GPG Key 생성

- 암호화를 위해 사용될 GPG key를 생성해놓자


$ gpg --gen-key


gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.


Note: Use "gpg --full-generate-key" for a full featured key generation dialog.


GnuPG needs to construct a user ID to identify your key.


Real name: whatwant

Email address: whatwant@gmail.com

You selected this USER-ID:

    "whatwant <whatwant@gmail.com>"


Change (N)ame, (E)mail, or (O)kay/(Q)uit? O

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.

We need to generate a lot of random bytes. It is a good idea to perform

some other action (type on the keyboard, move the mouse, utilize the

disks) during the prime generation; this gives the random number

generator a better chance to gain enough entropy.

gpg: /home/chani/.gnupg/trustdb.gpg: trustdb created

gpg: key 651Axxxx marked as ultimately trusted

gpg: directory '/home/chani/.gnupg/openpgp-revocs.d' created

gpg: revocation certificate stored as '/home/chani/.gnupg/openpgp-revocs.d/465Exxxx.rev'

public and secret key created and signed.


pub   rsa3072 2020-01-04 [SC] [expires: 2022-01-03]

      465Exxxx

uid                      whatwant <whatwant@gmail.com>

sub   rsa3072 2020-01-04 [E] [expires: 2022-01-03]



3. pass 초기화

- 위에서 입력했던 이메일 주소를 이용해서 초기화 하면 된다


$ pass init whatwant@gmail.com


mkdir: created directory '/home/chani/.password-store/'

Password store initialized for whatwant@gmail.com



4. git 설정

- 특이하게도 pass는 도구 차원에서 git을 지원한다.


$ pass git init


Initialized empty Git repository in /home/chani/.password-store/.git/

[master (root-commit) b3b0704] Add current contents of password store.

 1 file changed, 1 insertion(+)

 create mode 100644 .gpg-id

[master 6e3509f] Configure git repository for gpg file diff.

 1 file changed, 1 insertion(+)

 create mode 100644 .gitattributes


- 선택이긴하지만, 이왕이면 백업을 위해서라도 외부에 git repo를 하나 만들어 놓자.

- 그리고 그 git repo 주소를 등록해놓자.


$ pass git remote add origin git@github.com:whatwant/pass.git



5. password 입력하기

- 샘플로 하나 입력해보자


$ pass insert email/xxxx@naver.com


Enter password for email/xxxx@naver.com:

Retype password for email/xxxx@naver.com:

[master 4e6xxxx] Add given password for email/xxxx@naver.com to store.

 1 file changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 email/xxxx@naver.com.gpg


- commit도 같이 작성된 것을 볼 수 있다.



6. git 저장하기

- 원격 git 저장소에 보내보자


$ pass git push -u origin master


Counting objects: 10, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (6/6), done.

Writing objects: 100% (10/10), 1.25 KiB | 426.00 KiB/s, done.

Total 10 (delta 1), reused 0 (delta 0)

remote: Resolving deltas: 100% (1/1), done.

To github.com:whatwant/pass.git

 * [new branch]      master -> master

Branch 'master' set up to track remote branch 'master' from 'origin'.



7. password 확인하기

- 입력된 password를 확인하고 싶은 경우

- 화면에 노출되는 것이 싫은 경우, 또는 다른 곳에 붙여넣기를 하고 싶은 경우에는 "-c" 옵션을 사용하면 된다고 하지만...

  CUI 환경에서는 안되는 것으로 보인다. (GUI 환경에서는 되는 듯)


$ pass

Password Store

└── email

    └── xxxx@naver.com


$ pass email/xxxx@naver.com

xxxxxxxx


$ pass -c email/xxxx@naver.com

Error: Can't open display: (null)

Error: Could not copy data to the clipboard



8. Reference

https://git.zx2c4.com/password-store/about/#SIMPLE%20EXAMPLES

https://boxnwhis.kr/2017/04/27/how_to_manage_passwords_for_your_team.html



여러 PC에서 사용하기 위해서는 GPG Key를 관리할 방법도 별도로 찾아야할 듯 하지만,

password를 관리할 재미있는 방법을 찾은 듯 하여서 재미있다.


반응형

+ Recent posts