Skip to content

samba 使用简介#

方便共享文件 到 windows

📦 安装 Samba#

# 更新软件包列表
sudo apt update

# 安装 Samba 服务
sudo apt install -y samba

# 验证安装
samba --version

主配置文件位置#

/etc/samba/smb.conf

配置#

指定账号的访问

选择一个共享路径,假设为/home/work/sharedir,不存在的情况下可以自己创建 sudo mkdir -p /home/work/sharedir

添加一个可访问用户到Ubuntu系统中,如smbuser,若存在则不需要创建 sudo useradd smbuser -s /usr/sbin/nologin

修改文件权限使得smbuser用户能够访问共享路径 sudo chown smbuser:smbuser /home/work/sharedir

将用户smbuser添加到samba的smbpasswd file中(即在samba服务中注册该账户)

sudo smbpasswd -a smbuser

后续设置登录密码,用于远程访问#

  • 修改samba配置文件(/etc/samba/smb.conf)
  • 打开文件 : sudo vim /etc/samba/smb.conf
  • 在文件尾部添加以下信息,并保存(vim : wq)
[secret]    #共享目录名,访问时的展示名
    comment = Secret File       #该共享目录的描述
    path = /home/work/sharedir  #访问的实际路径,前面设置的
    valid users = smbuser       #设置可访问的用户,此处为前面添加的用户smbuser(注意users不要拼写错误)
    guest ok = no               #是否允许访客,否
    writable = yes              #可写,是
    browsable = yes             #可浏览,是
重启服务,使上述设置生效
sudo service smbd restart
sudo service nmbd restart
#或者以下方法
sudo restart smbd
sudo restart nmbd
path="home/share"

🛠️ 故障排除#

常见问题解决#

# 1. 检查服务状态
sudo systemctl status smbd
sudo systemctl status nmbd

# 2. 检查端口监听
sudo netstat -tlnp | grep smbd
# 正常应监听 139 和 445 端口

# 3. 查看日志
sudo tail -f /var/log/samba/log.smbd
sudo tail -f /var/log/samba/log.nmbd

# 4. 防火墙设置
sudo ufw allow samba
# 或手动开放端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
sudo ufw allow 137:138/udp

# 5. SELinux 设置(CentOS/RHEL)
sudo setsebool -P samba_enable_home_dirs on
sudo setsebool -P samba_export_all_rw on

连接测试#

# 测试本地连接
smbclient //localhost/shared -U sambauser

# 测试远程连接
smbclient //192.168.1.100/shared -U sambauser

# 无交互模式测试
echo "ls" | smbclient //192.168.1.100/shared -U sambauser%