您的位置:首页 > 运维架构 > Linux

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

2011-01-27 19:46 459 查看
一、目标设想

二、samba源码安装

三、创建配置文件

四、添加用户及创建相关目录

五、启动samba及双向访问

六、其它

一、目标:

用户组:cloud

组中用户:william,lqs

组中每个用户,对各自的目录有读写权限;

william对lqs目录有可读权限,但lqs不可访问william目录。
二、安装:

wget http://ftp.samba.org/pub/samba/stable/samba-3.5.8.tar.gz tar -zxvf samba-3.5.8.tar.gz
cd samba-3.5.8
cd source3
./configure && make && make install

注:源码安装,注意命令路径,以及配置文件的路径。
另外,源码解压以后,里面有source3和source4,我们安装的是3,source4目前还是测试版本。
还需要指定samba库文件的位置,否则可能会报错:
vi /etc/ld.so.conf.d/samba.conf,添加:
/usr/local/samba/lib
/sbin/ldconfig -v

三、配置文件(注意源码安装方式的samba的配置文件位置!):

/usr/local/samba/lib/smb.conf:

[global]
workgroup =hdtworld.com
server string = Samba Server %v
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
security = user

passdb backend = smbpasswd
smb passwd file = /usr/local/samba/lib/smbpasswd
encrypt passwords = true
unix charset = GB18030
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
interfaces = lo eth0    #注意改成你自己的网卡接口
bind interfaces only = yes
hosts allow = 127.0.0.1 192.168.0.0/16    #也可以指定具体的IP
hosts deny = 0.0.0.0/0
dns proxy = no

[william]
comment = samba directory for william
read only = no
writable = yes
browseable = no
public = no
guest ok = no
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755
#valid users = @cloud
#write list = william
valid users = william
path = /opt/share/william

[lqs]
comment = samba directory for lqs
read only = no
writable = yes
browseable = no
public = no
guest ok = no
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755
valid users = @cloud
write list = lqs
path = /opt/share/lqs

注:按自己的实际需求修改global模块的host allow和interfaces,以及设定共享模块名称。很重要噢!

四、

添加系统组及用户:

groupadd cloud
useradd william -g cloud -s /sbin/nologin
useradd lqs -g cloud -s /sbin/nologin


为系统用户创建samba密码(注意命令路径):

/usr/local/samba/bin/smbpasswd -a lqs
/usr/local/samba/bin/smbpasswd -a william


创建目录:

cd /opt
mkdir -p share/william
mkdir -p share/lqs


更改目录属主:

chown -R william:cloud share/wiliam
chown -R lqs:cloud share/lqs


设置目录权限,配合后面配置文件中的权限设定,以保证其它用户无法访问william目录,而william目录可以访问其它目录(只读)。
chmod 777 share
chmod 755 share/lqs
chmod 700 share/william


注:这个过程中注意三种用户:windows用户,linux用户,samba用户。

另注:曾经遇到过没有密码文件的问题。配置文件及各个步骤都按照上述示例做的,但是在使用smbpasswd -a命令设置密码时,它没有创建密码文件,即使我手动创建一个密码文件,它也不往里面写入数据。

怀疑它把密码创建到private目录里的secrets.tdb文件中。

这个不影响samba的使用,按正常方式输入用户名和密码访问即可。

五、启动与关闭:

/usr/local/samba/sbin/nmbd -D
/usr/local/samba/sbin/smbd -D

kill -9 $(pgrep nmb)
kill -9 $(pgrep smb)


六、linux与windows双向访问
1、windows读写linux目录的方法非常简单:

\\192.168.9.45\william
\\192.168.9.45\lqs

注:后面的william和lqs,实际上是模块的名称,而不是模块路径。这一点要注意。

2、linux读写windows目录,分两个步骤:

1)首先在Windows中:

在F盘中创建share文件夹,并使其共享;创建一个系统用户user01,并为share目录添加该用户;

2)然后在CentOS上:

mkdir -p /opt/myshare
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:

mount: block device //192.168.27.56/share is write-protected, mounting read-only
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

setenforce 0
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 samba 休闲 centos