学习的一个小技巧:
一般安装成熟的服务后,都会有针对该服务的帮助文档和例子,在/etc/share/doc/服务名,里面有针对各种情况的EXAMPLES
提示:1、Samba和Vsftp不同,当设置Samba为基于账户、密码的模式后,Samba账户名为系统账户名,密码为Samba密码;而FTP账户为系统账户名,密码为系统密码。
所以Samba相对于FTP更安全些。
2、samba基于NetBIOS协议的,不能跨网段。
3、验证时,用windows如果需要切换用户,需要清空历史纪录,运行cmd,输入net use * /del (把用过的网络信息清楚掉)
Samba:基于 Windows<------>Linux 的服务
主要软件包:
---服务端:samba
---客户端:samba-client、cifs-utils
Samba配置构成:
---配置目录及主要配置文件:
/etc/samba
/etc/samba/smb.conf
[global] #全局设置
workgroup = MYGROUP #定义工作组(无意义,现在没人用了)
server string = Samba Server Version #Samba版本信息
hosts allow = 不写就是不限制访问 #限制哪些人可以访问(有模板)
security = share 或 user #基于匿名或账户的共享
[home] #定义共享home
[adc] #定义共享abc(目录) #可共享多目录
path = /abc #共享路径
writable = no #是否可写
valid uses = user1,user2,user3 #定义哪些账户可以访问
write list = userlist #允许写入的账户列表
---配置检查工具,可帮助排错
testparm :修改完samba配置文件后,可以使用testparm测试是否有问题
#设置samba密码需要通过smbpasswd,或pdbedit
1.useradd renjidong
2.smbpasswd -a renjidong #添加密码
3.smbpasswd -x renjidong #删除密码
#在/etc/samba/smb.conf文件的末尾,加入更多的[]共享
#####################
Linux作为客户端,访问samba共享
#####################
需要samba-client软件
smbclient -L 服务器地址 #查看对方的共享信息
smbclient //服务器地址/共享名 #基于匿名
smbclient -U 用户名 //服务器地址/共享名 #基于账户
如果希望将对方的共享,加载到本地目录:
mount //服务器地址名/共享名 挂载点 #基于匿名
mount -o username=用户名,password=密码 //服务器地址/共享名 挂载点 #基于账户
如果windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。
则检查
a、确保linux下防火墙关闭或者是开放共享目录权限
b、确保samba服务器配置文件smb.conf设置没有问题
c、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。 /usr/bin/setenforce 修改SELinux的实时运行模式
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数
/usr/bin/setstatus -v