CentOS 5下samba的安装与配置(修订)

简介:
一、目标设想
二、samba源码安装
三、
创建配置文件  
四、
添加用户及创建相关目录 
五、启动samba及双向访问
六、其它

一、目标:
用户组:cloud
组中用户:william,lqs
组中每个用户,对各自的目录有读写权限;
william对lqs目录有可读权限,但lqs不可访问william目录。
 
二、安装:
 
  1. wget http://ftp.samba.org/pub/samba/stable/samba-3.5.8.tar.gz 
  2. tar -zxvf samba-3.5.8.tar.gz 
  3. cd samba-3.5.8 
  4. cd source3
  5. ./configure && make && make install
注:源码安装,注意命令路径,以及配置文件的路径。
另外,源码解压以后,里面有source3和source4,我们安装的是3,source4目前还是测试版本。 
还需要指定samba库文件的位置,否则可能会报错: 
 
  1. vi /etc/ld.so.conf.d/samba.conf,添加:  
  2. /usr/local/samba/lib  
  3. /sbin/ldconfig -v  
三、配置文件(注意源码安装方式的samba的配置文件位置!):
/usr/local/samba/lib/smb.conf:

 
  1. [global] 
  2. workgroup =hdtworld.com 
  3. server string = Samba Server %v 
  4. load printers = no 
  5. printing = bsd 
  6. printcap name = /dev/null 
  7. disable spoolss = yes 
  8. security = user
  9. passdb backend = smbpasswd
  10. smb passwd file = /usr/local/samba/lib/smbpasswd 
  11. encrypt passwords = true 
  12. unix charset = GB18030 
  13. log file = /var/log/samba/log.%m 
  14. max log size = 50 
  15. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 
  16. interfaces = lo eth0  #注意改成你自己的网卡接口
  17. bind interfaces only = yes 
  18. hosts allow = 127.0.0.1 192.168.0.0/16  #也可以指定具体的IP
  19. hosts deny = 0.0.0.0/0 
  20. dns proxy = no
  21.  
  22. [william] 
  23. comment = samba directory for william 
  24. read only = no 
  25. writable = yes 
  26. browseable = no 
  27. public = no 
  28. guest ok = no 
  29. create mode = 0644 
  30. force create mode = 0644 
  31. directory mode = 0755 
  32. force directory mode = 0755 
  33. #valid users = @cloud 
  34. #write list = william 
  35. valid users = william 
  36. path = /opt/share/william 
  37.  
  38. [lqs] 
  39. comment = samba directory for lqs 
  40. read only = no 
  41. writable = yes 
  42. browseable = no 
  43. public = no 
  44. guest ok = no 
  45. create mode = 0644 
  46. force create mode = 0644 
  47. directory mode = 0755 
  48. force directory mode = 0755 
  49. valid users = @cloud 
  50. write list = lqs 
  51. path = /opt/share/lqs
注:按自己的实际需求修改global模块的host allow和interfaces,以及设定共享模块名称。很重要噢!

四、
添加系统组及用户:
 
 
  1. groupadd cloud 
  2. useradd william -g cloud -s /sbin/nologin 
  3. useradd lqs -g cloud -s /sbin/nologin
为系统用户创建samba密码(注意命令路径):
 
 
  1. /usr/local/samba/bin/smbpasswd -a lqs  
  2. /usr/local/samba/bin/smbpasswd -a william 
创建目录:
 
 
  1. cd /opt 
  2. mkdir -p share/william 
  3. mkdir -p share/lqs
更改目录属主:
 
 
  1. chown -R william:cloud share/wiliam 
  2. chown -R lqs:cloud share/lqs 
设置目录权限,配合后面配置文件中的权限设定,以保证其它用户无法访问william目录,而william目录可以访问其它目录(只读)。
 
 
  1. chmod 777 share 
  2. chmod 755 share/lqs 
  3. chmod 700 share/william
