ユーザーホームフォルダ

提供: 雑廉堂Wiki

はじめに

ホームフォルダには、個々のアカウントのファイルが含まれています。Sambaを使用すると、ネットワークユーザーが自分のファイルを、ファイルサーバー上の自分のホームフォルダーに保存できるように、ディレクトリを共有できます。

このドキュメントでは、\\server\user_name\パスを使用して、ユーザーのホームディレクトリを動的に共有する、Sambaのビルトインの[homes]セクションを使用しません。これは特定のシナリオでは役に立ちますが、いくつかの欠点があります。

  • Windowsはこの機能をサポートしていません。また、Active Directory(AD)でのフォルダリダイレクトなどの特定の設定では代わりに回避策が必要になり、公式のソリューションを使用できません。
  • 新しい各ユーザーのホームディレクトリを手動で作成する必要があります。
  • [homes]はActive Directory (AD) ドメインコントローラ(DC)上での実行はサポートされていません。

以下では、ホームフォルダを含んでいるディレクトリは、共有名usersを使用して共有されます。各ユーザーのホームディレクトリは、\\server\users\user_nameのような感じで、\\server\users\共有のサブディレクトリとして作成されます。これはMicrosoft Windowsの環境で使われているのと同じフォーマットであり、追加の設定を要しません。

Sambaファイルサーバーで共有を設定する

WindowsのACLを使う

ホームディレクトリをホストする共有に、拡張アクセスコントロールリスト(ACL)を設定することは、手動でユーザーのホームフォルダを作成、アクセス許可を設定することなしに、Active Directory ユーザーとコンピュータに新しいユーザーを作成することを可能にします。

Sambaファイルサーバー上でユーザーのホームフォルダーをホストするための共有を作成するには、たとえばusersを使用します:

  • 共有の権限:
Principal Access
Domain Users Change
Domain Admins Full Control
  • users共有のルートのファイルシステムのアクセス許可:
Principal Access Applies to
Domain Users* Read & execute This folder only
CREATOR OWNER Full control Subfolders and files only
Domain Admins Full control This folder, subfolders and files
* グループのメンバーがユーザーのプロファイルをその共有に格納することを可能にするために、別のグループを設定することもできます。異なるグループを使用する場合は、前の例のDomain Usersに表示されているように権限を適用してください。
共有のルートで権限の継承が無効になっていることを確認します。[セキュリティの詳細設定]ウィンドウの許可エントリに継承元列にパスが表示されている場合は、[継承を無効にする]ボタンをクリックします。 Windows 7では、このオブジェクトの親からの継承可能なアクセス許可を含めるチェックボックスをオフにして、同じ設定を設定します。
Home Folder File System ACLs.png
Samba共有では、ファイルシステムACLのSYSTEMアカウントを省略できます。詳細は、The SYSTEM Accountを参照してください。

これらの設定により、Domain Adminsグループのメンバーは、Active Directoryユーザーとコンピュータアプリケーションでユーザーのホームフォルダを設定できます。これにより、ホームフォルダが自動的に作成され、正しいアクセス許可が設定されます。

POSIX ACLを使用する

Windowsのアクセス制御リスト(ACL)を使用する代わりに、SambaサーバーでPOSIX ACLを使用して共有を設定できます。 ただし、POSIX ACLを使用して権限を設定する場合は、新しいユーザーごとにホームディレクトリを手動で作成し、権限を設定する必要があります。

たとえば、users共有を作成するには:

  • smb.confファイルに次の共有設定セクションを追加します:
 [users]
         path = /srv/samba/users/
         read only = no
         force create mode = 0600
         force directory mode = 0700
使用されるパラメータの詳細については、smb.conf(5) のマニュアルページの説明を参照してください。
共有の名前としてhomesを使用しないでください。 詳細については、 はじめにを参照してください。
  • ディレクトリを作成し、正しい権限を設定してください:
# mkdir -p /srv/samba/users/
# chgrp -R "Domain Users" /srv/samba/users/
# chmod 2750 /srv/samba/users/
ドメインでは、 Domain Users グループはグループで、すべてのドメインユーザーアカウントがそのメンバーです。 あるいは、ドメイン以外の環境を実行している場合は、ローカルに存在する任意のグループに設定できます。 ただし、共有にアクセスするには、ユーザーアカウントがこのグループのメンバーである必要があります。
  • Sambaをリロード:
