ハッカー御用達(?)の[Tails]をUSBブートして使ってみる。

# Tailsとは
- **トラッキング対策**ができる(多分)最強のOS
- 使用後にデータを全て削除することができる
- デフォルトではtorブラウザしか使えず、torproxyの設定がされている。
- Macアドレスも起動時に自動で変更してくれる。
- Pesistantvolumeのデータはを除き、ログやすべてのファイルが削除され初期化される。
- rootパスワードは設定されていない。ログイン時のwelcomescreenで設定する。
 
## usbインストール(Mac)
ブート用のusbはMacで作成しました。
[tails](https://tails.boum.org/install/mac/usb-download/index.en.html)
- imgファイルをダウンロード
- chromeの拡張機能を追加後、Verify Tailsをクリック
- MacにbalenaEtcherをダウンロードし、起動してimgファイルを選択する。ここでUSBファイルを選ぶと書き込みがされる。
- ブルースクリーンから起動

## Persistantvolume(電源を消してもデータが削除されないディレクトリ)の設定
私個人としては開発環境として初期化されてすぐに欲しいものが2つあります。
- ターミナルが最低限みやすいこと。今回はSolarized darkをデフォルトにした。)
- bashrcとvimrcが最低限あること。


### 起動時に最低限必要な設定をbashで自動化
OSとして使う際に最低限の水準を達成してほしいですが、毎回設定するのは面倒なので簡単なシェルスクリプトを書きました。


```bash:initial.bash
#!/bin/bash
mkdir ~/.vim
cp ~/Persistent/vimrc ~/.vim/vimrc
cp ~/Persistent/bashrc ~/.bashrc
source ~/.bashrc
git clone https://github.com/sigurdga/gnome-terminal-colors-solarized.git
cd gnome-terminal-colors-solarized/
./install.sh
```
このシェルスクリプトを実行することでbashrcとvimrcを適切な位置に配置しました。
#### bashrc

```bash:bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
# ... or force ignoredups and ignorespace
export HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

#if [ -f ~/.bash_aliases ]; then
#    . ~/.bash_aliases
#fi

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    eval "`dircolors -b`"
    alias ls='ls -F --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
alias lhS='ls -lhS'
alias lsl='clear && ls'

# convert caps ctrl
setxkbmap -model jp106 -layout jp -option ctrl:nocaps
```
#### vimrc

```
set title
set number "display number of the line
set ambiwidth=double
set tabstop=4 "tab=4
set expandtab "tab=hannkaku+space
set shiftwidth=4 "set tab=4 (read file)
set smartindent "auto indent
set list "display space character
set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
set nrformats-=octal
set hidden "don't use decimal system 8 wheh we use number stated with 0
set history=50 "The number of :command history
set virtualedit=block "It enables cursor motion in no character zone
set whichwrap=b,s,[,],<,> "cursor setting
set backspace=indent,eol,start "It enabales back space more wider area
set wildmenu
set noundofile "no.unfile
set nobackup "no~file
set hlsearch "add highligut /search

"emacs key-binding
imap <C-p> <Up>
imap <C-n> <Down>
imap <C-b> <Left>
imap <C-f> <Right>
nnoremap k gk
nnoremap j gj
nnoremap gk k
nnoremap gj j
nnoremap <ESC><ESC> :nohl<CR>
nnoremap x "_x
nnoremap s "_s
```

## 使用した感想
今回は、最低限の設定は自動化しましたがそれでも起動してすぐ使えないのはストレスに感じました。
また、メインOSで新たに発見したbashrc、vimrcの設定を更新するのもだいぶ面倒。
プライバシーと便利さのトレードオフとは難しいものだと改めて考えさせられました。