http://www.nep-hk.com/drupal/node/55
之前試過在Ubuntu Desktop 9.10下安裝LDAP及SAMBA服務,但來到Ubuntu Desktop 10.04及10.10下,有些地方已經改變了,今天順道也更新一下。
01. 新增一暫存資料夾,用於存放安裝時的設定檔案,用後可把它刪除。
sudo mkdir /tmp/ldap
cd /tmp/ldap
02. 在暫存資料夾下,新增一個檔案,db.ldif,及貼上以下內容。
sudo gedit /tmp/ldap/db.ldif
# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb
# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: password
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq
03. 其中olcSuffix、olcRootDN及olcRootPW,分別代表您的域名(domain name)、LDAP管理員名稱(admin login)及密碼(password)。其中域名的表達方式,如example.com,請以dc=example,dc=com代表。
04. 在暫存資料夾下,新增一個檔案,base.ldif,及貼上以下內容。
sudo gedit /tmp/ldap/base.ldif
dn: dc=example,dc=com
objectClass: dcObject
objectclass: organization
o: example.com
dc: example
description: LDAP Administrator
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: password
description: LDAP administrator
05. 在暫存資料夾下,新增一個檔案,config.ldif,及貼上以下內容。
sudo gedit /tmp/ldap/config.ldif
# dn: cn=config
# changetype: modify
# delete: olcAuthzRegexp
# dn: olcDatabase={-1}frontend,cn=config
# changetype: modify
# delete: olcAccess
# dn: olcDatabase={0}config,cn=config
# changetype: modify
# delete: olcRootDN
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: password
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess
06. 打開終端機,用以下命令安裝LDAP套件。
sudo apt-get -y install slapd ldap-utils
07. 更改終端機下資料夾路徑為,/etc/ldap。
cd /etc/ldap
08. 新增常用撮要至LDAP數據庫內。
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
09. 載入LDAP模組及初始化數據庫。
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldap/db.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldap/base.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/ldap/config.ldif
10. 安裝SAMBA套件。
sudo apt-get install samba samba-doc smbldap-tools samba-common-bin samba4-clients
11. 複製samba.schema檔案至相關資料夾。
sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
sudo gzip -d /etc/ldap/schema/samba.schema.gz
12. 新增SAMBA設置檔案,及貼上以下內容。
cd /tmp/ldap
sudo gedit schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema
13. 新增一暫存資料夾,/tmp/ldif_output,用於存放SAMBA輸出檔案。
sudo mkdir /tmp/ldif_output
14. 執行slapcat,轉換SAMBA撮要檔案至暫存資料夾。
sudo slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/cn=samba.ldif
15. 更改剛轉換檔案內容,刪除檔案內{12}標籤。
sudo gedit /tmp/cn\=samba.ldif
dn: cn=samba,cn=schema,cn=config
...
cn: samba
16. 同時,刪除檔案內以下內容。
structuralObjectClass: olcSchemaConfig
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
creatorsName: cn=config
createTimestamp: 20080827045234Z
entryCSN: 20080827045234.341425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080827045234Z
17. 執行ldapadd命令,新增撮要檔案至LDAP數據庫內。
sudo ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=samba.ldif
18. 新增檔案,samba_indexes.ldif,及貼上以下內容。
sudo gedit samba_indexes.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
# olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
# olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
19. 執行ldapmodify命令,載入新內容至LDAP數據庫。
sudo ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif
20. 新增一個檔案,acl.ldif,及貼上以下內容。
cd /tmp/ldap
sudo gedit acl.ldif
dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdLastSet,sambaPwdMustChange by dn="cn=admin,dc=example,dc=com" write by anonymous read by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read
21. 執行ldapmodify命令,載入新內容至LDAP數據庫。
sudo ldapmodify -x -D cn=admin,cn=config -W -f /tmp/ldap/acl.ldif
22. 您可執行ldapmodify命令,檢查現時LDAP數據庫中內容。
sudo ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb
23. 執行smbldap-tools命令,設置SAMBA工作環境。
sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
sudo perl /usr/share/doc/smbldap-tools/configure.pl
24. 根據您的需要,回答smbldap-tools中的問題。如在中途出現錯誤,您可打開/etc/smbldap-tools/smbldap.conf檔案、/etc/smbldap-tools/smbldap_bind.conf檔案及/etc/samba/smb.conf檔案,更改您的設定。
25. 以下是根據以上例子,檔案/etc/smbldap-tools/smbldap.conf的建議內容。
sudo gedit /etc/smbldap-tools/smbldap.conf
SID="S-1-5-21-4252226116-2560175468-428525971" # use the default of your setting
sambaDomain="WORKGROUP"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
suffix="dc=example,dc=com"
usersdn="ou=user,${suffix}"
computersdn="ou=computer,${suffix}"
groupsdn="ou=group,${suffix}"
idmapdn="ou=idmap,${suffix}"
hash_encrypt="MD5"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="755"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
mailDomain=""
26. 檔案/etc/smbldap-tools/smbldap.conf的建議內容。
sudo gedit /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=example,dc=com"
slavePw="password"
masterDN="cn=admin,dc=example,dc=com"
masterPw="password"
27. 檔案/etc/samba/smb.conf的建議內容。
sudo gedit /etc/samba/smb.conf
# obey pam restrictions = yes
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=example,dc=com
ldap user suffix = ou=user
ldap group suffix = ou=group
ldap machine suffix = ou=computer
ldap idmap suffix = ou=idmap
ldap admin dn = cn=admin,dc=example,dc=com
ldap passwd sync = yes
...
[share]
comment = Samba_Share
writeable = yes
browseable = yes
read only = no
path = /home/%U
create mask = 0755
directory mask = 0755
28. 執行smbldap-populate脚本,將SAMBA預設用戶、群組及LDAP物件加到數據庫內。
sudo smbldap-populate
29. 重新載入SAMBA服務。
sudo service smbd restart
30. 執行smbpasswd命令,以便將LDAP密碼,加到SAMBA服務內。
sudo smbpasswd -w secret
31. 新增SAMBA用戶至LDAP數據庫內。更改以下username為您需要的用戶名稱。
sudo smbldap-useradd -a -P username
32. 如需要LDAP數據庫內,刪除SAMBA用戶,可執行smbldap-userdel命令。更改以下username為您需要的用戶名稱。
sudo smbldap-userdel username
33. 新增用戶至SAMBA群組可執行smbldap-groupmod -m命令。更改以下username及groupname為您需要的用戶及群組名稱。
sudo smbldap-groupmod -m username groupname
34. 刪除SAMBA群組內用戶,可執行smbldap-groupmod -x命令。更改以下username及groupname為您需要的用戶及群組名稱。
sudo smbldap-groupmod -x username groupname
35. 新增SAMBA電腦至LDAP數據庫內。更改以下computername為您需要的電腦名稱。
sudo smbldap-useradd -t 0 -w
36. 新建SAMBA用戶工作資料夾位置。
sudo mkdir /home/username
37. 同時,亦需指定工作資料夾權限。請留意,此設定需不會與/etc/samba/smb.conf檔案內設定有所衝突。
sudo chmod 755 /home/username
38. 在系統中,新增與SAMBA用戶相同的用戶名稱。
sudo useradd -d /home/username username
[LDAP]OpenLDAP+Samba整合
前往
- Software
- ↳ CodeCharge Studio
- ↳ CodeCharge
- ↳ DemoCharge
- ↳ SuperPDF
- ↳ 551einv
- ↳ E3進銷存
- 程式語言
- ↳ PHP
- ↳ CodeLobster PHP Edition
- ↳ Yii
- ↳ CodeIgniter
- ↳ Phalcon
- ↳ Symfony
- ↳ FuelPHP
- ↳ Zend Framework 2
- ↳ laravel
- ↳ WordPress
- ↳ ASP.NET/C#
- ↳ ASP/VBScript
- ↳ JSP
- ↳ Java Servlets
- ↳ ColdFusion
- ↳ Perl
- ↳ Java Script
- ↳ jQuery
- ↳ HTML + CSS
- ↳ jQuery
- ↳ nodejs
- ↳ VB6
- ↳ Git
- ↳ App Inventor 2
- ↳ bash
- ↳ C++/ VC/ OpenCV
- ↳ OpenCV
- ↳ go
- ↳ cordova
- ↳ python
- ↳ Xamarin
- ↳ Assembly
- 資料庫
- ↳ MySQL
- ↳ PostgreSQL
- ↳ ORACLE
- ↳ Access
- ↳ SQL Server
- ↳ SQLite
- ↳ MariaDB
- ↳ Mongodb
- 作業系統
- ↳ Linux
- ↳ Ubuntu
- ↳ CentOS
- ↳ Mint
- ↳ Mandriva
- ↳ Debian
- ↳ Red Hat Enterprise Linux
- ↳ Oracle Linux
- ↳ Fedora
- ↳ Kali Linux
- ↳ OpenSUSE
- ↳ Elementary OS
- ↳ Microsoft
- ↳ Server 2008 R2
- ↳ Server 2012 R2
- ↳ Server 2012
- ↳ 8
- ↳ 10
- ↳ System Center 2016
- ↳ NOVELL
- ↳ FreeBSD
- ↳ VMware
- ↳ VirtualBox
- ↳ Mac OS X
- ↳ Solaris
- ↳ iOS
- ↳ Android
- ↳ Cloud
- ↳ OpenStack
- ↳ Docker
- ↳ Proxmox VE
- ↳ CloudReady
- ↳ chrome
- 網頁伺服器
- ↳ apache
- ↳ tomcat
- ↳ nginx
- ↳ IIS
- ↳ JBoss
- ↳ weblogic
- ↳ WebHosting
- 硬體
- ↳ 硬體及週邊
- ↳ RouterOS
- ↳ LEGO NXT
- ↳ Arduino
- ↳ MSP430
- ↳ Raspberry Pi
- ↳ OpenERP
- ↳ Storage
- ↳ Server
- ↳ Brocade
- ↳ MODELS
- ↳ FortiGate
- 軟體
- ↳ sublime
- ↳ LibreNMS