# smbcontrol all reload-config

新しいユーザのホームフォルダを作成する

Windows ACLを使用する

Active Directoryユーザーとコンピュータアプリケーションを使用している場合は、ユーザーのホームディレクトリが自動的に作成され、アプリケーションでユーザーフォルダへのパスを設定すると正しいアクセス許可が適用されます。 Active Directoryユーザーとコンピュータを使用していない場合は、フォルダを手動で作成して正しい権限を設定する必要があります。 例えば;

  • \\server\users\共有に新しいフォルダを作成する権限を持つアカウントを使用してWindowsマシンにログインします。
  • \\server\users\共有に移動します。
  • ユーザーの新しいホームフォルダを作成します。
  • フォルダのアクセス制御リスト(ACL)にユーザを追加し、そのユーザにフルコントロールを付与します。 詳細については、フォルダへのACLの設定を参照してください。

POSIX ACLを使用する

POSIXアクセスコントロールリスト(ACL)を使用してusers共有を設定するときは、新しいユーザーごとにホームフォルダを手動で作成する必要があります。 demoユーザーのホームフォルダを作成するには:

  • ディレクトリを作成:
# mkdir /srv/samba/users/demo/
  • 次の権限を設定して、demoユーザーのみがディレクトリにアクセスできるようにします:
# chown user_name /srv/samba/users/demo/
# chmod 700 /srv/samba/users/demo/

ホームフォルダをユーザに割り当てる

Active Directoryの場合

Active Directoryユーザーとコンピュータ(ADUC)を使用する

Active Directoryでは、Active Directoryユーザーとコンピュータ Windowsアプリケーションを使用して、ユーザーのホームフォルダへのパスと割り当てられたドライブ文字を設定できます。 リモートサーバー管理ツール(RSAT)がインストールされていない場合は、 RSATのインストールを参照してください。

\\server\users\demo\パスをホームフォルダとしてdemoアカウントに割り当てるには:

  • ユーザーアカウントを編集できるアカウントを使用してコンピューターにログインします。
  • Active Directoryユーザーとコンピュータアプリケーションを開きます。
  • demoアカウントを含むディレクトリコンテナに移動します。
  • demoユーザーアカウントを右クリックして、プロパティを選択します。
  • [プロフィール]タブをクリックします。
  • [Connect]を選択します。Windowsがマップされたホームフォルダを割り当て、Toフィールドにホームフォルダへのパスを入力します。
ADUC Set Home Folder.png.
  • OKをクリック

ホームフォルダが作成されていないという設定を保存するときに警告が表示された場合:

  • Windowsのアクセス制御リスト(ACL)を使用して共有を設定すると、users共有のアクセス許可が正しく設定されませんでした。 この問題を解決するには、 Windows ACLの使用で説明されている権限を設定します。
  • あなたはPOSIX ACLを使って共有を設定した。 問題を解決するには、ディレクトリを手動で作成してください。 新規ユーザーのホームフォルダーの作成 - POSIX ACLの使用を参照してください。

グループポリシー設定を使用する

グループポリシー設定を使用して、設定を組織単位(OU)またはドメインに割り当てることができます。これにより、たとえば、OUまたはドメイン内のすべてのユーザーにホームフォルダパスを自動的に割り当てることができます。アカウントを別のOUまたはドメインに移動すると、設定は削除または更新されます。 この方法を使用すると、各ユーザーアカウントに手動で設定を割り当てる必要はありません。

各ユーザーのホームフォルダーとして\\server\users\user_nameパスを自動的に割り当てるドメインのグループポリシーオブジェクト(GPO)を作成するには、次の手順を実行します。

  • ADドメインのAdministratorアカウントなど、グループポリシーを編集できるアカウントを使用してコンピュータにログインします。
  • グループポリシー管理コンソールを開きます。 このコンピュータにリモートサーバー管理ツール(RSAT)がインストールされていない場合は、 RSATのインストールを参照してください。
  • 自分のADドメインを右クリックして[このドメインにGPOを作成し、ここにリンク]を選択します。
