インストール†# yum install samba samba-client samba-common samba-swat SWATを動作させる†ブラウザから管理できるように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/ でアクセス可能 認証にLDAPを使用する場合†事前にこちらでユーザーを一元管理 LDAPOpenLDAPを利用できるようにしておく OpenLDAPの追加設定†# 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のインストール†まずは必要なPerlモジュールをインストール
ここからダウンロード # 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に格納する設定†# authconfig ![]() 「Use LDAP」と「Use LDAP Authentication」にチェック ![]() 「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データベースの初期化†# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # smbldap-populate Sambaの設定†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 ユーザー管理方法†※ユーザー操作は全てsmbldap-tools経由で行なわないとUNIXユーザーとSambaユーザーが同期しないので注意 ユーザー追加†
# smbldap-useradd -a -m -s /bin/false -c "LDAP01" ldap01 ユーザーの情報確認†# smbldap-usershow ldap01 GECOSとdisplayNameの変更†# smbldap-usermod -c "LDAP01" ldap01 パスワード変更†# smbldap-passwd ldap01 ユーザー削除†
# smbldap-userdel -r ldap01 グループ管理方法†グループ追加†
# smbldap-groupadd -a group01 グループにユーザーを追加†
# smbldap-groupmod -m ldap01,ldap02 group01 グループからユーザーを削除†
# smbldap-groupmod -x ldap01,ldap02 group01 グループの情報確認†# smbldap-groupshow group01 グループの削除†# smbldap-groupdel group01 グループで共有可能なフォルダの作成†自身が所属するグループは読み書きできるが、他のグループはアクセスさせない # 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 |