samba服务器的配置实例
时间:2006-11-10 来源:gny31306
SAMBA服务器配置
1.工作原理:
基于netbios协议,win95/98/2000/xp需要安装tcp/ip,NETBEUI,IPX/SPX协议任一种,可以在网上邻居找“工作组”,主机名,共享目录名
2.# rpm -qa | grep samba
samba-client-3.0.10-1.4E.6
samba-common-3.0.10-1.4E.6
samba-3.0.10-1.4E.6五
3.#安装samba
# rpm –ivh samba-3.0.10-1.4E.rpm
# rpm –ivh –aid samba*.rpm ---关联包一次性安装,需要安装包在当然目录
4.客户端工具:smbtree看网内信息
# smbtree –b 发广播
# smbtree –D
# smbtree –b –U redhat%redhat
Nmblookup 寻找主机名(BiOS)
# nmblookup win2000
# nmblookup \* 查找网内主机
Smbclient
# smbclient –L win2000/IP
# smbclient –L 10.0.0.1 –U redhat提示输密码
===== smbclient –L 10.0.0.1 –U redhat%redhat
# smbclient //10.0.0.1/lab –U redhat%redhat 可以进入 共享目录
Smb:\> help
\>get
\>put /root/install.log install.log
Testparm 测试本机
Smbmount
# smbmount //10.0.0.1/lab /mnt/lab –o username=redhat%redhat
Smbtar
# smbtar –s 10.0.0.1 –U redhat –p redhat –x lab –t lab.tar备份到本地,如出现错误或备份文件大小为0
可用# which smbtar
# vi /usr/bin/smbtar 找到——N(密码无效)去掉
# smbclient –L 10.0.0.1 –N 表示匿名
5. 配置文件相关说明
6.设置共享目录
[myshare]
comment = Mary's and Fred's stuff
path = /var/redhat
valid users = username (@groupname)
public = yes/no
write list = username (@groupname)
create mask = 0660
directory mask =0740
其他权限
Host deny = all
hosts allow = 192.168.1. 192.168.2. 127.
Host deny=10.0.0.2
Host allow=192.168.1
Host allow=10.0.0
Host deny=10.0.0.254
不等于host allow=10.0.0 except 10.0.0.254
7.新建samba用户
# useradd username
# smbpasswd –a username
# smbpasswd –x username
8.用户账号映射:在/etc/samba/smb.conf
去掉 username map = /etc/samba/smbusers 的注释
# echo “redhat=tom jack” /etc/samba/smbuser
9.实例
[docs]
Path=/usr/share/doc
Comment = share document
Public = yes
[redhat]
Path = /usr/redhat
Comment = redhat’s files
Public= no
Valid users = redhat @goat
10. 案例
要求:所有员工都能流动办公,但不管在哪台机器上,都要把自己的文件数据保存在Samba服务器上;
市场部和技术部的人都有自己的各自目录,同一部门的人共同拥有一个共享目录,其他部门的人只能访问在服务器自己的个人目录
CEO和财务总监拥有察看权限(暂不做)
所有用户都不允许使用服务器上的shell
# useradd -g sales -s /sbin/nologin tom
useradd -g sales -s /sbin/nologin jack
smbpasswd -a tom
smbpasswd -a jack
以下是一个for 语句写的简单shell
# for user in red blue;
> do
> useradd -g tech -s /sbin/nologin $user
> smbpasswd -a $user
> done
# more /etc/samba/smbpasswd
# useradd ceo
# useradd finance
# mkdir /home/sales /home/tech
# ls -ld /home/tech /home/sales
# chmod 770 /home/sales /home/tech
# chgrp sales /home/sales
# chgrp tech /home/tech
# ls -ld /home/tech /home/sales
# chmod g+s /home/sales /home/tech
# ls -ld /home/tech /home/sales
下面开始写配置文件
vi /etc/samba/smb.conf
[sales]
comment = sales
path = /home/sales
public = no
valid user = @sales
write list = @sales
create mask = 0770
directory mask = 0770
[tech]
comment = tech
path = /home/tech
public = no
valid user = @tech
write list = @tech
create mask = 0770
directory mask = 0770
# service smb restart
测试:
# smbclient –L 10.0.0.1 –U tom%tom123
# smbmount //10.0.0.1/sales /mnt –o username=tom%tom123
也可以实现自动挂载vi /etc/auto.misc
Sales –f type = smbfs,username=tom%tom123:/10.0.0.1/sales
实验一:配置带用户验证的共享目录
1、创建一个samba的共享目录,并将其权限设定为所有者、组用户和其他用户可对其进行读写:
#mkdir /samba
#ls -l
#chmod 777 /samba
2、修改/etc/samba/smb.conf配置文件
在[global]部分做如下修改:
security=user //如果是user,则通过windows访问将要求输入用户名与密码
encrypt passwords=yes ;如果默认是这样就不用改了。
smb passwd file = /etc/samba/smbpasswd (密码文件的位置)
在文件末尾添加如下内容:
[samba]
comment=Thsi is my samba server ;这是注释行,可以不写东西
path=/samba
read only=no
create mode=0664 ;这是文件权限
directory mode=0777 ;这是目录权限
3、创建一个samba用户(samba用户必须是系统帐户)
①首先创建一个系统帐户[该帐户在Windows下有没有都无所谓]
#useradd smbuser
#passwd smbuser
②然后创建samba帐户
#smbpasswd -a smbuser [-a必须加,为了生成密码文件smbpasswd],该密码是windows登陆Linux的smbuser用户密码
4、重新启动samba服务
#service smb restart
#pstree |grep smb ;观察服务是否启动
5、进行测试
如果想从远程windows机器的“网上邻居”中访问/samba目录,就会要求输入用户名和密码。这里的用户是指上述第3步创建的samba用户
当然也可在运行中输入\\samba服务器ip地址进行访问
*******************************************************
实验二:除了上述提到的设置外,进行目录共享时还可以有更多的选项。
如下:
[smb]
comment=This is the second samba
path=/smb
read only=no
create mode=0664
directory mode=0775
deny host=192.168.2. ;拒绝所有2网段上的机器访问
allow host=192.168.2.11 ;允许这台机器访问
public=yes ;连接时不需要用户名和密码,这和guest ok=yes等同,
这只应用于该目录,但如果把security=share,则会开放所有目录
browseable=no ;禁止显示目录,相当于windows 2000下的隐藏目录
max connection=2 ;并发用户连接数
实验三:smbclient的使用
查看本机或者远程机器的共享情况
1、使用命令smbclient -L localhost查看本机共享情况:
#smbclient -L localhost
2、如果要在linux下访问Windows下的共享资源,则使用命令:
#smbclient //192.168.1.100/share_dir -U administrator
如果成功则进入:smb:\>
实验四:smbmount的使用
#smbmount //win_ip/win_share /mnt/d -o username=administrator
将远程Windows目录挂载到本地目录/mnt/d下