《Linux共享文件夹搭建===samba》
博主这边文章主要是讲解一下 Linux共享文件夹搭建,利用samba服务协议。
博主之前介绍过利用NFS服务来搭建共享文件夹,这次来讲讲利用samba搭建共享文件夹的方法。
1、samba服务以及与NFS服务器的区别
samba是Linux上面的一个免费软件,适用于文件和打印共享,在Linux与windows之间(更多)和Linux与Linux之间都适用。
samba运行的有两个服务,一个是smb,另一个是nmb。
smb是samba的核心服务,负责建立Linux smaba服务器和客户端访问的对话,验证客户端访问的身份以及访问文件及文件夹的权限,监听的是139端口和445端口,这也是黑客经常利用来病毒入侵的端口。
nmb负责将linuxsmba服务器的名称和IP做转换,如果该服务不启动,则只能通过域名进行访问。
NFS为网络文件系统,依靠TCP传输协议的文件系统,Sun(太阳)公司制定发布的,将远程文件夹挂载,像在本地使用一样。
NFS通过域名进行访问,走的是2049端口,可能还要占用额外的端口,专门为Linux/unix用户之间访问。
FTP进行文件传输,走的是21端口,也可以用于文件共享。(后续增加介绍)
2、samba安装及权限设置
Ubantu下安装示例:sudo apt-get install samba
sudo apt-get install samba
如果要测试samba服务,还需要安装一个samba客户端:sudo apt-get install smbclient
sudo apt-get install smbclient
之后需要配置共享文件夹及访问权限,首先创建一个新文件夹作为共享文件夹,该文件夹的权限很重要,sudo mkdir sharefile
sudo mkdir sharefile
接下来对samba进行配置,vim或者gedit都可以打开设置,或者直接通过mobaxterm,可以直接打开文件夹。
文件路径在 /etc/samba/smb.conf
[share]
comment=this is Linux share directory #说明
path=/home/oem/sharefile ## 共享文件夹路径
available = yes ## 是否公开目录
browseable = yes ## 是否可浏览,
public = yes ##所有人可见
writable = no ##是否有写权限,例如创建文件夹,修改文件等
之后可以测试参数设置是否正确,testparm,出现file OK则正确参数OK。
pi@raspberrypi:~ $ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
WARNING: The 'netbios name' is too long (max. 15 chars).
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
server string = %h server (Samba, Ubuntu)
unix password sync = Yes
usershare allow guests = Yes
idmap config * : backend = tdb
[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/spool/samba
printable = Yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[share]
comment = this is Linux share directory
guest ok = Yes
path = /home/oem/sharefile
如果参数错误,会进行提示。
oem@oem-System-Product-Name:~$ testparm
Load smb config files from /etc/samba/smb.conf
set_variable_helper(132): value is not boolean!
Error loading services.
设置成功之后,则可以进行启动smb服务,sudo systemctl start smbd,
之后可查看启动状态,systemctl status smbd,如果为Active: active (running) ,则启动成功。
oem@oem-System-Product-Name:~$ systemctl status smbd
● smbd.service - Samba SMB Daemon
Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-08-29 20:27:03 CST; 5min ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Process: 4916 ExecStartPre=/usr/share/samba/update-apparmor-samba-profile (code=exited, status=0/SUCCESS)
Main PID: 4925 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 5 (limit: 18904)
Memory: 7.7M
CGroup: /system.slice/smbd.service
├─4925 /usr/sbin/smbd --foreground --no-process-group
├─4927 /usr/sbin/smbd --foreground --no-process-group
├─4928 /usr/sbin/smbd --foreground --no-process-group
├─4929 /usr/sbin/smbd --foreground --no-process-group
└─4933 /usr/sbin/smbd --foreground --no-process-group
8月 29 20:27:03 oem-System-Product-Name systemd[1]: Starting Samba SMB Daemon...
8月 29 20:27:03 oem-System-Product-Name systemd[1]: Started Samba SMB Daemon.
3、windows 访问共享文件夹
打开运行,win+R,然后输入域名,\192.168.137.85,之后回车,就可以看到共享文件。
这里注意创建的文件夹,需要设置权限,sudo chmod o+rwx sharefile 则可以对共享文件夹进行访问和读取目录。
sudo chmod o+rx sharefile
因为之前配置里面设置共享文件夹没有写权限,所以,即使设置目录权限中存在写权限,也无法写。
将之前的配置改成可写,则可以创建新文件夹和写。
writable = yes ##是否有写权限,例如创建文件夹,修改文件等
如果此时修改sharefile目录的权限为可读不可写可执行,则也无法创建文件,sudo chmod o-w sharefile
sudo chmod o-w sharefile
4、需要增加用户。
- smaba增加用户的原则必须是linux的用户,才可以增加samba的用户。即每创建一个Linux账户,则才可以添加一个samba用户。
首先创建Linux用户,自动需要填入密码。
sudo useradd zgq #zgq 为用户名
然后samba增加用户,接着再输入密码。
smbpasswd -a zgq
然后就是在配置文件中增加有效用户,valid users = zgq。
[sharefile]
comment=this is Linux share directory
path=/home/oem/sharefile_zgq
available = yes
browseable = yes
public = no
writable = yes
guest ok = yes
valid users = zgq
# write list = root
最后在windows上面访问,则需要输入用户信息,输入正确则可进行文件夹。
之后windows上面有凭据,就不用重复输入。
版权声明:
作者:ZhangYixi
链接:http://zyixi.xyz/%e3%80%8alinux%e5%85%b1%e4%ba%ab%e6%96%87%e4%bb%b6%e5%a4%b9%e6%90%ad%e5%bb%basamba%e3%80%8b/
来源:一西站点
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论