0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Debianをインストール後の初期設定や私がよく使用するshellの処理

Last updated at Posted at 2021-03-28

私がDebian構築時に使用する処理のまとめ
※一つのshellを実行したら、環境構築が完了となるように調整は必須です
※設定は別ファイルにまとめてください

■よく使用する処理について

  • 実行したshllのディレクトリを取得
# /tmp/test/test.sh を実行した場合、DIR_CURに /tmp/test/ を設定ます
DIR_CUR=$(dirname "${BASH_SOURCE:-$0}")"/"
# 実行したshellと同じディレクトリの variables.sh を読み込む場合
source ${DIR_CUR}variables.sh
  • 複数行の文字列をファイルに出力
{ \
    echo '一行目'; \
    echo '二行目'; \
} > /tmp/aaa.txt

■設定

  • 日本語周りの設定(他にもありますので、自身の環境の合わせてください)
{ \
    echo 'case $TERM in'; \
    echo '  linux)LANG=C ;;'; \
    echo '  *)LANG=ja_JP.UTF-8 ;;'; \
    echo 'esac'; \
} >> /etc/bash.bashrc
  • viの設定(好みによると思います)
echo 'set nocompatible' >> ~/.vimrc
  • Debianの設定
# サスペンドさせない
{ \
    echo 'HandleLidSwitch=ignore'; \
} >> /etc/systemd/logind.conf
# Debian GUI環境にのみ存在
WORK_FILE=/etc/gdm3/greeter.dconf-defaults
if [ -f ${WORK_FILE} ]; then
  sed -i \
        -e 's/^# \(sleep-inactive-ac-timeout=\).\+$/\10/' \
        -e 's/^# \(sleep-inactive-battery-timeout=\).\+$/\10/' \
        ${WORK_FILE}
fi

# GUIがある場合はCUIに切り替え
systemctl set-default multi-user.target
  • VirtualBoxにDebianをインストール後、固定IPに変更にする
# ネットワーク
INTERFACES_VB_ADDR=192.168.1.10
INTERFACES_VB_NETWORK=192.168.1.0
INTERFACES_VB_NETMASK=255.255.255.0
INTERFACES_VB_GATEWAY=192.168.1.1

# ネットワークのデバイス名を取得
DEVICE_NAME=$(ip route | sed -n 1P  | sed 's/^.\+dev\s\([a-z0-9]\+\).\+/\1/')

sed -i \
      -e "s/\(iface ${DEVICE_NAME} inet dhcp\)/#\1/" \
      /etc/network/interfaces \
    && { \
        echo "auto  ${DEVICE_NAME}"; \
        echo "iface ${DEVICE_NAME} inet static"; \
        echo "  address ${INTERFACES_VB_ADDR}"; \
        echo "  network ${INTERFACES_VB_NETWORK}"; \
        echo "  netmask ${INTERFACES_VB_NETMASK}"; \
        echo "  gateway ${INTERFACES_VB_GATEWAY}"; \
        echo "  dns-nameservers 8.8.8.8 ${INTERFACES_VB_GATEWAY}"; \
    } >> /etc/network/interfaces.d/local

■アプリケーションの設定

  • Cronの設定を変更
# 設定(基本的に設定は共通設定ファイルから読込)
MAIL_SYSTEM=system@test.local

WORK_MAIL_SYSTEM=$(echo ${MAIL_SYSTEM} | sed -e 's/\./\\\./g')

sed -i \
    -e "s/^\(PATH=.\+\)$/\1\nMAILTO=\"${WORK_MAIL_SYSTEM}\"/" \
    /etc/crontab
  • ユーザの設定(SSHはOSインストール時に有効)
# OS作成時のユーザ
USER_ID_DEFAULT=vb-user
# グループ
USER_GROUP_DEVELOPER=developer

sed -i \
      -e 's/^#\(PermitRootLogin\s\).\+$/\1forced-commands-only/' \
      /etc/ssh/sshd_config \
    && groupadd ${USER_GROUP_DEVELOPER} \
    && usermod -aG ${USER_GROUP_DEVELOPER} ${USER_ID_DEFAULT}
  • Postfixをインストール
# header_checks で外にメールが出ていかないようにします
# その他設定は各自の環境に合わせます
apt-get install -y \
      libsasl2-modules \
      postfix \
      syslog-ng \
    && mv /etc/postfix/main.cf /etc/postfix/main.cf.bk \
    && { \
        echo '/^To:.*@test.local/ OK'; \
        echo '/^To:.*/ REDIRECT system@test.local'; \
    } > /etc/postfix/header_checks \
    && { \
        echo 'alias_database = hash:/etc/aliases'; \
        echo 'alias_maps = hash:/etc/aliases'; \
        echo 'command_directory = /usr/sbin'; \
        echo 'daemon_directory = /usr/lib/postfix/sbin'; \
        echo 'data_directory = /var/lib/postfix'; \
        echo 'header_checks = regexp:/etc/postfix/header_checks'; \
        echo 'html_directory = no'; \
        echo 'inet_interfaces = localhost'; \
        echo 'inet_protocols = ipv4'; \
        echo 'mail_owner = postfix'; \
        echo 'mailq_path = /usr/bin/mailq'; \
        echo 'manpage_directory = /usr/share/man'; \
        echo 'mydestination = localhost'; \
        echo 'myhostname = test.local'; \
        echo 'newaliases_path = /usr/bin/newaliases'; \
        echo 'queue_directory = /var/spool/postfix'; \
        echo 'sendmail_path = /usr/sbin/sendmail'; \
        echo 'setgid_group = postdrop'; \
        echo 'unknown_local_recipient_reject_code = 550'; \
    } > /etc/postfix/main.cf
  • VirtualBoxの設定
# mount
DIR_MOUNT_ROOT=/media/

DEBIAN_FRONTEND=noninteractive \
    apt-get install -y \
          build-essential \
          module-assistant \
    && echo Y | m-a prepare \
    && mount ${DIR_MOUNT_ROOT}cdrom

# VBox -> 共有フォルダ設定
sh ${DIR_MOUNT_ROOT}cdrom/VBoxLinuxAdditions.run

# VBox -> 共有フォルダ設定でrebootは必須
/sbin/reboot

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?