Sambaでファイルサーバー
の編集
https://yassu.jp/pukiwiki/index.php?Samba%A4%C7%A5%D5%A5%A1%A5%A4%A5%EB%A5%B5%A1%BC%A5%D0%A1%BC
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents *インストール [#w3163478] # yum install samba samba-client samba-common samba-swat *SWATを動作させる [#q1fe8890] ブラウザから管理できるようにSWATを動作させます # vi /etc/hosts.allow swat: 192.168.0.1 # vi /etc/xinetd.d/swat service swat { port = 901 socket_type = stream wait = no only_from = 127.0.0.1 192.168.0.1 user = root server = /usr/sbin/swat log_on_failure += USERID disable = yes } # /etc/rc.d/init.d/xinetd restart http://www.example.com:901/ でアクセス可能~ ただしSWAT経由で編集するとコメントが削除されたり、並び順が変わったりするので注意が必要 *認証にLDAPを使用する場合 [#id67a3a6] 事前にこちらで[[ユーザーを一元管理 LDAP]]OpenLDAPを利用できるようにしておく **OpenLDAPの追加設定 [#ob41a5aa] # cp /usr/share/doc/samba-3.0.23c/LDAP/samba.schema /etc/openldap/schema/ # vi /etc/openldap/slapd.conf include /etc/openldap/schema/samba.schema lastmod on # UNIX password access access to attrs=userPassword by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none # Samba password access access to attrs=sambaLMPassword,sambaNTPassword by dn="cn=Manager,dc=example,dc=com" write by self write by * none # default access access to * by dn="cn=Manager,dc=example,dc=com" write by * read **smbldap-toolsのインストール [#rbfff3d5] まずは必要なPerlモジュールをインストール~ -Net::LDAP -Digest::SHA1 -[[Jcode:http://dag.wieers.com/rpm/packages/perl-Jcode/]] -[[Unicode::Map:http://dag.wieers.com/rpm/packages/perl-Unicode-Map/]] -[[Unicode::String:http://dag.wieers.com/rpm/packages/perl-Unicode-String/]] -[[Unicode::Map8:http://dag.wieers.com/rpm/packages/perl-Unicode-Map8/]] -[[Unicode::MapUTF8:http://dag.wieers.com/rpm/packages/perl-Unicode-MapUTF8/]] -[[Crypt::SmbHash:http://dag.wieers.com/rpm/packages/perl-Crypt-SmbHash/]] # yum install perl-Digest-SHA1 perl-LDAP # rpm -ivh perl-Jcode-2.06-1.el5.rf.noarch.rpm # rpm -ivh perl-Unicode-Map-0.112-1.el5.rf.i386.rpm # rpm -ivh perl-Unicode-String-2.09-1.2.el5.rf.i386.rpm # rpm -ivh perl-Unicode-Map8-0.12-1.el5.rf.i386.rpm # rpm -ivh perl-Unicode-MapUTF8-1.11-1.2.el5.rf.noarch.rpm # rpm -ivh perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm ここからダウンロード~ http://sourceforge.net/projects/smbldap-tools/ # rpm -ivh smbldap-tools-0.9.2-1a.noarch.rpm # mkdir -p /usr/local/samba/bin # mv /opt/IDEALX/sbin/* /usr/local/samba/bin/ # rm -fr /opt/IDEALX # mkdir -p mkdir /usr/local/samba/lib/netlogon # mv /etc/opt/IDEALX/smbldap-tools/smbldap* /usr/local/samba/lib/ # rm -fr /etc/opt/IDEALX/ # vi /usr/local/samba/bin/smbldap_tools.pm # $smbldap_conf="/etc/opt/IDEALX/smbldap-tools/smbldap.conf"; $smbldap_conf="/usr/local/samba/lib/smbldap.conf"; # $smbldap_bind_conf="/etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf"; $smbldap_bind_conf="/usr/local/samba/lib/smbldap_bind.conf"; SIDを取得し、smbldap.confに使用 # net getlocalsid # vi /usr/local/samba/lib/smbldap.conf SID="S-1-5-21-639836666-1375979563-1343089817" #sambaDomain="IDEALX-NT" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="localhost" masterPort="389" ldapTLS="0" verify="require" #cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem" #clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem" #clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key" suffix="dc=example,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="cn=SambaUnixId,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" #defaultMaxPasswordAge="45" userSmbHome="\\PDC\%U" userProfile="\\PDC\profiles\%U" userHomeDrive="H:" userScript="%U.cmd" mailDomain="example.com" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" # vi /usr/local/samba/lib/smbldap_bind.conf slaveDN="cn=Manager,dc=example,dc=com" slavePw="secret" masterDN="cn=Manager,dc=example,dc=com" masterPw="secret" rootで実行できるようにパスを通す # vi /root/.bashrc PATH="$PATH":/usr/local/samba/bin # source ~/.bashrc **UNIXユーザーの情報をLDAPに格納する設定 [#x6780373] # authconfig #ref(authconfig.gif,nolink,center) 「Use LDAP」と「Use LDAP Authentication」にチェック #ref(authconfig2.gif,nolink,center) 「Server」に「ldap://127.0.0.1/」、「Base DN」に「dc=example,dc=com」を入力 以下2ファイルについて設定が反映されているか確認 # cat /etc/ldap.conf base dc=example,dc=com uri ldap://127.0.0.1/ # cat /etc/nsswitch.conf passwd: files ldap shadow: files ldap group: files ldap **LDAPデータベースの初期化 [#h431eff6] # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # smbldap-populate **Sambaの設定 [#jcbd22d2] smbldap-toolsに対応した設定をsmb.confに対して行なう~ 変更する部分だけ抽出 # vi /etc/samba/smb.conf [global] load printers = no # プリンタは非表示 passdb backend = ldapsam:ldap://localhost:389 local master = yes os level = 32 domain master = auto preferred master = auto domain logons = yes encrypt passwords = yes logon script = logon home = \\%N\%U logon path = \\%N\%U\profile logon drive = Z: wins support = yes ldap admin dn = cn=Manager,dc=example,dc=com ldap suffix = dc=example,dc=com ldap user suffix = ou=Users ldap group suffix = ou=Groups ldap machine suffix = ou=Computers ldap passwd sync = yes ldap delete dn = yes add machine script = /usr/local/samba/bin/smbldap-useradd -w %u add user script ~ /usr/local/samba/bin/smbldap-useradd -m %u delete user script = /usr/local/samba/bin/smbldap-userdel -r %u add group script = /usr/local/samba/bin/smbldap-groupadd -p %g delete group script = /usr/local/samba/bin/smbldap-groupdel %g add user to group script = /usr/local/samba/bin/sbmldap-groupmod -m %u %g delete user from group script = /usr/local/samba/bin/smbldap-groupmod -x %u %g set primary group script = /usr/local/samba/bin/smbldap-usermod -g %g %u # .bashで始まるファイルを表示させない veto files = /.bash*/ [homes] comment = Home Directories browseable = no writable = yes profile acls = yes vfs objects = recycle # ゴミ箱機能を有効 [netlogon] comment = Network Logon Service path = /usr/local/samba/lib/netlogon writable = no browseable = no ;printersセクションはコメント ;[printers] LDAPアクセス時のパスワード設定 # smbpasswd -w secret **ユーザー管理方法 [#pc3dd7df] &color(red){※ユーザー操作は全てsmbldap-tools経由で行なわないとUNIXユーザーとSambaユーザーが同期しないので注意}; ***ユーザー追加 [#d79b0067] - -a:Sambaユーザーも同時に作成 - -m:ホームディレクトリを作成 - -s:シェルを指定 - -c:GECOSとdisplayNameを指定 # smbldap-useradd -a -m -s /bin/false -c "LDAP01" ldap01 ***ユーザーの情報確認 [#l4658ae0] # smbldap-usershow ldap01 ***GECOSとdisplayNameの変更 [#f9a14852] # smbldap-usermod -c "LDAP01" ldap01 ***パスワード変更 [#dee05809] # smbldap-passwd ldap01 ***ユーザー削除 [#o4ecbbff] - -r:ホームディレクトリも削除 # smbldap-userdel -r ldap01 **グループ管理方法 [#cdf5f025] ***グループ追加 [#e14cef39] - -a:Sambaグループにマッピング # smbldap-groupadd -a group01 ***グループにユーザーを追加 [#ue66f9b1] - -m:メンバーの追加 # smbldap-groupmod -m ldap01,ldap02 group01 ***グループからユーザーを削除 [#f5da002a] - -x:メンバーの削除 # smbldap-groupmod -x ldap01,ldap02 group01 ***グループの情報確認 [#pb8c2abe] # smbldap-groupshow group01 ***グループの削除 [#q9dc2d81] # smbldap-groupdel group01 **グループで共有可能なフォルダの作成 [#xb28d842] 自身が所属するグループは読み書きできるが、他のグループはアクセスさせない~ 共有フォルダは制限をかけない~ 日本語もUTF-8にすれば問題なさそう~ sshクライアントもUTF-8表示にしておくこと # vi /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16" # vi /etc/man.config PAGER /usr/bin/less -is # mkdir /usr/local/samba/home # mkdir -m 777 /usr/local/samba/home/共有 # mkdir -m 777 "/usr/local/samba/home/グループ 01" # mkdir -m 777 "/usr/local/samba/home/グループ 02" # vi /etc/samba/smb.conf [共有] comment = 共有 フォルダ path = /usr/local/samba/home/共有 read only = no vfs objects = recycle [グループ 01] comment = グループ 01 フォルダ path = /usr/local/samba/home/グループ 01 read only = yes write list = @group01 valid users = @group01 vfs objects = recycle [グループ 02] comment = グループ 02 フォルダ path = /usr/local/samba/home/グループ 02 read only = yes write list = @group02 valid users = @group02 vfs objects = recycle
タイムスタンプを変更しない
#contents *インストール [#w3163478] # yum install samba samba-client samba-common samba-swat *SWATを動作させる [#q1fe8890] ブラウザから管理できるようにSWATを動作させます # vi /etc/hosts.allow swat: 192.168.0.1 # vi /etc/xinetd.d/swat service swat { port = 901 socket_type = stream wait = no only_from = 127.0.0.1 192.168.0.1 user = root server = /usr/sbin/swat log_on_failure += USERID disable = yes } # /etc/rc.d/init.d/xinetd restart http://www.example.com:901/ でアクセス可能~ ただしSWAT経由で編集するとコメントが削除されたり、並び順が変わったりするので注意が必要 *認証にLDAPを使用する場合 [#id67a3a6] 事前にこちらで[[ユーザーを一元管理 LDAP]]OpenLDAPを利用できるようにしておく **OpenLDAPの追加設定 [#ob41a5aa] # cp /usr/share/doc/samba-3.0.23c/LDAP/samba.schema /etc/openldap/schema/ # vi /etc/openldap/slapd.conf include /etc/openldap/schema/samba.schema lastmod on # UNIX password access access to attrs=userPassword by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none # Samba password access access to attrs=sambaLMPassword,sambaNTPassword by dn="cn=Manager,dc=example,dc=com" write by self write by * none # default access access to * by dn="cn=Manager,dc=example,dc=com" write by * read **smbldap-toolsのインストール [#rbfff3d5] まずは必要なPerlモジュールをインストール~ -Net::LDAP -Digest::SHA1 -[[Jcode:http://dag.wieers.com/rpm/packages/perl-Jcode/]] -[[Unicode::Map:http://dag.wieers.com/rpm/packages/perl-Unicode-Map/]] -[[Unicode::String:http://dag.wieers.com/rpm/packages/perl-Unicode-String/]] -[[Unicode::Map8:http://dag.wieers.com/rpm/packages/perl-Unicode-Map8/]] -[[Unicode::MapUTF8:http://dag.wieers.com/rpm/packages/perl-Unicode-MapUTF8/]] -[[Crypt::SmbHash:http://dag.wieers.com/rpm/packages/perl-Crypt-SmbHash/]] # yum install perl-Digest-SHA1 perl-LDAP # rpm -ivh perl-Jcode-2.06-1.el5.rf.noarch.rpm # rpm -ivh perl-Unicode-Map-0.112-1.el5.rf.i386.rpm # rpm -ivh perl-Unicode-String-2.09-1.2.el5.rf.i386.rpm # rpm -ivh perl-Unicode-Map8-0.12-1.el5.rf.i386.rpm # rpm -ivh perl-Unicode-MapUTF8-1.11-1.2.el5.rf.noarch.rpm # rpm -ivh perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm ここからダウンロード~ http://sourceforge.net/projects/smbldap-tools/ # rpm -ivh smbldap-tools-0.9.2-1a.noarch.rpm # mkdir -p /usr/local/samba/bin # mv /opt/IDEALX/sbin/* /usr/local/samba/bin/ # rm -fr /opt/IDEALX # mkdir -p mkdir /usr/local/samba/lib/netlogon # mv /etc/opt/IDEALX/smbldap-tools/smbldap* /usr/local/samba/lib/ # rm -fr /etc/opt/IDEALX/ # vi /usr/local/samba/bin/smbldap_tools.pm # $smbldap_conf="/etc/opt/IDEALX/smbldap-tools/smbldap.conf"; $smbldap_conf="/usr/local/samba/lib/smbldap.conf"; # $smbldap_bind_conf="/etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf"; $smbldap_bind_conf="/usr/local/samba/lib/smbldap_bind.conf"; SIDを取得し、smbldap.confに使用 # net getlocalsid # vi /usr/local/samba/lib/smbldap.conf SID="S-1-5-21-639836666-1375979563-1343089817" #sambaDomain="IDEALX-NT" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="localhost" masterPort="389" ldapTLS="0" verify="require" #cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem" #clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem" #clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key" suffix="dc=example,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="cn=SambaUnixId,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" #defaultMaxPasswordAge="45" userSmbHome="\\PDC\%U" userProfile="\\PDC\profiles\%U" userHomeDrive="H:" userScript="%U.cmd" mailDomain="example.com" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" # vi /usr/local/samba/lib/smbldap_bind.conf slaveDN="cn=Manager,dc=example,dc=com" slavePw="secret" masterDN="cn=Manager,dc=example,dc=com" masterPw="secret" rootで実行できるようにパスを通す # vi /root/.bashrc PATH="$PATH":/usr/local/samba/bin # source ~/.bashrc **UNIXユーザーの情報をLDAPに格納する設定 [#x6780373] # authconfig #ref(authconfig.gif,nolink,center) 「Use LDAP」と「Use LDAP Authentication」にチェック #ref(authconfig2.gif,nolink,center) 「Server」に「ldap://127.0.0.1/」、「Base DN」に「dc=example,dc=com」を入力 以下2ファイルについて設定が反映されているか確認 # cat /etc/ldap.conf base dc=example,dc=com uri ldap://127.0.0.1/ # cat /etc/nsswitch.conf passwd: files ldap shadow: files ldap group: files ldap **LDAPデータベースの初期化 [#h431eff6] # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # smbldap-populate **Sambaの設定 [#jcbd22d2] smbldap-toolsに対応した設定をsmb.confに対して行なう~ 変更する部分だけ抽出 # vi /etc/samba/smb.conf [global] load printers = no # プリンタは非表示 passdb backend = ldapsam:ldap://localhost:389 local master = yes os level = 32 domain master = auto preferred master = auto domain logons = yes encrypt passwords = yes logon script = logon home = \\%N\%U logon path = \\%N\%U\profile logon drive = Z: wins support = yes ldap admin dn = cn=Manager,dc=example,dc=com ldap suffix = dc=example,dc=com ldap user suffix = ou=Users ldap group suffix = ou=Groups ldap machine suffix = ou=Computers ldap passwd sync = yes ldap delete dn = yes add machine script = /usr/local/samba/bin/smbldap-useradd -w %u add user script ~ /usr/local/samba/bin/smbldap-useradd -m %u delete user script = /usr/local/samba/bin/smbldap-userdel -r %u add group script = /usr/local/samba/bin/smbldap-groupadd -p %g delete group script = /usr/local/samba/bin/smbldap-groupdel %g add user to group script = /usr/local/samba/bin/sbmldap-groupmod -m %u %g delete user from group script = /usr/local/samba/bin/smbldap-groupmod -x %u %g set primary group script = /usr/local/samba/bin/smbldap-usermod -g %g %u # .bashで始まるファイルを表示させない veto files = /.bash*/ [homes] comment = Home Directories browseable = no writable = yes profile acls = yes vfs objects = recycle # ゴミ箱機能を有効 [netlogon] comment = Network Logon Service path = /usr/local/samba/lib/netlogon writable = no browseable = no ;printersセクションはコメント ;[printers] LDAPアクセス時のパスワード設定 # smbpasswd -w secret **ユーザー管理方法 [#pc3dd7df] &color(red){※ユーザー操作は全てsmbldap-tools経由で行なわないとUNIXユーザーとSambaユーザーが同期しないので注意}; ***ユーザー追加 [#d79b0067] - -a:Sambaユーザーも同時に作成 - -m:ホームディレクトリを作成 - -s:シェルを指定 - -c:GECOSとdisplayNameを指定 # smbldap-useradd -a -m -s /bin/false -c "LDAP01" ldap01 ***ユーザーの情報確認 [#l4658ae0] # smbldap-usershow ldap01 ***GECOSとdisplayNameの変更 [#f9a14852] # smbldap-usermod -c "LDAP01" ldap01 ***パスワード変更 [#dee05809] # smbldap-passwd ldap01 ***ユーザー削除 [#o4ecbbff] - -r:ホームディレクトリも削除 # smbldap-userdel -r ldap01 **グループ管理方法 [#cdf5f025] ***グループ追加 [#e14cef39] - -a:Sambaグループにマッピング # smbldap-groupadd -a group01 ***グループにユーザーを追加 [#ue66f9b1] - -m:メンバーの追加 # smbldap-groupmod -m ldap01,ldap02 group01 ***グループからユーザーを削除 [#f5da002a] - -x:メンバーの削除 # smbldap-groupmod -x ldap01,ldap02 group01 ***グループの情報確認 [#pb8c2abe] # smbldap-groupshow group01 ***グループの削除 [#q9dc2d81] # smbldap-groupdel group01 **グループで共有可能なフォルダの作成 [#xb28d842] 自身が所属するグループは読み書きできるが、他のグループはアクセスさせない~ 共有フォルダは制限をかけない~ 日本語もUTF-8にすれば問題なさそう~ sshクライアントもUTF-8表示にしておくこと # vi /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SYSFONT="latarcyrheb-sun16" # vi /etc/man.config PAGER /usr/bin/less -is # mkdir /usr/local/samba/home # mkdir -m 777 /usr/local/samba/home/共有 # mkdir -m 777 "/usr/local/samba/home/グループ 01" # mkdir -m 777 "/usr/local/samba/home/グループ 02" # vi /etc/samba/smb.conf [共有] comment = 共有 フォルダ path = /usr/local/samba/home/共有 read only = no vfs objects = recycle [グループ 01] comment = グループ 01 フォルダ path = /usr/local/samba/home/グループ 01 read only = yes write list = @group01 valid users = @group01 vfs objects = recycle [グループ 02] comment = グループ 02 フォルダ path = /usr/local/samba/home/グループ 02 read only = yes write list = @group02 valid users = @group02 vfs objects = recycle
テキスト整形のルールを表示する
添付ファイル:
authconfig2.gif
335件
[
詳細
]
authconfig.gif
308件
[
詳細
]