役立つ方法はたくさんあります:
- 完全なホーム ディレクトリを削除し、
/etc/skel
からすべてのファイルをコピーします。 ホームディレクトリに戻ります。後で権限を変更してください。 - システムを仮想マシンに配置し、スナップショットを作成して、レッスン 1 の後にスナップショットに戻す
- RHEL でキオスク モードのようなものを見つけます。 Ubuntu には、ログオフ中にホームを自動的に復元するようなものがあります
- ホームを btrfs ファイルシステムに置き、スナップショットを作成し、レッスン 1 の後に元に戻します
tar
レッスン前のホーム ディレクトリ、後でホームを削除、tar
から復元- ...
また、来週結果が必要な場合は、Puppet/Chef などの他のツールを学習するのは少し多すぎます。
すべての生徒の UID が 1000 から 65000 の間であるとしましょう
このような簡単なワンライナーが機能します。 Awk は、範囲内のすべてのユーザーに対して rsync コマンドと chown コマンドを出力します。 awk の出力を bash に送信すると、すべてのコマンドが実行され、ディレクトリと権限がリセットされます。
# see what will happen.
awk 'BEGIN{FS=":"} $3 >= 1000 && $3 <=65000 { print "rsync --delete -v -r /etc/skel/ " $6 "/ ; chown -R " $1 ":" $1 " " $6;}' /etc/passwd
# actually run the commands to reset all users matched by awk.
bash <( awk 'BEGIN{FS=":"} $3 >= 1000 && $3 <=65000 { print "rsync --delete -v -r /etc/skel/ " $6 "/ ; chown -R " $1 ":" $1 " " $6;}' /etc/passwd )
ログイン マネージャーに gdm を使用している場合は、次のようなファイルを追加できます:/etc/gdm/PostSession/Default
#!/bin/sh
if [[ "$USER" != "" ]]; then
rm -rf /home/$USER
cp -r /etc/skel /home/$USER
chown -R $USER:$USER /home/$USER
fi