Linux搭建Samba文件共享服务

Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件 , 由服务器及客户端程序构成 ; SMB (Server Messages Block , 信息服务块) 是一种在局域网上共享文件和打印机的一种通信协议 , 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务 ; SMB 协议是 客户机/服务器 型协议 , 客户机通过该协议可以访问服务器上的共享文件系统 , 打印机及其他资源 ; 通过设置 NetBIOS over TCP/IP 使得 Samba 不但能与局域网络主机分享资源 , 还能与全世界的电脑分享资源 ;

1. 安装 Samba

# yum install samba


2. 修改配置

Samba 的配置文件是在 /etc/samba/smb.conf

[global]
    workgroup = SAMBA   #samba的工作组 , 设置成 Windows 的工作组
    security = user   #安全选项 , 可以是 share , user , server , domain 安全级别递增
    passdb backend = tdbsam
    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

[homes]   #共享默认会将用户的主目录共享 , 这是不安全的 , 可以将其注释
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = No
    read only = No
    inherit acls = Yes

[printers]   #打印机共享
    comment = All Printers
    path = /var/tmp
    printable = Yes
    create mask = 0600
    browseable = No

[print$]
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = root
    create mask = 0664
    directory mask = 0775

[rootdir]   #自定义的共享文件夹
    comment = LinuxRoot
    path = /   #共享的路径
    read only = No

修改时去掉 # 后面的备注


3. 添加 Samba 用户

# smbpasswd -a root

然后根据提示设置相应的密码 , 注意这里的用户必须是系统的已存在的用户

smbpasswd 命令是用于维护 Samba 服务器的用户帐号的 , 具体如下 :

// 添加 Samba 用户帐号 :
# smbpasswd -a sambauser 
// 禁用 Samba 用户帐号 :
# smbpasswd -d sambauser
// 启用 Samba 用户帐号 :
# smbpasswd -e sambauser
// 删除 Samba 用户帐号 :
# smbpasswd -x sambauser


4. 启动 Samba 服务

# service smb start

相关命令 :

// 停止 Samba 服务器的服务
# service smb stop
// 显示 Samba 服务器目前的状态
# service smb status
// 重新启动 Samba 服务器
# service smb restart


5. Windows 访问共享目录

直接 Windows + R , 在运行界面输入 \\192.168.0.150 , 也就是你的 Linux 主机地址 , 会弹出用户名密码输入界面 , 输入刚刚设置的用户名密码就可以访问


6. 其他命令

  • 测试 smb.conf 文件的内容是否正确

    # testparm
    

    命令是配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单


7. 常见问题

  • 如果 Windows 下访问 Linux 下共享目录 , 提示没有权限

    • 确保 Linux 下防火墙关闭或者是开放共享目录权限

    • 确保 Samba 服务器配置文件 smb.conf 设置没有问题

    • setlinux 关闭 , 可以用 # setenforce 0 命令执行 ; 默认 SELinux 禁止网络上对 Samba 服务器上的共享目录进行写操作 , 即使你在smb.conf中允许了这项操作 , /usr/bin/setenforce 修改SELinux的实时运行模式 , setenforce 1 设置SELinux 成为enforcing模式 , setenforce 0 设置SELinux 成为permissive模式 , 永久生效修改 /etc/selinux/config , 将 SELINUX=enforcing 改为 SELINUX=disabled

  • Samb 还需要开放下面四个端口

    UDP 137 , UDP 138 , TCP 139 , TCP 445
    

个人网站: Github , 欢迎点击给星

你可能感兴趣的:(Linux)