Ubuntu Server を使ってファイルサーバ兼イントラネット用のウェブサーバを構成している。12.04LTS で運用していたのだが 14.04LTS にアップグレードした。そうしたらインストールした CMS が動かなくなっってしまった。 たいして重要なサーバでないので 14.04 で再インストールしてみたら今度は、 Primary Domain Controller (PDC) が以前の smb.conf で動作しないことに気がついた。samba のバージョンが変わったことによる影響かもしれない。自分用に設定をメモしてみる。
Ubuntu 14.04 における samba のバージョンはこれを書いている時点で 4.1.6。PDC としての役割を果たすためには /etc/samba/smb.conf に以下の文を追加する(あるいはコメントアウトを外す)
workgroup = (名前を適切に決める。これがドメイン名になる)
server role = classic primary domain controller
domain logons = yes
logon script = logon.cmd
add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u[netlogon]
comment = Network Logon Service
path = /srv/samba/netlogon
guest ok = yes
read only = yes
ちなみに私の環境は回線速度が遅いのでいわゆる移動プロファイルは利用せず固定プロファイルにした。
[global]のセクションに以下を追加した。
logon path=
いくつかのディレクトリを作成したりグループを作成したりするために以下のコマンドを sudo で実行した。
mkdir -p /srv/samba/netlogon
chmod 755 /srv/samba/netlogon
touch /srv/samba/netlogon/logon.cmd
chmod 755 /srv/samba/netlogon/logon.cmd
addgroup machines
addgroup smbadmin
net groupmap add ntgroup="Domain Admins" unixgroup=smbadmin rid=512 type=d
net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d
net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d
再度 sudo でサービスを再起動する。
restart smbd
restart nmbd
ちなみに Ubuntu の場合、samba ユーザとして root を追加し、 root でコンピュータをドメインに参加させる。権限を持ったユーザでないと Windows 側で以下のようなメッセージが表示される。
参加の操作を正しく完了できませんでした。これは、既存の”参加させるサーバ名”という
名前のコンピューターアカウントが以前、別の資格情報で作成された可能性が
あります。別のコンピューター名を使うか、管理者に連絡して、競合が発生している
無効なアカウントを削除してもらってください。エラー
私は root を追加したのだが以下のようにしても良いようだ。
adduser admin --ingroup smbadmin --shell /bin/false --gecos ''
smbpasswd -a admin
net -U admin rpc rights grant "Domain Admins" \
SeMachineAccountPrivilege SePrintOperatorPrivilege \
SeAddUsersPrivilege SeDiskOperatorPrivilege \
SeRemoteShutdownPrivilege
以下のサイトを参考にした。
Howto set up Ubuntu Server as NT4-style Primary Domain Controller (PDC)