samba4/ホームディレクトリ/NFS設定

NFSサーバが1台なら、クライアントマシンはfstabを調整してNFSマウントすればいい。
だが、NFSサーバが複数台でユーザのホームディレクトリを供給しているなら、nisのauto.master/auto.homeのような構成が必要である。
*iSCSIで複数台のNFSサーバを集約した中央NFSサーバなんて手法もあるようだけど...

ここではsamba4ADDCのスキーマを拡張して、NISのauto.master/auto.homeのようなautofs機構を持たせる
参照先
https://wiki.samba.org/index.php/Samba_AD_Schema_Extenstions
http://linuxcostablanca.blogspot.com.es/2013/09/samba4-autofs-with-rfc2307bis-schema.html

samba4ADDC のスキーマを拡張して autofs の定義枠を作る

拡張する前にsamaba4を停止して、バックアップを取得する

[root@c ~]# yum install libsss_autofs
[root@c ~]# /etc/init.d/samba stop
[root@c ~]# (cd /opt && gtar cvfz samba-4.1.11.cerius.tar.gz ./samba )

そして、まずは下記3つの属性(Attribute Types)を追加する(attr.ldif)。

  • dn: CN=automountMapName,CN=Schema,CN=Configuration,DC=cerius,DC=local
  • dn: CN=automountKey,CN=Schema,CN=Configuration,DC=cerius,DC=local
  • dn: CN=automountInformation,CN=Schema,CN=Configuration,DC=cerius,DC=local
[root@c ~]# /opt/samba/bin/ldbmodify -H /opt/samba/private/sam.ldb attr.ldif \
     --option="dsdb:schema update allowed"=true
Modified 3 records successfully
[root@c ~]#

次に、下記2つのオブジェクトクラスを加える(class.ldif)。

  • dn: CN=automountMap,CN=Schema,CN=Configuration,DC=cerius,DC=local
  • dn: CN=automount,CN=Schema,CN=Configuration,DC=cerius,DC=local
[root@c ~]# /opt/samba/bin/ldbmodify -H /opt/samba/private/sam.ldb class.ldif \
     --option="dsdb:schema update allowed"=true
Modified 2 records successfully
[root@c ~]#

これでスキーマの拡張は完了で、samba4を再起動させる。

[root@c ~]# /etc/init.d/samba start

samba4ADDC に autofs データを登録する

目下の各ユーザは下記のように定義され、

windowsposixAccount(/etc/passwd)
nameHOME_DRIVEHOME_DIRECTORYUIDGIDGECOSdirectoryshell
illyaZ\\c\home\illya10022001Illyasviel von Einzbern/home/CERIUS/illya/bin/bash
saberZ\\c\home\saber10032001saber/home/CERIUS/saber/bin/bash

illya、saberの各ホームディレクトリは /home/CERIUS/{illya,saber} と表示されるが、実態は

auto.home
nameNFSオプションURL備考
illya-rwshare:/export/CERIUS/illya
saber-rwnfs-1:/export/CERIUS/saber

と別々のNFSサーバに存在するとする。*/exportをexportfsにします。あとNFSv4で行う
それゆえauto.masterは

auto.master
mount pointNISマップオプション
/home/CERIUSauto.home--timeout 60

となる。

これら情報をsamaba4ADDCに登録する。まずsamba4ADDCにその受け皿を作ります。
この一連のデータは、新たに組織単位(OU)「automount」の配下に登録させます。組織単位(OU)「automount」はさらに「auto.master」と「auto.home」の2つの組織単位(OU)を持つ。automount.ldif auto.master.ldif auto.home.ldif

[root@c ~]# /opt/samba/bin/ldbmodify --url=/opt/samba/private/sam.ldb automount.ldif
[root@c ~]# /opt/samba/bin/ldbmodify --url=/opt/samba/private/sam.ldb auto.master.ldif
[root@c ~]# /opt/samba/bin/ldbmodify --url=/opt/samba/private/sam.ldb auto.home.ldif

windowsのリモートサーバ管理ツール「ActiveDirectoryユーザとコンピュータ」には下図のようになる。
2014y08m31d_224330946.png

そして、「auto.master」と「auto.home」に登録する値をldifを用意して登録する。auto.master.value.ldifauto.home.value.ldif

