
1、首先安装samba服务器端,用yum的方式安装,如果配置的本地yum源,不需要连接外网,如果是网络yum源,需要配置一下网络。命令:yum -y install samba*samba*安装服务器和客户端。
2、创建共享目录,查看目录权限,命令:mkdir /workdata &&ll / | grep workdata。
3、复制一个测试文件到共享目录中,命令:cp /etc/passwd /workdata &&ll /workdata。
4、然后修改samba配置文件,修改工作组(没有的话,需要先建立),允许匿名访问和共享目录。
5、最后测试是否可以访问,就完成了。
linux端的配置: 1. 关闭防火墙,或开启防火墙中samba服务需要的端口(打开配置界面会看到的) 2. 从新启动smb和nmb服务(root用户下 *** 作): /etc/init.d/smb stop /etc/init.d/smb start /etc/init.d/nmb stop /etc/init.d/nmb start 看服务是否启动: pgrep smbd pgrep nmbd 打开samba配置界面,首选项-》服务器设置-》基本,工作组写MSHOME,描述请便, 安全性为“共享”,加密密码“是”,来宾账号设为你现在正在用的登录用户, 首选项-》Samba用户添加用户: 设为你现在正在用的登录用户,windows用户名和samba密码任意。 文件-》添加共享-》基本:选个文件夹即可。 -》访问:允许所有用户访问。 看windows电脑可用mount -t smbfs //192.168.1.1/test /mnt/net -o username=XXXXX 或mount -t cifs -o username=xxx,password=xxx //hostname/dir /mnt/dir 或smbclient 相关 *** 作 或位置-》网络-》windows网络-》MSHOME查看 到此结束!Windows XP 端: 1. 启用来宾账户 2. 开启netbios服务等(一般情况下是开的,不用管) 3. 瑞星(或其他)防火墙的安全级别设为中级,关闭系统自带的防火墙等,如果不行干脆先关掉试试. 4. 网上邻居-》配置家庭或办公小型网络(启用打印机和共享文件服务),工作组MSHOME 5. 查看工作组中的计算机或搜索IP等,看看正常否。附录: smbclient用法1,列出某个IP地址所提供的共享文件夹smbclient -L 198.168.0.1 -U username%password 2,像FTP客户端一样使用smbclientsmbclient //192.168.0.1/tmp -U username%password 执行smbclient命令成功后,进入smbclient环境,出现提示符: smb:\>这里有许多命令和ftp命令相似,如cd、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。 3,直接一次性使用smbclient命令smbclient -c "ls" //192.168.0.1/tmp -U username%password和smbclient //192.168.0.1/tmp -U username%passwordsmb:\>ls功能一样的 例,创建一个共享文件夹smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password如果用户共享//192.168.0.1/tmp的方式是只读的,会提示NT_STATUS_ACCESS_DENIED making remote directory \share1二、安装$rpm -qa | grep samba#查看系统是否已安装samba
$yum install samba #使用yum软件包管理工具安装samba
三、常用命令
1.service smb status#查看smd服务的状态
2.service smb start #运行smb服务
3.service smb stop #停止服务
4.service smb restart #重启服务,但在实际中一般不采用
5.service smb reload #重载服务,在实际中较常用,不用停止服务
四、配置
4.1.基本配置
samba的主要配置文件放在/etc/samba/smb.conf文件夹下。文件可以分为两大部分,第一部分是全局配置,第二部分是局部配置。下面是一个配置文件及相关注释:
[global] #全局配置,配置文件以[segname]分段,除了global影响全部段之外,各段之间互不影响
workgroup = MYGROUP#samba的工作组
server string = Samba Server Version %v#samba的说明信息
netbios name =Aric#简单的说就是计算机名称
log file = /var/log/samba/%m.log#日志文件存放位置
max log size = 10#日志文件大小,以M为单位
security = share#安全选项,可以是share,user,server,domain安全级别递增
encrypt passwords = yes#密码是否加密
smb passwd file = /etc/samba/smbpasswd#密码文件存放位置
username map = /etc/samba/smbusers#用户文件存放位置
[share]#局部配置,[]里面是段名,也就是我们的共享名
comment = This is my shared folder.#该共享的说明
path = /home/share#共享路径
writeable = yes#共享文件夹是否可写
browseable = yes#是否可浏览
guest ok = yes#跟public一样,是否允许guest用户
create mode =0664#创建文件权限定制
directory mode=0775#创建文件夹权限
valid users=允许访问该共享的用户
invalid usrs=禁止访问的用户,root,@group,@表示组
admin users=该共享的管理者
write list=有写权限的用户
display charset=UTF-8
unix charset=UTF-8
dos charset=UTF-8 #这三个是避免乱码的,dispaly是显示目录时的编码,另外两个跟名字对应。若dos下为zh_CN.GB2312.GBK。则3个全部设为cp936
4.2 配置文件中的详细解释
4.2.1 samba的安全级别
Linux下samba有四种安全级别,即Share、User、Server、Domain,它们的安全级别由低到高,在配置文件中具体由security参数指定。其中,Share级是指用户不需要账户和口令即可登录服务器;User级是Samba服务器默认的安全级别,是指服务器负责检查登陆者的账户和口令;Server级是指账户和口令的检查由另外的Samba或Windows服务器负责;Domain级是指由一台Windows NT/2000域服务器负责检查账户和口令。用户在配置Samba服务器时,可以根据所需要的不同安全等级来具体配置
4.2.2 samba的密码存放方式
passdb backend = tdbsam | passdb | smbpasswd
backend即用户后台。有三种后台:smbpasswd、tdbsam和ldapsam。Sam即security account manager。
(1).smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。也就是说用这种方法创建的永和可以是虚拟的,也就是Linux系统中不存在该用户也可以。smbpasswd存放在/etc/samba中,有时需要手工创建该文件。
(2).tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
pdbedit –a username:新建Samba账户,必须先存在该系统用户
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户账号。
pdbedit –c “[]” –u username:恢复该Samba用户账号。
一般叫常用的用法是:
$useradd user1
$smbpasswd -a user1#这里可以改为pdbedit -a user1
$输入user1的共享密码
$确认user1的共享密码
(3).ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”这个我也不太清楚,就不说了。
4.3.用户映射
由于我们在创建samba用户时必须和系统用户同名,这就意味着不安全(当然某些人很乐意看到这样),但是,samba已经解决了这个问题,提供了用户映射,这个文件在/etc/samba/smbusers,
root=administrator
nobody=guest pcguest
test=prefer you
这样就Ok了,钱两行是为了方便windows用户使用,最后一行则是遮盖用户信息,也就是为了安全。
4.4. 常用的共享
[homes]共享默认会将用户的主目录共享,这是不安全的,所以我们要将其注释,当然还有[netlogon]
五、常见问题
5.1.提示没有权限访问
前提是我们将security=share,即不要求账号密码,这样还是不能访问,总是说没有权限访问。这有以下几种原因:
5.1.1 防火墙的问题
samba使用的端口在防火墙里没有添加例外,导致samba服务不能够使用,解决方法可以是
$iptables -F#清除防火墙的规则
也可以通过setup,将samba使用的端口添加例外,最好用第二中方法,毕竟防火墙还要保证系统的安全。
(2)seLinux的问题
这是系统本身的原因,我们安装系统的时候安装了selinux,而selinux禁止网络上其他计算机对samba上的共享目录进行写 *** 作,即使在smb.conf中允许了这项 *** 作,解决方法是:
$setenforce 0
我在这上面可吃了不少苦头。
(3)共享文件夹权限的问题
我们共享的路径本身权限不正确,就是说我们在smb.conf分配的权限是可读可写,但是在Linux文件系统下,该共享文件夹却是只读的,所以就出现了问题,我们一般讲共享的文件夹在Linux下降权限全部开放。
$chmod 777 /share
5.2.提示用户名或则密码不正确
当我们将安全级别为user时,就需要输入用户名和密码,但是用户名密码都是正确的,但是总是提示错误。这是因为我们在windos下输入用户名时,默认是在windows域中,二我们的账户是在Linux建立的,所以是不对的,只要将我们Linux主机的域名加载前面就行了。比如Linux下面的user2,我们直接输入user2可能就不对,我们必须将我们Linux主机的名字加在前面,如
hostname/user2
5.3.NT_STATUS_WRONG_PASSWORD
当我们在Linux使用
$smbclient //192.168.102.133/share
Enter root's password:此处回车
Domain=[groupname] os=[Unix] Server=[Samba 3.5.10-125.el6]
Server not using user level security and no password supplied
tree connect failed:NT_STATUS_WRONG_PASSWORD
下面是配置文件
[share]
comment= user share
path = /home/share
browseable = yes
writable = yes
security = yes
应该不会出错的,但是就是报错啊,后来才知道,少了一行
public =yes
因为,samba默认是不允许匿名用户访问的
5.4.挂载windows共享文件夹,smbmount不存在,smbfs无效的选项
这里简单的提一下,我们可以再一挂载windows下的共享文件夹,做法是先在windows下右击文件夹,选择共享选项,然后共享给特定用户。到Linux下
$ smbmount //windowsIP地址/共享名 挂载点 -o 选项1,选项2
但是提示smbmount不存在,yum也找不到,其实smbmount这个包太老了,已经淘汰了,所以肯定找不到的,及时找到了也不能用。可以用mount代替,
smbmount == mount -t smbfs ???
其实,这也是不等的,因为smbfs也淘汰了,现在时代进步太快了,呵呵,smbfs即smb file system 已经由cifs(common internet file system)代替了,所以我们要用mount -t cifs代替。
最后命令式:
mount -t cifs -o username=xxx password=xxx //windowsIP地址/共享名 /mnt/挂载点
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)