★Sambaでドメインコントローラー
Windowsクライアントが1台や2台なら問題ないのですが,我が家には5台あり使う人間が5人ほどいます.ま〜,それぞれに専用機みたいなものがあるんですが,時々専用機以外の機械も使う機会があります.そんなときデスクトップがいつも同じならいいな〜と考えていたんですがこれを実現できるのがSambaのPDC(Primary Domain Controller)です.要するにどこのWinクライアントでも同じデスクトップ環境が実現できるわけです.このことをWindowsクライアントのSambaドメインへの追加とも言います.
Samba3.0への移行はここ
1.インストール
現在のSambaの最新バージョンはSamba日本語版Samba 2.2.8a-ja-1.1です.本当の最新バージョンは3.0なのですが,日本語バージョンはないですしもう少し枯れてからのほうがよいと思います.今回はソースからインストールしてコンパイルすることにします.
例によってSamba-2.2.8a-ja-1.1.tar.gzが/usr/local/srcにあるとします.
#cd /usr/local/src
#tar vzxf Samba-2.2.8a-ja-1.1.tar.gz
#cd Samba-2.2.8a-ja-1.1/source
#./configure --with-smbmount --with-automount
オプションについてはhttp://www.samba.gr.jp/doc/install_2.2/3_configure.htmlなどに有益な情報があります.
#make install
#cd ../examples
#cp smb.conf.default /usr/local/samba/lib/smb.conf
これでお終い.簡単ですね./usr/local/sambaにすべてがインストールされます.
2.必要なグループ,ディレクトリを作る
家族が使うgroupはhomeuserとしています.ほかのグループ名がよければ,
#groupadd xxx
として下さい.今回は,このグループ名をドメイン名としました.ちなみに,ドメイン名は何でも良いです.好きなものにして下さい.
あと必要なグループ,ディレクトリを作ります.
#groupadd admin homeuserグループとともにadministrator権限を与えるグループ #groupadd winpc これは好きなものでOK.adduserで使うadministrator権限を与えないグループ共有ディレクトリを作ります.これも好きなものでOK.
#cd / #mkdir samba #cd /samba #mkdir public #chown -R nobody:nobody public #chmod 777 publicnetlogonのディレクトリを作ります.これも好きなものでよいです.
#cd /home #mkdir netlogonこのディレクトリにmount.batというファイルを置きます.
/home/netlogon/mount.bat net time \\sav /set /yes @echo off if %OS%.==Windows_NT. goto WinNT :Win95 net use y: \\sav\public net use z: \\sav\homes goto end :WinNT net use y: \\sav\public /persistent:no net use z: \\sav\homes /persistent:no :endこのファイルによりy:に共有ディレクトリが,z:にホームディレクトリが設定されます.
[global] workgroup = HOMEUSER security = user encrypt passwords = yes domain master = yes domain logons = yes preferred master = yes os level = 65 # 全て共通のBATスクリプトを利用する設定にする場合 logon script = mount.bat # %m マシンごとにスクリプトを用意する場合,%Uユーザごとにスクリプトを用意する場合 ; logon script = %m.bat ; login script = %U.bat # adminとhomeuserグループのユーザにWindowsのAdministratorsの権限を与える. domain admin group = @admin @homeuser add user script = /usr/sbin/adduser -n -g winpc -c WinPC -d /dev/null -s /bin/false %m$ client code page = 932 coding system = EUC [homes] comment = %S's Home Directories writeable = Yes browseable = No [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes writable = no share modes = no browseable = no [public] comment = Public Space for Everyone path = /samba/public writeable = Yes force create mode = 0666 force directory mode = 0777 guest only = Yes guest ok = Yes4.アカウントの作成
#touch /usr/local/samba/private/smbpasswd #/usr/local/samba/bin/smbpasswd -a root #/usr/local/samba/bin/smbpasswd -a user1 #/usr/local/samba/bin/smbpasswd -a user2userがadminかhomeuserグループに属しているときはadministrator権限を持つuserとなります.
/etc/rc.d/init.d/smb
#!/bin/sh
# chkconfig: 345 91 35
# description: Starts and stops the Samba smbd and nmbd daemons ¥
# used to provide SMB network services.
# pidfile: /var/run/smbd.pid
# pidfile: /var/run/nmbd.pid
# config: /usr/local/lib/smb.conf
. /etc/init.d/functions
. /etc/sysconfig/networ
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# Check that smb.conf exists.
[ -f /usr/local/samba/lib/smb.conf ] || exit 0
smbd=/usr/local/samba/bin/smbd
nmbd=/usr/local/samba/bin/nmbd
# See how we were called.
case "$1" in
start)
echo -n "Starting SMB services: "
daemon $smbd -D
daemon $nmbd -D
echo
touch /var/lock/subsys/smb
;;
stop)
echo -n "Shutting down SMB services: "
killproc smbd
killproc nmbd
rm -f /var/lock/subsys/smb
echo ""
;;
status)
status smbd
status nmbd
;;
restart)
echo -n "Restarting SMB services: "
$0 stop
$0 start
echo "done."
;;
*)
echoo "Usage: smb {start|stop|restart|status}"
exit 1
esac
パーミッションを700にする.
#cd /home/rc.d/init.d #chmod 700 smb自動起動にするにはntsysvで.
client code page = 932 -> dos charset = cp932 coding system = EUC -> display charset = eucJP-ms unix charset = eucJP-ms2.パスワードデータベースについて
passdb backend = tdbsam従来通り
passdb backend = smbpasswdとしてsmbpasswdも使用できるがtdbsamに移行した方が賢明であろう.
# pdbedit -i smbpasswd:/etc/smbpasswd -e tdbsam:/etc/samba/passdb.tdbユーザの追加は
#adduser user #pdbedit -a -u userユーザの削除
#pdbedit -x user #userdel -r userマシンの登録
#adduser machine$ #pdbedit -a -m -u machine ←「$」はいらないユーザ名一覧
#pdbedit -L[global]に下記のように記述すると自動的にWindows機は登録される.
add machine script = /usr/sbin/adduser -n -g winpc -c WinPC -d /dev/null -s /bin/false %m$*homeuser -- administrator権限を与えるグループ
domain admin group = @homeuserは使用できなくなった.下記のようにグループを対応付けてやらないとスタートアップファイルや自動起動ソフトなどを読み込んでくれないなどおかしなことになる.
# net groupmap modify NTgroup='Domain Admins' UNIXgroup=homeuser # net groupmap list System Operators (S-1-5-32-549) -> -1 Replicators (S-1-5-32-552) -> -1 Guests (S-1-5-32-546) -> -1 Power Users (S-1-5-32-547) -> -1 Domain Users (S-1-5-21-262039259-3100283672-1626073523-513) -> -1 Domain Admins (S-1-5-21-262039259-3100283672-1626073523-512) -> homeuser Domain Guests (S-1-5-21-262039259-3100283672-1626073523-514) -> -1 Print Operators (S-1-5-32-550) -> -1 Administrators (S-1-5-32-544) -> -1 Account Operators (S-1-5-32-548) -> -1 Backup Operators (S-1-5-32-551) -> -1 Users (S-1-5-32-545) -> -1Domain Admins,Domain Users,Domain Guestsは最初から定義されているのでnet groupmap modifyコマンドで適切なUNIXグループを対応付ける.上記はhomeuserグループをDomain Adminsグループに対応付けた例である.この結果homeuserグループはadministratorと同じ権限を得る.
[global] unix charset = eucJP-ms dos charset = cp932 display charset = eucJP-ms workgroup = TINYGROUP security = user passdb backend = tdbsam os level = 65 domain master = Yes preferred master = Yes domain logons = Yes logon script = mount.bat # domain admin group = @homeuser add machine script = /usr/sbin/adduser -n -g winpc -c WinPC -d /dev/null -s /bin/false %m$ server string = Samba %v on %h hosts allow = 192.168.1. 127. log file = /var/log/samba/%m.log max log size = 50 encrypt passwords = Yes username map = /etc/samba/smbusers unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*password* %n\n *ReType*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ; logon script = %m.bat ; logon script = %U.bat ; logon path = \\%L\Profiles\%U name resolve order = wins lmhosts bcast ; wins support = Yes ; wins server = w.x.y.z ; wins proxy = Yes dns proxy = No ; preserve case = No ; short preserve case = No ; default case = lower ; case sensitive = No wins support = no [homes] comment = %U's Home Directory writeable = Yes browseable = Yes [public] comment = Public Space for Everyone path = /samba/public ; public = Yes ; read only = Yes writeable = Yes force create mode = 0666 force directory mode =0777 guest only = Yes guest ok = Yes # allow people in the "staff" group to write ; write list = @staff [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = Yes writable = No share modes = No browseable = no
Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free
戻る