2024年6月10日发(作者:)
一.升级需知
1.备份最重要:在samba升级之前,请一定做好相关文件的备份。CentOS默认samba
的密码文件、配置都保存在/etc/samba目录。
相关命令
1. #rsync -av /etc/samba/ /etc//
2. #cp /etc/init./smb /etc/init.d/
samba密码文件:、schannel_、
samba配置文件:
2.在升级前,请先仔细参考相关的升级文档。如果对新版本一无所知,那么你为何要
去升级它呢?下面是Samba 3.4版本的一些变化:
Major enhancements in Samba 3.4.0 include:
1. Configuration changes:
2. o The default passdb backend has been changed to 'tdbsam'!
3. General changes:
4. o Samba4 and Samba3 sources are included in the tarball
5. Authentication Changes:
6. o Changed the way smbd handles untrusted domain names given during u
ser
7. authentication.
8. Printing Changes:
9. o Various fixes including printer change notificiation for Samba spoolss pri
nt servers.
10. Configuration changes
11. =====================
12. ATTENTION
13. The default passdb backend has been changed to 'tdbsam'! That break
s existing
14. setups using the 'smbpasswd' backend without explicit declaration! Ple
ase use
15. 'passdb backend = smbpasswd' if you would like to stick to the 'smbpas
swd'
16. backend or convert your smbpasswd entries 'pdbedit -i smbp
asswd -e
17. tdbsam'.
18. The 'tdbsam' backend is much more flexible concerning per user setting
s
19. like 'profile path' or 'home directory' and there are some commands wh
ich do not
20. work with the 'smbpasswd' backend at all.
的一些说明
1)Samba配置文件
samba的配置文件是,这个文件通常位于/etc/samba/ 或
/usr/local/samba/lib/
你可以通过#testparm /etc/samba/命令来验证配置文件是否有错。
2)Samba密码文件
Samba-3默认使用tdbsam方式来存储密码,使用下面的命令来确认:
#grep passdb /etc/samba/
存储samba密码等敏感信息的tdb数据库文件位置默认是:/etc/samba/,可以通过
下面的命令确认:
相关命令
1. # smbd -b | grep PRIVATE_DIR
2. PRIVATE_DIR: /etc/samba
3. # smbd -b | grep PRIVATE_DIR #CentOS默认路径
4. SRCDIR: /builddir/build/BUILD/samba-3.0.28/source
5. BUILDDIR: /builddir/build/BUILD/samba-3.0.28/source
6. SBINDIR: /usr/sbin
7. BINDIR: /usr/bin
8. SWATDIR: /usr/share/swat
9. LIBDIR: /usr/lib/samba
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
LOCKDIR: /var/cache/samba
PIDDIR: /var/run
PRIVATE_DIR: /etc/samba
# smbd -b|grep DIR #编译、安装、启动新版本后
SRCDIR: /usr/src/samba-3.4.3/source3
BUILDDIR: /usr/src/samba-3.4.3/source3
SBINDIR: /usr/local/samba/sbin
BINDIR: /usr/local/samba/bin
SWATDIR: /usr/local/samba/swat
LIBDIR: /usr/local/samba/lib
MODULESDIR: /usr/local/samba/lib
LOCKDIR: /usr/local/samba/var/locks
STATEDIR: /usr/local/samba/var/locks
23. CACHEDIR: /usr/local/samba/var/locks
24. PIDDIR: /usr/local/samba/var/locks
25. PRIVATE_DIR: /usr/local/samba/private
二、下载解压
下载新版Samba安装文件(这里以samba 3.4.3为例):/
相关命令
1. #rpm -q samba #确认当前samba版本
2. 5
3. #cd /usr/src/
4. #wget /samba/ftp/stable/
5. #tar -xvf
6. #cd samba-3.4.3
三、编译安装
Samba 3.4.3目录中有source3和source4两个samba版本。source3为Samba
稳定的3.4.3版本,source4为Samba 4预览版,目前还在测试中。
相关命令
1. #cd source3/
2. #./ #自动生成适合当前系统的configure脚本
3. #./configure –help #获取可用的configure参数
4. #./configure --with-automount --with-quotas
5. #make
6. #make install
samba安装目录的相关参数,其它请参考./configure –help
相关参数
1. Installation directories:
2. --prefix=PREFIX install architecture-independent files in PREFIX
3. [/usr/local/samba]
4. --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
5. [PREFIX]
6. By default, `make install' will install all the files in `/usr/local/samba/bin', `/
usr/local/samba/lib' etc. You can specify an installation prefix other than `/usr/loc
al/samba' using `--prefix',for instance `--prefix=$HOME'.
7. Fine tuning of the installation directories:
8. --bindir=DIR user executables [EPREFIX/bin]
9. --sbindir=DIR system admin executables [EPREFIX/sbin]
10. --libexecdir=DIR program executables [EPREFIX/libexec]
11. --datadir=DIR read-only architecture-independent data [PREFIX/s
hare]
12. --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
13. --sharedstatedir=DIR modifiable architecture-independent data [PREFI
X/com]
14. --localstatedir=DIR modifiable single-machine data [PREFIX/var]
15. --libdir=DIR object code libraries [EPREFIX/lib]
16. --includedir=DIR C header files [PREFIX/include]
17. --oldincludedir=DIR C header files for non-gcc [/usr/include]
18. --infodir=DIR info documentation [PREFIX/info]
19. --mandir=DIR man documentation [PREFIX/man]
20. --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/pri
vate)
21. --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)
22. --with-configdir=DIR Directory that Samba daemons will use for lo
cating configuration files.
Samba编译的时候默认提供了Active Directory支持。如果不需要此功能,可以手工
编辑include/config.h ,把下面两行的1修改为0.
相关命令
1. /* Whether kerberos is available */
2. #define HAVE_KRB5 1
3. /* Whether ldap is available */
4. #define HAVE_LDAP 1
安装完成。哇,真是简单。
四、启用新版本Samba
1.先让我们看一下,安装后的Samba目录。
密码文件:、schannel_、、smbpasswd应该位于
/usr/local/samba/private目录。
配置文件:应该位于/usr/local/samba/lib目录。
所以,我们也需要将配置文件和密码文件复制到相应的目录。当然,我们要删除旧的
Samba版本。
相关命令
1. # cd /usr/local/samba/ #默认安装在/usr/local/samba/目录
2. # ls
3. bin include lib man private sbin share swat var
4. # ls bin/
5. eventlogadm ldbmodify ntlm_auth smbcacls smbpasswd tdbbackup
6. findsmb ldbrename pdbedit smbclient smbspool tdbdump
7. ldbadd ldbsearch profiles smbcontrol smbstatus tdbtool
8. ldbdel net rpcclient smbcquotas smbtar testparm
9. ldbedit nmblookup sharesec smbget smbtree wbinfo
10. # ls sbin/
11. nmbd smbd swat winbinddls
12. #cp -v /etc/samba/*.tdb /usr/local/samba/private/
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
rch
24.
25.
#cp -v /etc/samba/ /usr/local/samba/lib/
#rm -rfv /etc/samba/
# ./bin/smbpasswd #测试一下,如果出错:
smbpasswd: error while loading shared libraries: .1:
ERROR:cannot open shared object file: No such file or directory
解决方法:vi /etc/
加入:/usr/local/samba/lib
然后运行#ldconfig
# rpm -e --test samba
error: Failed dependencies:
samba is needed by (installed)
# yum remove system-config-samba
# yum remove samba (不推荐直接使用rpm删除)
26. 设置Samba路径
27. Samba默认是安装在/usr/local/samba,因此安装完成后,可能bin、sbin目
录下的程序以及man无法使用。
28. 解决办法:
29. a.修改/etc/profile (全局) 或者在.bash_profile,.bashrc 文件中加上对应路径
(使用下面的脚本也是一个选择)
30. 例如# vim ~/.bash_profile
31. PATH=$PATH:$HOME/bin:/usr/local/samba/bin:/usr/local/samba/sbin
32. b.增加man手册
33. #vim /etc/
34. MANPATH /usr/local/samba/share/man
35. MANPATH_MAP /usr/local/samba/bin /usr/local/samba/share/man
36. MANPATH_MAP /usr/local/samba/sbin /usr/local/samba/share/man
2.启用新版本的Samba命令
首先,还原一下smb服务
#cp /etc/init.d/ /etc/init.d/smb
#!/bin/sh
for bin in `ls -1 /usr/local/samba/bin`
do
cp -bv /usr/local/samba/bin/$bin /usr/bin/
done
for sbin in `ls -1 /usr/local/samba/sbin`
do
cp -bv -s /usr/local/samba/sbin/$sbin /usr/sbin/
done
exit 0
五、简单测试
使用smbclient做个简单的测试。使用smbclient的时候,若提示找不到
/etc/samba/文件,则运行:
# ln -s /usr/local/samba/lib/ /etc/samba/
测试命令
1. # smbclient -L //192.168.1.9 -U root
2. Enter password:
3. Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.4.3]
4. Sharename Type Comment
5. --------- ---- -------
6. public Disk
7. #smbclient //192.168.1.9/it -U root
8. Enter password:
9. Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.4.3]
10. smb: >
六、其它
to Add Windows 7 on a Samba Domain Controller (PDC)
Samba从3.3版本后才提供了加Windows 7到域的支持,如果你的版本符合要求,
但在加入PDC的时候,却提示域不存在或无法联系,那么请导入下面的注册表即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanManWorksta
tionParameters]
"DNSNameResolutionRequired"=dword:00000000
"DomainCompatibilityMode"=dword:00000001
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesNetlogonPara
meters]
"RequireSignOnSeal"=dword:00000001
"RequireStrongKey"=dword:00000001
2.出现奇怪错误的时候,可以使用如下命令调试:
# pdbedit -d 10 -x -u testuser
3.最后,哈哈,如何使用yum直接升级到新版本的samba
# cd /etc/.d/
# wget /pub/samba/recent/centos/5/
# yum install samba
/*内容*/
[sernet-samba]
name=SerNet Samba Team packages (CentOS 5)
type=rpm-md
baseurl=/pub/samba/recent/centos/5
enabled=1
发布评论