ネットワークのプラグラムを学習する講義でLinuxについては本来なら各学生が
RaspberryPiを入手するのですが、コロナウイルス対応のため、遠隔講義になり、
まだRaspberryPiを学生が入手できていません。
そこで、インターネット上のLinuxを学生に使ってもらうことにしましたが、
ユーザを単に追加しただけでは、ルートディレクトリが見えたりするので
セキュリティ上問題があります。
これは、リモートワークで一つのLinuxを共有する場合にもおこる問題だと思い
ルートディレクトリを変更する手順をまとめてみました。
各ユーザに対してsshd_configに記述するのは面倒なのでグループで記述してみました。
CentOSでの設定ですが、RaspberryPiなどでも同様にできると思います。
やることは、KCGの学生のルートディレクトリを/home/KCGに変更することです。
つまりこの下に各学生のホームディレクトリ(/home/各学生ID)を構築するように
します。
以下の操作は、管理者(sudo)になってやるのが楽です
1.KCGの学生用グループの作成
groupadd KCG
mkdir /home/KCG
mkdir /home/KCG/home
2.ユーザの追加
ユーザ作成時にホームディレクトリを作成します。
useradd -m -d /home/KCG/home/各学生ID 各学生ID
3.グループへの所属
usermod -aG KCG 各学生ID
4.パスワード設定
passwd 各学生ID
5.必要なファイルのコピー
ルートディレクトリ変更後、sshを使用できるようにするために、各コマンドの
実行ファイル・関連ファイルを変更後のルートディレクトリ配下にコピーします。
取り合えずこのあたりで、足りなければ追加(下でチェックしてます)しましょう。
cd /home/KCG
cp -p -r /bin /home/KCG/bin
cp -p -r /lib /home/KCG/lib
cp -p -r /lib64 /home/KCG/lib64
mkdir usr
cp -p -r /usr/bin /home/KCG/usr/bin
cp -p -r /usr/lib /home/KCG/usr/lib
cp -p -r /usr/lib64 /home/KCG/usr/lib64
6.変更後のルートディレクトリの属性変更
変更後のルートディレクトリの所有者rootにします。
属性も755に変更します。
chown root:root /home/KCG
chmod 755 /home/KCG
7.動作確認
必要なコマンド(シェル)が動作するチェックのためにルートを変更してみます。
chroot /home/KCG
チェックが終わったら戻します
exit
(*)コマンドプロンプトの表示については後述します
上手く動かないときは、コピーしたモジュールが足りなと思いますので
コピーしてください。
8.ログイングループに対するルートディレクトリの変更
ログインするユーザのグループに対してルートを変更するように
/etc/ssh/sshd_configに追記します
Match Group KCG
ChrootDirectory /home/KCG
sshdを再起動します。
9.各ユーザのホームディレクトリ変更
usermod -d /home/各学生ID 各学生ID
これで、/home/KCG/home/各学生ID に作ったホームディレクトリが
ユーザには、/home/各学生IDと見えます。
作成したユーザでログインして確認をします。
pwdでカレントディレクトリを表示すると/home/各学生ID
(実体は/home/KCG/home/各学生ID)が表示されることが確認できます。
cd / でルート(実体は/home/KCG)へ移動することが確認できます。
cd ~ でホーム(実際には/home/KCG/home/各学生ID)へ移動することが確認できます。
補足(コマンドプロンプトの変更)
ここまでの対応ではコマンドプロンプトが-bash-4.2$などとなります。
cp -p -r /etc/bashrc /home/KCG/etc/
を実行します。これだけではユーザ名がでないのでユーザを追加後のpasswdを
コピーします。
cp -p -r /etc/passwd /home/KCG/etc/
これでプロンプトはいつものものになります。