插件窝 干货文章 如何在Linux上设置文件共享(如Samba)

如何在Linux上设置文件共享(如Samba)

Samba sudo shared 共享 598    来源:    2025-04-15

在Linux上设置Samba文件共享

Samba是一个开源软件套件,允许Linux/Unix系统与Windows系统进行文件和打印机共享。以下是设置Samba文件共享的详细步骤:

1. 安装Samba

在基于Debian/Ubuntu的系统上:

sudo apt update
sudo apt install samba

在基于RHEL/CentOS的系统上:

sudo yum install samba
# 或者对于较新版本
sudo dnf install samba

2. 配置Samba

编辑Samba的主配置文件:

sudo nano /etc/samba/smb.conf

基本共享配置示例

在文件末尾添加以下内容(根据您的需求修改):

[shared]
   comment = Shared Folder
   path = /srv/samba/shared
   browsable = yes
   writable = yes
   guest ok = no
   valid users = @sambashare
   create mask = 0660
   directory mask = 0770

参数说明:

  • [shared]: 共享名称,客户端将看到这个名称
  • path: 共享的本地目录路径
  • browsable: 是否在网络中可见
  • writable: 是否可写
  • guest ok: 是否允许匿名访问
  • valid users: 允许访问的用户或组
  • create mask/directory mask: 新建文件和目录的权限

3. 创建共享目录并设置权限

sudo mkdir -p /srv/samba/shared
sudo chown nobody:nogroup /srv/samba/shared
sudo chmod 1777 /srv/samba/shared  # 对于公共可写共享
# 或者对于受限制的共享:
sudo groupadd sambashare
sudo chgrp sambashare /srv/samba/shared
sudo chmod 2770 /srv/samba/shared

4. 创建Samba用户

# 首先确保用户已存在系统用户(如已有则跳过)
sudo useradd -M -s /usr/sbin/nologin username

# 添加Samba用户密码(与系统密码分开)
sudo smbpasswd -a username

5. 重启Samba服务

# 在systemd系统上:
sudo systemctl restart smbd nmbd
# 或者
sudo systemctl restart smb

# 在较旧的系统上:
sudo service smbd restart
sudo service nmbd restart

6. 防火墙配置(如果需要)

# 对于UFW (Ubuntu):
sudo ufw allow samba

# 对于firewalld (RHEL/CentOS):
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

7. 测试配置

testparm  # 测试配置文件语法是否正确

8. 从客户端访问

Windows:

在文件资源管理器中输入:

\\linux-server-ip\shared

Linux/macOS:

smbclient //linux-server-ip/shared -U username
# 或挂载到本地目录
sudo mount -t cifs //linux-server-ip/shared /mnt/samba -o username=username

高级选项

匿名共享配置:

[public]
   comment = Public Share
   path = /srv/samba/public
   browsable = yes
   writable = yes
   guest ok = yes
   create mask = 0666
   directory mask = 0777

特定用户组访问:

[restricted]
   comment = Restricted Share
   path = /srv/samba/restricted
   valid users = @sambashare
   writable = yes
   create mask = 0660
   directory mask = 0770

通过以上步骤,您应该能够在Linux系统上成功设置Samba文件共享服务。