Samba是 SMB/CIFS网络协议的重新实现,它作为NFS的补充使得在Linux和Windows系统之间进行文件共享、打印更容易实现。
SAMBA套件:
(1)samba:这个套件主要包含了SAMBA的主要daemon档案(smbd及nmbd),SAMBA的文档(document),以及其它与SAMBA相关的logrotate设定文件及开机预设选项档案等。
(2)samba-common:这个套件主要提供了SAMBA得主要设定档(smb.conf),smb.conf语法检验的测试程序(testparm)等。
(3)samba-client:这个条件则提供了当Linux做为SAMBA Client端时,所需要的工具指令,例如挂载SAMBA档案格式的执行档smbmount等。
一、安装Samba:
samba:
sudo apt-get install samba
smbclient: (服务器可以不装)
sudo apt-get install smbclient
二、修改配置文件:
先备份:
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
编辑配置文件:
vim /etc/samba/smb.conf
[global] workgroup = WORKGROUP security = user netbios name = samba_server passdb backend = tdbsam [share] comment = share Directories path = /mnt/data valid users = share write list = share admin users = share create mask = 0777 directory mask = 0777 #force user = nobody #force group = nogroup writable = yes browseable = no available = yes max connections = 0 public = no printable = no
注意:
browseable = no 关闭浏览后,访问共享地址必须带上对应文件夹名字
三、创建账号
useradd share -M -s /sbin/nologin
生成samba账号,并设置密码
smbpasswd -a share
激活账号
smbpasswd -e share
四、创建共享目录
mkdir -p /mnt/data
修改目录权限
chown -R share:share /mnt/data
五、重启Samba:
sudo /etc/init.d/samba restart
或者
service smbd restart && service nmbd restart
六、问题处理
1、无法访问Connection to xxx.xxx.xxx.xxx failed (Error NT_STATUS_IO_TIMEOUT)
请测试445、139、138、137端口是否可以访问,运营商会封端口
2、可以连接并查看到共享目录,但是目录文件不可见
SELinux的问题,关闭即可
不关机关闭方法:
setenforce 0
关闭方法:
vim /etc/sysconfig/selinux
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=enforcing # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted
把 SELINUX设定为disable, 下次启动系统后将会停止SElinux。
检查SELinux现时况态的命令是
getenforce
3、linux挂载Samba分享
安装:
sudo apt-get install cifs-utils
临时挂载:
mount -t cifs //xxx.xxx.xxx.xxx/share/ /mnt -o defaults,username=share,passward=123456,rw
永久挂载:
vim /etc/fstab
添加:
//xxx.xxx.xxx.xxx/share/ /mnt cifs defaults,username=share,passward=123456,rw 0 0
4、使samba服务器不出现在网络邻居上面
只运行smbd而不运行nmbd,就不会出现名称,因为是nmbd提供NETBIOS名字服务。
systemctl disable nmbd.service
5、windows共享不出现在网络邻居方法
网络和共享中心\高级共享设置 关闭网络发现