GNU/Linux >> Linux の 問題 >  >> Linux

Linux ユーザーのホーム ディレクトリのクリアとデフォルトへのリセットを自動化するにはどうすればよいですか?

役立つ方法はたくさんあります:

  • 完全なホーム ディレクトリを削除し、/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

Linux
  1. Linuxでホームディレクトリのユーザーアカウントを削除する方法

  2. Linuxでカスタムホームディレクトリを使用してユーザーを作成する方法

  3. Linuxでユーザーをロックおよびロック解除する方法

  1. LinuxでデフォルトのApache「DocumentRoot」ディレクトリを変更する方法

  2. LinuxまたはUNIXでユーザーのホームディレクトリを見つける方法は?

  3. Linux コンピューターから Active Directory ユーザー属性を一覧表示するにはどうすればよいですか?

  1. Linuxでユーザーパスワードの有効期限とエージングを管理する方法

  2. Linuxでユーザーグループを作成および削除する方法

  3. Linuxでディレクトリとフォルダを削除する方法は?