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  
  - 
  v  
  - 
  m755  
  - 
  d  
  / 
  var 
  / 
  cache 
  / 
  samba 
 make install 
 mv  
  - 
  v  
  / 
  usr 
  / 
  lib 
  / 
  samba 
  / 
  libsmbclient 
  . 
  so  
  / 
  usr 
  / 
  lib 
 ln  
  - 
  v  
  - 
  sf  
  ../ 
  libsmbclient 
  . 
  so  
  / 
  usr 
  / 
  lib 
  / 
  samba 
  
  chmod 
    
  - 
  v  
  644 
    
  / 
  usr 
  / 
  include 
  / 
  libsmbclient 
  . 
  h 
 install  
  - 
  v  
  - 
  m755 nsswitch 
  / 
  libnss_win{s 
  , 
  bind 
  } 
  . 
  so  
  / 
  lib 
 ln  
  - 
  v  
  - 
  sf libnss_winbind 
  . 
  so  
  / 
  lib 
  / 
  libnss_winbind 
  . 
  so 
  . 
  2 
   
 ln  
  - 
  v  
  - 
  sf libnss_wins 
  . 
  so  
  / 
  lib 
  / 
  libnss_wins 
  . 
  so 
  . 
  2 
   
  
  if 
   [  
  - 
  f nsswitch 
  / 
  pam_winbind 
  . 
  so ]; then
   install  
  - 
  v  
  - 
  m755 nsswitch 
  / 
  pam_winbind 
  . 
  so  
  / 
  lib 
  / 
  security
  fi
 install  
  - 
  v  
  - 
  m644  
  ../ 
  examples 
  / 
  smb 
  . 
  conf 
  . 
  default  
  / 
  etc 
  / 
  samba 
 install  
  - 
  v  
  - 
  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.....