3 min read
鯖をDebianに移行した
初期設定のメモ書き。
今までLinux Mintを使っていたが、GUIはいらないしHDDも食われたくないと考えていた。
ある時Twitterで鯖沼の人から「ならDebian使えばいいのでは」ということを言われ、はっと気付いた。
なんで今まで気付かなかったんだろう。
素因数分解の問題を解いてる時に2で割れることを忘れていた時のような感情だった
環境
- VMware ESXi 6.0 update2
- Debian 8.7
Debianのインストール
公式からisoをDLしてそこからインストール
私はSSHサーバのみインストールで他のチェックを外しました
初期設定
最初はsudoも入ってないのでrootでいろいろ設定をする
apt update && apt install -y sudo ufw bash-completion open-vm-tools
usermod -G sudo USER
visudo #if need
ufw allow 22/tcp
ufw enable
rootでの作業はここまで。
ただしこのままではSSHでrebootなどする時にハングしてしまうので余裕があればこれらも一緒に入れちゃう
bash-completion
そのままだとbash completionが使えないのでbashの設定をいじる
/etc/bash.bashrc
コメントアウトを外す
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
# . /usr/share/bash-completion/bash_completion
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi
Script
start=`grep "#if ! shopt -oq posix; then" -n /etc/bash.bashrc | sed -e 's/:.*//g'`
end=`expr $start + 6`
sudo sed -e "$start,$end s/^#//g" -i /etc/bash.bashrc
PS1の変更
Linux MintのPS1に慣れているのでそっちに変更する
/etc/bash.bashrc
コメントアウト
PS1='${debian_chroot:+($debian_chroot)}u@h:w$ '
追記
if [[ ${EUID} == 0 ]] ; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
fi
Script
sudo su
sed -e 's/^PS1=/#PS1=/' -i /etc/bash.bashrc
echo -e "\n" >> /etc/bash.bashrc
echo 'if [[ ${EUID} == 0 ]] ; then' >> /etc/bash.bashrc
echo ' PS1='"'"'${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '"'" >> /etc/bash.bashrc
echo 'else' >> /etc/bash.bashrc
echo ' PS1='"'"'${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '"'" >> /etc/bash.bashrc
echo 'fi' >> /etc/bash.bashrc
exit
ユーザーの.bashrcも編集してあげないとちゃんと反映されない
ついでにaliasの開放(?)をしてあげる
Script
start=`grep '# set a fancy prompt (non-color, unless we know we "want" color)' -n ~/.bashrc | sed -e 's/:.*//g'`
end=`expr 1 + $(grep 'unset color_prompt force_color_prompt' -n ~/.bashrc | sed -e 's/:.*//g')`
sed -e "${start},${end}d" -i ~/.bashrc
sed \
-e "s/#alias grep='grep --color=auto'/alias grep='grep --color=auto'/" \
-e "s/#alias fgrep='fgrep --color=auto'/alias fgrep='fgrep --color=auto'/" \
-e "s/#alias egrep='egrep --color=auto'/alias egrep='egrep --color=auto'/" \
-e "s/#alias ll='ls -l'/alias ll='ls -al'/" \
-e "s/#alias la='ls -A'/alias la='ls -A'/" \
-e "s/#alias l='ls -CF'/alias l='ls -CF'/" \
-i ~/.bashrc
IP固定
/etc/network/interfaces
Sample
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.xxx
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-servers 192.168.1.1
dns-nameservers 192.168.1.1
全スクリプト
bash-completionとPS1変更のスクリプト
sudo su
start=`grep "#if ! shopt -oq posix; then" -n /etc/bash.bashrc | sed -e 's/:.*//g'`
end=`expr $start + 6`
sed -e "$start,$end s/^#//g" -i /etc/bash.bashrc
sed -e 's/^PS1=/#PS1=/' -i /etc/bash.bashrc
echo -e "\n" >> /etc/bash.bashrc
echo 'if [[ ${EUID} == 0 ]] ; then' >> /etc/bash.bashrc
echo ' PS1='"'"'${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '"'" >> /etc/bash.bashrc
echo 'else' >> /etc/bash.bashrc
echo ' PS1='"'"'${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '"'" >> /etc/bash.bashrc
echo 'fi' >> /etc/bash.bashrc
exit
start=`grep '# set a fancy prompt (non-color, unless we know we "want" color)' -n ~/.bashrc | sed -e 's/:.*//g'`
end=`expr 1 + $(grep 'unset color_prompt force_color_prompt' -n ~/.bashrc | sed -e 's/:.*//g')`
sed -e "${start},${end}d" -i ~/.bashrc
sed \
-e "s/#alias grep='grep --color=auto'/alias grep='grep --color=auto'/" \
-e "s/#alias fgrep='fgrep --color=auto'/alias fgrep='fgrep --color=auto'/" \
-e "s/#alias egrep='egrep --color=auto'/alias egrep='egrep --color=auto'/" \
-e "s/#alias ll='ls -l'/alias ll='ls -al'/" \
-e "s/#alias la='ls -A'/alias la='ls -A'/" \
-e "s/#alias l='ls -CF'/alias l='ls -CF'/" \
-i ~/.bashrc
SSHでのハング
SSHでsudo reboot
やsudo poweroff
するとSSHがハングする場合の対処法
sudo apt install libpam-systemd dbus
sudo service ssh restart
おわり
IP固定を書いたあとにsudo service networking restart
をするとIPが即変更されるが、一時的なものなので注意。 永続的に固定したいならsudo reboot
必須