注:这个过程中注意三种用户:windows用户,linux用户,samba用户。
另注:曾经遇到过没有密码文件的问题。配置文件及各个步骤都按照上述示例做的,但是在使用smbpasswd -a命令设置密码时,它没有创建密码文件,即使我手动创建一个密码文件,它也不往里面写入数据。
怀疑它把密码创建到private目录里的secrets.tdb文件中。
这个不影响samba的使用,按正常方式输入用户名和密码访问即可。

五、启动与关闭:
 
  1. /usr/local/samba/sbin/nmbd -D 
  2. /usr/local/samba/sbin/smbd -D 
 
  1. kill -9 $(pgrep nmb) 
  2. kill -9 $(pgrep smb) 
 
六、 linux与windows双向访问
1、windows读写linux目录的方法非常简单:
 
  1. \\192.168.9.45\william 
  2. \\192.168.9.45\lqs
注:后面的william和lqs,实际上是模块的名称,而不是模块路径。这一点要注意。

2、linux读写windows目录,分两个步骤:
  1)首先在Windows中:
  在F盘中创建share文件夹,并使其共享;创建一个系统用户user01,并为share目录添加该用户;
  2)然后在CentOS上:
 
  1. mkdir -p /opt/myshare 
  2. mount -t cifs -o username=user01 //192.168.27.56/share /opt/myshare  
   曾出错,错误提示:mount error 92 = Protocol not available,Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)。
   解决:是由于windows的netlogon服务没有打开!
   参考文档:
http://blogold.chinaunix.net/u3/114273/showart_2417219.html。
    它把linux挂载windows总结了三步曲:
    第一步:检查windows里的共享文件夹是否可共享。这一步最容易忽视,我就在这个地方栽的跟头!
    第二步:创建windows的系统用户,并添加到共享目录。
    第三步:在linux里挂载windows目录:参考前面段落中的命令。
 
 
   错误提示2:
 
  1. mount: block device //192.168.27.56/share is write-protected, mounting read-only 
  2. mount: cannot mount block device //192.168.27.56/share read-only 
  解决:yum install samba-client 
  
    而Windows访问Samba最常见的错误是:
    由于没有关闭iptables,没有关闭selinux,导致虽然连接成功,但访问samba模块失败。错误提示为:    \\$IP\$ModuleName 无法访问,您可能没有权限使用网络资源。请与这台服务器的管理员联系......
  解决:关闭iptables和selinux
 
 
  1. setenforce 0 
  2. service iptables stop
    最好在selinux的配置文件中关闭它,路径为:/etc/selinux/config。iptables最好用chkconfig命令,关闭其自启动。
 
六、其它:
    从这次samba服务器搭建实践来看,samba的权限设置应该包括两个层次:操作系统中的目录本身的权限,以及smb.conf模块中设置的用户权限。

------------------------------------------------------------------
2011-10-14修订:
   今天遇到了另外一个问题。今天又搭建了一个samba,共享目录及其父目录的权限也改成了777,但是linux共享目录里的文件对windows不可见!也就是说,我从windows里访问这个共享目录时,看不到其中的文件,所有文件都看不到!但是从windows里创建的文件,在linux和windows中都可以看得到。
   从网上搜索了一下,解决办法也是关闭selinux:setenforce 0

本文转自 li_qinshan 51CTO博客,原文链接:http://blog.51cto.com/share/486836
相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
144 0
|
2月前
|
关系型数据库 MySQL Linux
centos7.0环境下安装MySql_8.0.12
centos7.0环境下安装MySql_8.0.12
|
1月前
|
存储 JavaScript Linux
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
|
3天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
33 2
|
10天前
|
网络协议
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
centos8 网卡 Nmcli(是network的简写 Nmcli)配置网络
11 0
|
10天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
19 0
|
10天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
12 0
|
10天前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
47 0
|
16天前
|
IDE Linux 开发工具
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
CentOS7.4+REDHAWK2.3.1安装教程——折腾篇
18 0
|
21天前
|
Linux Shell 开发工具
CentOS8中Docker安装及部署
CentOS8中Docker安装及部署
67 0

热门文章

最新文章