GPMC Create GPO.png
  • Home Folders on serverのようにGPOの名前を入力します。 新しいGPOがドメインエントリの下に表示されます。
  • 新しく作成したGPOを右クリックして[編集]を選択し、グループポリシー管理エディタを開きます。
  • ユーザー設定→に移動します。 設定 Windowsの設定ドライブマップエントリ
  • [ドライブマップ]エントリを右クリックして[新規]を選択し、→ 割り当てられたドライブ
  • 以下を設定してください。
  • Generalタブで:
  • アクション:作成
  • 場所:\\server\users\%LogonUser%
ユーザーがログインすると、Windowsは%LogonUser%変数を自動的に置き換えます
  • 再接続を選択
  • ラベル:文字列を入力してください。 たとえば、 Home
  • 使用:ホームフォルダが割り当てられているドライブ文字を選択します。
  • Common タブで:
  • ログオンしたユーザーのセキュリティコンテキストで実行する(ユーザーポリシーオプション)を選択します。
GPME Home Drive Properties.png
  • OKをクリック
  • グループポリシー管理エディタを閉じます。GPOは自動的にドメインコントローラ(DC)のSysvol共有に保存されます。
  • グループポリシー管理コンソールを閉じます。

ポリシーはOUあるいはドメインのユーザーに適用され、ポリシーは次回のログオン時に割り当てられます。

ドメインコントローラでldbeditを使用する

ドメインコントローラ(DC)上で、例えば、demoアカウントに対してホームフォルダーとして\\server\users\demoパスを割り当て、かつ割り当てたドライブレターにH:をセットするには:

  • demoアカウントを編集:
# ldbedit -H /usr/local/samba/private/sam.ldb 'sAMAccountName=demo'
  • アカウントの属性がエディタで表示されます。以下の属性と値を一覧の最後に追加してください:
homeDrive: H:
homeDirectory: \\server\users\demo\
  • 変更を保存します。

設定は、次回そのユーザーがログインする際に適用されます。

NT4ドメインで

NT4ドメインで、ホームフォルダーのパスとして\\server\users\%Uをセットし、ドライブレターがH:のドライブにマップするには:

  • 以下のパラメータを<conf>smb.conf</conf>ファイルの[global]セクションに追加します:
logon drive = H:
logon home = \\server\users\%U
ドメインメンバーがログインする際に、Sambaは変数%Uをセッションユーザ名で自動的に置き換えます。詳細については、smb.conf(5)のマニュアルページのVariable Substitutionsセクションを参照してください。
  • Sambaをリロード:
# smbcontrol all reload-config

非ドメイン環境

Windows Professional あるいは上位のエディション

Sambaサーバとクライアントがドメインの一部でない場合、ローカルユーザーアカウントのプロパティにユーザーホームフォルダーのマッピングを設定してください:

  • ローカルのAdministratorsグループに属しているアカウントを使用して、Windowsマシンにログオンしてください。
  • lusrmgr.msc(ローカルユーザーとグループ)を開いてください。
Windows Home editionでは、lusrmgr.mscは利用できません。


  • 左側のナビゲーションで、ユーザーをクリックします。
  • ホームフォルダーを割り当てたいアカウントを右クリックし、プロパティを選択します。
  • プロファイルタブに移動します。
  • 接続ドライブを選択し、マップされたホームフォルダにドライブレターを割り当て、パスフィールドにホームフォルダのパスを入力してください。
  • OKをクリックします。

全てのWindowsクライアントのそれぞれのユーザーに手動でマッピングを設定する必要があります。


Windows Home Editionを使用

Windows Homeエディションは、ローカルアカウントのプロパティでユーザーのホームフォルダーのマッピングを設定するために必要なアプリケーションを提供しません。 代わりに、各ユーザーが手動でドライブを割り当てる必要があります:

  • ホームフォルダをマッピングする必要があるユーザーとしてWindowsマシンにログオンします。
  • コマンドプロンプトを開きます。
  • たとえば、\\server\users\demo\フォルダをH:ドライブ文字にマップするには、次のように入力します。
> net use H: \\server\users\demo\ /persistent:yes

ユーザーがログインすると、ユーザーのホームフォルダが自動的に接続されます。自動マッピングを停止するには、ドライブを取り外します。 例えば:

> net use H: /delete