|
本文将以一个完整的示例来展示如何配置 samba 来实现 Linux 和 Windows 的文件共享。
目标:假设希望共享 Linux 服务器上的 /share/fs 目录。
1.1. 查看是否已经安装 samba
CentOS:rpm -qa | grep samba
Ubuntu:dpkg -l | grep samba
1.2. 安装 samba 工具
CentOS:yum install -y samba samba-client samba-common
Ubuntu:sudo apt-get install -y samba samba-client
1.3. 配置 samba
samba 服务的配置文件是 /etc/samba/smb.conf,如果没有则 samba 无法启动。
执行以下命令,编辑配置文件:
vim /etc/samba/smb.conf
修改配置如下:
[global]
workgroup = SAMBA
security = user
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 = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[fs]
comment = share folder
path = /share/fs
browseable = yes
writable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
public = yes
valid users = root
说明:
我在这里添加了一个 [fs] 标签,这就是共享区域的配置。
这里设置 path 属性为 /share/fs,意味着准备共享 /share/fs 目录,需要根据实际需要设置路径。/share/fs 目录的权限要设置为 777:chmod 777 /share/fs。
browseable、writable 等属性就比较容易理解了,即配置共享目录的访问权限。
valid users 属性指定允许访问的用户,需要注意的是指定的用户必须是 Linux 机器上实际存在的用户。
1.4. 创建 samba 用户
创建的 samba 用户必须是 Linux 机器上实际存在的用户。
$ sudo smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
根据提示输入 samba 用户的密码。当 samba 服务成功安装、启动后,通过 Windows 系统访问机器共享目录时,就要输入这里配置的用户名、密码。
查看 samba 服务器中已拥有哪些用户 - pdbedit -L
删除 samba 服务中的某个用户 - smbpasswd -x 用户名
1.5. 启动 samba 服务
CentOS 6
$ sudo service samba restart # 重启 samba
$ sudo service smb restart # 重启 samba
CentOS 7
$ sudo systemctl start smb.service # 启动 samba
$ sudo systemctl restart smb.service # 重启 samba
$ sudo systemctl enable smb.service # 设置开机自动启动
$ sudo systemctl status smb.service # 查询 samba 状态
Ubuntu 16.04.3
$ sudo service smbd restart
1.6. 为 samba 添加防火墙规则
$ sudo firewall-cmd --permanent --zone=public --add-service=samba
$ sudo firewall-cmd --reload
1.7. 测试 samba 服务
$ smbclient //localhost/fs -U root
输入 samba 用户的密码,如果成功,就会进入 smb: \>。
1.8. 访问 samba 服务共享的目录
Windows:
访问:\\<你的ip>\<你的共享路径> :
Mac:
与 Windows 类似,直接在 Finder 中访问 smb://<你的ip>/<你的共享路径> 即可。
|
|