「开前唠叨」
Linux服务器经常需要进行资料的下载和上传,每次都要使用scp指令,相当麻烦。为了简化操作,决定在Linux上设置SMB共享,以便通过SMB的方式管理数据。
「特别提醒」
在公网环境中使用SMB共享是相当危险的。在使用SMB之前,请确保当前环境的重要性和安全性。
「开前准备」
操作系统:Debian 12
「安装与部署」
首先需要安装SMB工具,直接使用cifs-utils
协议工具包。其他用户也可以只安装SMB工具命令。为了方便起见,使用root用户进行登录操作。服务器是全新的,没有安装很多工具。如果你的环境已经准备就绪,可以直接安装cifs-utils协议工具包。
「安装cifs-utils」
首先,更新和升级系统中的软件包
apt update -y && apt upgrade -y
服务器是全新的,还没有安装很多工具。如果你已经安装了,可以跳过这部分内容。安装一些常用的工具
cleapt install sudo wget curl nano vim -y
准备就绪后,可以开始安装cifs-utils协议工具包。
sudo apt-get install samba smbclient cifs-utils -y#(Debian/Ubuntu 系统)
sudo yum install samba smbclient cifs-utils #(RHEL/CentOS 系统 系统)
「创建/设置SMB挂载」
接下来需要创建/设置一个SMB挂载的文件夹。使用命令sudo mkdir <路径/文件夹> 创建一个挂载文件夹。如果已经有文件夹,可以跳过这一步。
sudo mkdir smb #<smb>替换成自己想要创建的文件夹
然后需要设置一个smb用户和密码。使用sudo smbpasswd -a <username>
设置smb用户的密码请注意:设置前,此用户名必须事先已经存在于服务器的passwd文件中。直接设置了root用户的密码。
sudo smbpasswd -a root
接下来需要为文件夹设置适当的权限。为了方便起见,直接设置为777权限。根据实际情况进行设置。
sudo chmod 777 . #<.>为文件夹路径
「设置SMB共享」
接下来编辑Samba conf 并添加一个目录
sudo vim /etc/samba/smb.conf
在最后添加一下内容
[share]
comment = Shared folder
path = /root/user/smb
browseable = no
guest ok = no
read only = no
create mask = 0777
directory mask = 0777
其中:
[share]是共享文件夹的名称,可以根据需要修改。
comment是注释,可以不修改。
path是共享文件夹的路径,应与第二步中创建的文件夹路径一致。
browseable设置为yes表示该共享文件夹可以在网络上被浏览。
guest ok设置为yes表示访问该共享文件夹不需要认证。
read only设置为no表示该共享文件夹可以被写入。
create mask和directory mask是文件和文件夹的权限掩码,设置为0777表示所有用户都具有最高权限。
完成后保存并退出
「重启Samba服务」
使用以下命令重启Samba服务:
sudo service smbd restart
至此,服务器的smb共享设置完成。可以使用其他设备通过smb访问这台服务器。
输入用户名和密码即可成功登录。
选择刚刚创建的文件夹,即可成功访问服务器的文件夹。
到这里我们服务器的设置就完成了。
「扩展应用」
部署SMB后,可以方便地进行远程操作,想要更多的应用,以下是在尝试后成功记录的一些有趣的应用,尚未整理,供大家参考。
首先,可以使用内网穿透,将具有公网IP的服务器与内网处于同一网络环境中。然后使用SMB让公网服务器挂载本地NAS。
挂载共享:使用命令 "sudo mount -t cifs //server/share /mnt/smb -o username=user,password=pass" 挂载共享,其中 "server" 是共享所在的服务器名称,"share" 是共享的名称,"user" 是登录共享所需的用户名,"pass" 是密码。
最后,在服务器上安装下载器,就可以实现公网服务器直接将东西下载到本地NAS中。
设置开机自动挂载:编辑 "/etc/fstab" 文件,在其中添加一行: "//server/share /mnt/smb cifs username=user,password=pass 0 0"
给权限:在username=user,password=pass后面添加,gid=id,uid=id 0 0 "//server/share /mnt/smb cifs username=user,password=pass,gid=id,uid=id 0 0"
完成以上步骤后,SMB共享将被挂载到 "/mnt/smb" 目录,并且每次启动系统时都会自动挂载。