トップページ -> コンピュータ設定 -> Ubuntu -> chroot で隔離された環境を作る(Ubuntu 上)
[サイトマップへ], [サイト内検索へ],

chroot で隔離された環境を作る(Ubuntu 上)

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ活用 教材(公開) サポートページ

ユースケース: Ubuntu で,新規ユーザと,隔離された開発環境を作りたい.そして,その新規ユーザのユーザ名とパスワードを用いて SSH でリモートログインし,その隔離された開発環境を自由に使いたい(仮想マシンとはさよならしたい)


前準備

Ubuntu のシステム更新

端末で,次のコマンドを実行.

sudo apt update
sudo apt -yV upgrade
sudo shutdown -r now

Ubuntu の隔離された開発環境の作成(debootstrap を使用)

  1. debootstrap のインストール
    sudo apt -yV install debootstrap
    

  2. Ubuntu の隔離された開発環境の作成

    ここでの設定

    終了まで,しばらく待つ

    sudo debootstrap --arch amd64 --variant buildd --include=ca-certificates,apt,wget,sudo bionic /home/aiubuntu http://jp.archive.ubuntu.com/ubuntu
    

  3. 終了の確認

  4. Ubuntu の隔離された開発環境を有効にし,「uname -a」で確認
    sudo chroot /home/aiubuntu bash
    uname -a
    exit
    

  5. /etc/apt/sources.list のコピー
    sudo cp /etc/apt/sources.list /home/aiubuntu/etc/apt/sources.list
    exit
    

  6. /home/aiubuntu/etc/fstab の設定

    これは,隔離された開発環境の中で,procfs を使うためのもの

    /home/aiubuntu/etc/fstab に「proc /proc proc defaults 0 0」を書き加える.


新規ユーザの作成

設定内容

アカウント(ユーザ名,パスワード)の追加

これは,本体のマシンで,SSHによるリモートログインの受付のため

sudo adduser --uid 1234 --home /home/ai ai

※ やり直すときは「sudo deluser ai」を実行して,アカウントを削除してからやり直す.

隔離された開発環境の中にホームディレクトリを作成.隔離された開発環境の中でアカウント(ユーザ名,パスワード)の追加

これは,隔離された開発環境の中で,sudo を実行したいときなどのため,隔離された開発環境の中でアカウント(ユーザ名,パスワード)を追加する.

※ 上で設定したパスワードと同じパスワードにする必要はない.ユーザID,ホームディレクトリ,ユーザ名は同じにすること.

sudo chroot /home/aiubuntu bash
sudo rm -rf /home/ai
sudo deluser ai
sudo adduser --uid 1234 --ingroup sudo --home /home/ai ai
exit

/home/aiubuntu/etc/sudoers の設定

これは,隔離された開発環境の中で,sudo を実行したいときのため.(必要がなければ,この操作は省略すること).

/home/aiubuntu/etc/sudoers に「Defaults visublepw」を書き加える.

ディレクトリの権限の設定

ssh を使ってのリモートログインを受け付けたい. ssh の定めにより,の所有者を root に,権限を「755」に設定する.

sudo chown root:root /home
sudo chmod 755 /home
sudo chown root:root /home/aiubuntu
sudo chmod 755 /home/aiubuntu
sudo chown root:root /home/aiubuntu/home
sudo chmod 755 /home/aiubuntu/home
sudo chown root:root /home/aiubuntu/home/ai
sudo chmod 755 /home/aiubuntu/home/ai

/etc/ssh/sshd_config の設定

SSH によるリモートログイン時に chroot が実行されるように,/etc/ssh/sshd_config に次の記述を追加

「ChrootDirectory /home/ai」は必須の設定.

Match User ai
        X11Forwarding yes
        AllowTcpForwarding yes
        ChrootDirectory /home/aiubuntu

/etc/ssh/sshd_config を変更したので sshd を再起動

sudo service sshd reload

試しに SSH を用いてログインしてみる

ssh ai@localhost



本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ)