07月24, 2018

Ubuntu 16.04下Samba相关配置

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共享不出现在网络邻居方法

网络和共享中心\高级共享设置 关闭网络发现

本文链接:https://lxyit.com/article/show/149.html

-- EOF --