安装 samba 记录

Linux系统:LFS 6.1 in vmware虚拟机
软件版本: samba-3.0.14a.tar.bz2

安装过程

 tar xvf samba-3.0.14a.tar.bz2
 cd samba
-3.0.14a\source
 
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-piddir=/var/run --with-fhs --with-smbmount 
 make
 install 
--m755 -/var/cache/samba 
 make install 
 mv 
-/usr/lib/samba/libsmbclient.so /usr/lib 
 ln 
--sf ../libsmbclient.so /usr/lib/samba 
 
chmod -644 /usr/include/libsmbclient.
 install 
--m755 nsswitch/libnss_win{s,bind}.so /lib 
 ln 
--sf libnss_winbind.so /lib/libnss_winbind.so.2 
 ln 
--sf libnss_wins.so /lib/libnss_wins.so.2 
 
if [ -f nsswitch/pam_winbind.so ]; then
   install 
--m755 nsswitch/pam_winbind.so /lib/security
  fi
 install 
--m644 ../examples/smb.conf.default /etc/samba 
 install 
--m644 ../docs/*.pdf /usr/share/samba
 cd 
../..
 rm 
-rf samba-3.0.14a

 好了,装完啦,测试一下smbmount
因为我是用虚拟机装的Linux系统,所以可以在主机的WINDOWS中共享一个目录出来,共享目录权限指定为某个WINDOWS帐户,然后

 mkdir ~/win_share
 smbmount //host_ip/my_share_dir ~/win_share -o "username=XXXX,password=YYYYY"

失败,提示没有 /etc/samba/smb.conf 文件
检查安装过程,原来是前面 copy smb.conf.default 文件时,没有去掉后面的.default扩展名
 cp /etc/samba/smb.conf.default /etc/samba/smb.conf
再smbmount则成功(此时不需要配置smb.conf文件的具体内容,那是smb服务器才需要的)。

好,现在已经可以很方便的与访问其它系统的文件了。


接下来是配置smb服务

修改/etc/samba/smb.conf里面的内容,根据文件中的注释就可以修改了
这里有个比较简单的方法,按这样配置
[homes]
   comment = Home Directories
   path = %H
   browseable = yes
   writable = yes
   valid users = %S
   create mode = 0600
   directory mode = 0700
   locking = no

其中的 %S 会替换为 系统用户名,%H 会替换为所对应的用户主目录。
则用不同linux系统的用户访问,系统自动设置为其用户主目录,如crazywill用户,则访问\\lfs-linux-ip\crazywill\ 以及 \\lfs-linux-ip\homes\ 就相当于 linux下的 /home/crazywill/ 目录,拥有对用户自己目录下所有的文件权限。


修改完后,
 smbd -D
 nmbd -D   启动
 ps -aux | grep smb
检查不到有smbd进程运行

怀疑是 smb.conf 配置有问题
 testparm  
检查配置文件内容

似乎没问题才对
再继续检查 smb 状态 和 日志文件
 smbstatus

 cat /var/log/samba/smbd.log
检查日志
[2006/08/10 23:12:37, 0] smbd/server.c:main(798)
  smbd version 3.0.14a started.
  Copyright Andrew Tridgell and the Samba Team 1992-2004
[2006/08/10 23:12:37, 0] printing/pcap.c:pcap_cache_reload(149)
  Unable to open printcap file /etc/printcap for read!
不能读取/etc/printcap 文件
检查当前环境确实没有该文件,因为现在没有安装打印机,先创建一个空文件给它
 echo "" > /etc/printcap

再启动,仍失败,检查日志
[2006/08/10 23:18:11, 0] smbd/server.c:main(798)
  smbd version 3.0.14a started.
  Copyright Andrew Tridgell and the Samba Team 1992-2004
[2006/08/10 23:18:11, 1] auth/auth_util.c:make_server_info_sam(840)
  User nobody in passdb, but getpwnam() fails!

是用户nobody 有问题,
检查/etc/passwd 没有该用户,添加它,再启动还是不行。
运行
 smbpasswd -x nobody
删除nobody用户,删除失败 :(

真是有点莫名其妙,反复操作了几次后就成功了,不知道问题在哪里。

搞定 nobody后,终于非常辛苦的启动smbd进程成功了,检查日志可知。
庆祝一下。 :)

用smbclient检查一下samba配置正常了没

 smbclient -L localhost -U crazywill
测试连接
提示输入密码,输入LINUX本地帐号crazywill的密码,错误。

反复检查,最后发现需要先运行
 smbpasswd -a crazywill  
设置 smb 登录用户 crazywill 的密码

之后再 smbclient 测试正常,
用windows 连接 \\lfs-linux-ip\crazywill
输入用户名 crazywill和刚设置好的密码
正常登录

新增和修改目录、文件操作成功。

yeah.....


 

 

posted on 2006-08-11 20:56  CrazyWill  阅读(1606)  评论(0编辑  收藏  举报

导航