發佈日期:
如何在Ubuntu Desktop (10.04, 10.10)下‧安裝OpenLDAP及SAMBA服務
之前試過在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 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
39. 更改用戶資料夾權限。
sudo chown username:username /home/username username
發佈留言