samba/ユーザ登録にて、samba-toolコマンドで作成したユーザは、
「--home-drive=z」、「--home-directory="\\c\home\illya"」オプションでwindows領分のホームディレクトリが与えられる。
同時に、「--unix-home=/home/illya」オプションでLinux領分のホームディレクトリが与えられる。
*--unix-homeはsamba-4.2から実装された
関係を表にすると下記になる。
windows | posixAccount(/etc/passwd) | ||||||
name | HOME_DRIVE | HOME_DIRECTORY | UID | GID | GECOS | directory | shell |
illya | Z | \\c\home\illya | 1002 | 2001 | Illyasviel von Einzbern | /home/illya | /bin/bash |
saber | Z | \\c\home\saber | 1003 | 2001 | saber | /home/saber | /bin/bash |
*smb.confの[homes]オプションは使用しないのでWindows側は \\c\home\<ユーザ名> となる samba#hf59c442
そのままだと、ドメインコントローラのHDDに、これらの領域が作られてしまう。
その場合、エキスプローラ―でACLsの定義が行えるが、できればドメインコントローラの他に、
別途専用なファイルサーバを用意して、そこにユーザのホームディレクトリを配置することを考えてみた。
こんな感じのを想定
その場合、WindowsクライアントはホームフォルダをDCに求めずに、ファイルサーバ側へ求めた方が効率的かと思われる。
故にsamba-toolコマンドでユーザ作成の際、「--home-directory="\\share\home\illya"」とする。
*この辺はDFSを使えばもっとすっきりするのかな
関連:スキーマ拡張でautofsをADで扱うsamba/ホームディレクトリ/autofs
データストレージ用のマシンはCentOS 7 として最小構成で構築、
そしてsamba/Linux参加 に示したようにメンバーサーバに仕立てます。
ホスト名 | IP | OS | NFS対象 |
share.sybyl.local | 192.168.0.48 | CentOS 7.2 | /dev/sdb(/home) |
[root@share ~]# yum install chrony samba-common sssd samba
[root@share ~]# cat << _EOF_ > /etc/samba/smb.conf
[global]
workgroup = SYBYL
security = ADS
realm = SYBYL.LOCAL
encrypt passwords = yes
_EOF_
[root@share ~]# net ads join osName=CentOS osVer=7.1 -Uadministrator
/dev/sdbをpartedで全体を区切って(/dev/sdb1)も、そのまま丸ごと(/dev/sdb)でも構わいがxfsでフォーマットして/homeにマウントする。
[root@share ~]# mkfs -t xfs /dev/sdb
[root@share ~]# blkid /dev/sdb
/dev/sdb: UUID="6249dce6-c69b-4588-8ebc-d753684e2603" TYPE="xfs"
[root@share ~]# echo "UUID=6249dce6-c69b-4588-8ebc-d753684e2603 /home xfs defaults 0 0" >> /etc/fstab
[root@share ~]# mount -a
[root@share ~]# df -Th /home
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
/dev/sdb xfs 32G 33M 32G 1% /home
[root@share ~]#
そしてこの /home を拠出する。/etc/exportsは従来形式で書き上げる
[root@share ~]# cat << _EOT_ > /etc/exports
/home 192.168.0.0/24(rw,no_root_squash)
_EOT_
[root@share ~]#
っで、nfsを導入する
[root@share ~]# yum install nfs-utils
NFSv4を動かすので
[root@share ~]# systemctl enable rpcbind.service nfs-server.service rpc-statd.service nfs-idmapd.service
[root@share ~]# systemctl start rpcbind.service nfs-server.service rpc-statd.service nfs-idmapd.service
[root@share ~]# journalctl
*journalctl でログを確認
c.sybyl.localからNFSマウントを試みると
[root@c ~]# mount -t nfs share:/home /home
とマウント可能となる。
他のLinuxクライアントも同様に share:/home を/homeにマウントさせる。
既に share:/home をマウントしているので、samba/ユーザ登録のように「samba-tool user add」でユーザを作成後
[root@c ~]# cp -r /etc/skel /home/<ユーザ名>
[root@c ~]# chown -R <UID>:<GID> /home/<ユーザ名>
とホームディレクトリを作る。
*別に、share.sybyl.localにてホームディレクトリを作成しても構わない
shareホストのsmb.confに下記を追記する。
[root@share ~]# vi /etc/samba/smb.conf
(略)
[home]
path = /home/
read only = no
(略)
[root@share ~]# systemctl start smb
既にアカウントを作成済みで、ホームフォルダ「--home-directory="\\share\home\illya"」のみを変更するなら
リモートサーバ管理ツールのADUCにて「プロファイル」欄の「ホームフォルダ」を修正する。
この際、
と言われる。
これはshareにドメインのadministratorのアカウントがないため。member serverだと、このアカウントは配信されない。
「ホームフォルダ」で新規のフォルダを作成しての、そのプロパティーを開くと
と表現される。ACLを駆使したフォルダを用意する際には注意が必要
ちなみに、DCでホームフォルダを作成すると、
とシステム側のアカウントも入り込んでくる。