[root@c ~]# /opt/samba/bin/ldbmodify --url=/opt/samba/private/sam.ldb auto.master.value.ldif
[root@c ~]# /opt/samba/bin/ldbmodify --url=/opt/samba/private/sam.ldb auto.home.value.ldif
[root@c ~]#

注意 「auto.master」と「auto.home」に値を登録しても「ActiveDirectoryユーザとコンピュータ」には変化はありませんので、ご了承ください。確認はリモートサーバ管理ツールの「ADSIエディタ」で出来ます。
2014y09m01d_225448279.png

autofs データを利用する

これまでで samaba4ADDC に autofsのデータを登録した。次に、この登録したデータを実際に autofs で使用してみます。
具体的には

  • sssd.conf
    samba4ADDCのアカウント情報を引き出していたが、autofs情報も引き出すように修正を加える
  • nsswitch.conf
    automountの参照先をsssとする

の2か所を調整します。この調整がないとメンバサーバであってもautofsは利用できません

まず一つ目、sssdの設定ファイルsssd.confにautofsの項目を加えます。
次に、samba4ADDCに格納されたautofs情報をsssd経由でautomountに渡すパッケージ(libsss_autofs)をインストールして、
authconfig認証をリセット。nisを排除後、sssdを有効にします。

[root@c2 ~]# yum install libsss_autofs
 
[root@c2 ~]# env LANG=C authconfig --useshadow --disablemd5 --disablenis --disableldap --disableldapauth \
--disablesmartcard --disablerequiresmartcard --disablefingerprint --disablekrb5 --disablewinbind \
--disablewinbindauth --disableipav2 --disablehesiod --disablesssd --disablesssdauth --disablecache \
--enablelocauthorize --update
 
[root@c2 ~]# env LANG=C authconfig --enablesssd --enablesssdauth --update
[root@c2 ~]# /etc/init.d/sssd start
[root@c2 ~]# chkconfig sssd on
[root@c2 ~]# chkconfig ypbind off

*ypbindの自動起動は停止しておきます。

二つ目は、/etc/nsswitch.confのautomount部分で参照先を修正します。

[root@c2 ~]# vi /etc/nsswitch.conf
(略)
passwd:     files sss
shadow:     files sss
group:      files sss
hosts:      files dns
automount:  sss                    *filesから sss へ変更
(略)
[root@c2 ~]# yum install autofs
[root@c2 ~]# chkconfig autofs on
[root@c2 ~]# /etc/init.d/autofs start

これで完了。

っでテスト

[foo@c ~]$ ssh -l illya c2
illya@c2's password:
[illya@c2 ~]$ pwd
/home/CERIUS/illya
[illya@c2 ~]$ df -h .
Filesystem            Size  Used Avail Use% Mounted on
share:/export/CERIUS/illya
                       50G  512K   48G   1% /home/CERIUS/illya
[illya@c2 ~]$

メモCenOS6.5は、libsss_autofsパッケージでsssd経由でautomountが利用できる。
注意CentOS5は、autofs-5.0.1 に lookup_sss.so 機能がなく、sssd-1.5.1 にも autofs 機能が付与されてないので動きません。
CentOS5でどうしてもsamba4ADDC管轄autofsを使うのなら、ldap経由で使用するしかないみたい。まあCnetOS5のみautofsをNISで配ればいいのかも。samba4/ホームディレクトリ/NFS設定/autofs/CentOS5

NFSv4での場合

NFSv4でkrb5で試してみたが、できなかった。
CentOS6だから?半端なくハードルが高くて無理。基本的事項を押さえてないと無理みたい。
kerberos関係を習得してから再チャレンジの予定

複数NFSの時のsnapshot

むりっぽい....
NFS-1、NFS-2があって、shadow:basedirはいいとしても、shadow:snapdirが書けない...

[root@c ~]# vi /opt/samba/etc/smb.conf
(中略)
[home]
  path = /home/%D
  browseable = no
  read only = no
  create mask = 0644
  directory mask = 0755
  vfs objects = shadow_copy2, btrfs
  shadow:basedir=/home/CERIUS/%u
  shadow:snapdir=.snapshot
(中略)
[root@c ~]#

NFSv4.1 krb5接続

サービスプリンシパルの定義


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2014-09-13 (土) 09:10:55 (2160d)