Linux之配置samba服务实现文件夹共享

参考:https://www.linuxidc.com/Linux/2017-11/148194.htm

0 背景

在用 linux 系统做开发时,很多时候是没有显示桌面系统条件的,比如说将 NVIDIA TX2 用在机器人等环境下,虽然可以用 xshell 连接修改代码,但对文件的操作还是不太方便。而在服务器上常用的一种操作是安装 samba 服务远程查看文件夹,因此将这种思路应用在 TX2 上,实现 windows 主机远程访问 TX2 的文件系统,samba 就是这样一种服务。

1 安装

安装方法很简单,apt 安装即可

sudo apt install samba

如果安装时报错如下

 The following packages have unmet dependencies:
 samba : Depends: python-dnspython but it is not installable
         Depends: python-samba but it is not going to be installed
         Depends: samba-common-bin (= 2:4.7.6+dfsg~ubuntu-0ubuntu2.23) but it is not going to be installed
         Depends: tdb-tools but it is not installable
         Depends: samba-libs (= 2:4.7.6+dfsg~ubuntu-0ubuntu2.23) but 2:4.7.6+dfsg~ubuntu-0ubuntu2.21 is to be installed
         Recommends: attr but it is not installable
         Recommends: samba-dsdb-modules but it is not going to be installed
         Recommends: samba-vfs-modules but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

是因为 apt 源的问题,导致依赖安装不完整,更换为清华源即可

 安装完之后可通过运行以下指令来查看samba版本

sudo smbstatus

要检查samba服务是否在运行,可运行以下指令

systemctl status smbd
systemctl status nmbd

2 编辑配置文件

只需要修改一个配置文件即可

sudo vim /etc/samba/smb.conf
# 打开后拖到最底部,新增以下内容

[Home Share]
comment = Home Public Folder
path = /
writable = yes
valid users = nvidia

上述内容的含义是在windows网络上显示文件夹名称为[Home Share],可访问的路径是根目录,也可对文件进行写操作。保存修改后运行以下指令检查是否存在语法错误

testparm

3 创建用户

默认情况下,Samba将用户设置为安全模式,这意味着客户端必须输入共享文件夹的用户名和密码,用以下指令为nvidia用户增加samba密码

sudo smbpasswd -a nvidia

输入两次密码确认后,重新启动smbd服务

sudo systemctl restart smbd

4 修改用户

首先用下边指令查看目前配置了哪些用户

pdbedit -L

 如果要删除指定用户

smbpasswd -x username

如果要修改某个用户的密码(切换到root用户)

smbpasswd username
New SMB password:
Retype new SMB password: 

5 windows访问

当window电脑和TX2处于同一局域网时,可在windows上访问TX2的文件夹,访问方法是在windows的文件夹地址中输入两个右斜杠加上TX2的IP地址,即可打开我们设置的可访问的文件夹,如图所示,然后就可以在线修改TX2上的代码和文件了。这样的好处是可以利用windows上的代码编辑器如vscode优美的修改显示代码,提高工作效率!

如果要是访问不到,则可能是因为服务器端samba对应的445 UDP端口没有开启,可以使用iptables指令来开启这个端口

sudo apt-get install iptables
sudo apt-get install iptables-persistent

# 开启UDP 445端口
iptables -A INPUT -p udp --destination-port 445 -j ACCEPT

# 永久保存
sudo netfilter-persistent save
sudo netfilter-persistent reload

然后再访问即可

如果我们登陆过一个用户,再登陆新用户时,会提示如下

这是windows的限制,解决方法是运行cmd,输入下边的指令解除连接即可

net use * /del /y

6 软链接访问问题

 如果在 home 目录中创建了一个软链接访问到系统目录,如 /opt 中的某个文件夹,在 windows 中访问时会提示没有权限,这个时候即使你把权限设置成 777 也依然打不开。

解决方法是需要在 samba 的配置文件中的 [global] 组中增加以下内容

sudo vim /etc/samba/smb.conf

    wide links = yes
    unix extensions = no

然后重启一下服务即可

sudo systemctl restart smbd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宗而研之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值