《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/
来源:一西站点
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>