在Linux中配置Samba服务器实现网盘
在Linux中配置Samba服务器实现网盘
文章目录 附录:Linux用户管理
samba服务器: 7,samba 4.10.16;客户机: 20H2
1 安装与基本配置 打开一个终端,输入su进入超级用户。安装samba:
$ yum install samba samba-client
修改防火墙配置,开放samba所需网络端口:
$ firewall-cmd --zone=public --add-port=139/tcp --permanent
$ firewall-cmd --zone=public --add-port=445/tcp --permanent
$ firewall-cmd --zone=public --add-port=137/udp --permanent
$ firewall-cmd --zone=public --add-port=138/udp --permanent
$ firewall-cmd --reload
$ systemctl restart firewalld.service
当然也可以直接关闭防火墙,一了百了:
$ systemctl stop firewalld # 临时关闭
$ systemctl disable firewalld # 禁用开机启动防火墙,即永久禁用
关闭:
经常会捣乱,不关闭可能会导致在其他电脑上无法访问共享文件夹。
$ gedit /etc/sysconfig/selinux
将=改为=
$ setenforce 0 #关闭selinux
添加samba用户
该用户可以是Linux中已有的任何用户,如果想创建新用户,则可以使用命令:
$ useradd samba_user
有关更多用户管理内容见附录:Linux用户管理。
将Linux用户设置为samba用户:
$ smbpasswd -a samba
终端会提示你输入密码。
有关一些细节、坑及多用户配置见3.2 多用户/多用户组。创建一个共享文件夹:
cd /
mkdir share
chmod 777 share
修改smb.cfg文件
$ gedit /etc/samba/smb.cfg
在文件末尾添加:
[share_test] # [ ]中是你希望其他用户看到的共享文件夹名称comment = samba file share test # 注释说明path = /share # 指定共享文件夹路径available = yespublic = yes # 所有帐号都能看到该文件夹writable = yes # 可写valid users = samba_user # 对应刚才创建的用户,只有samba_user可以访问create mask = 755 # 在共享文件夹中创建的文件都带有755权限directory mask = 755 # 在共享文件夹中创建的目录都带有755权限guest ok = no
如果smb.cfg文件中包含有[homes],则直接将那一段用#注释掉,否则其他地方将会看到服务器的根目录,不安全。启动samba服务
测试smb.cfg中的参数是否合规:
$ testparm
如果参数合归终端会提示:
Loaded services file OK.
Server role: ROLE_STANDALONEPress enter to see a dump of your service definitions
开启服务:
$ systemctl start smb.service
之后如果再次修改了smb.cfg,则可以使用重启命令:
$ systemctl restart smb.service
[可选] 设置静态IP
的IP经常在改变,给/mac端连接带了诸多的不便。解决方案便是将的IP设置为静态IP。
参考:。
参考:。 2 在中使用共享文件夹
在中按下Win+R,输入\\samba所在linux系统的IP地址,回车即可看到共享文件夹。
系统会提示输入用户名和密码,对应samba中创建的用户。
第一次登录成功后,会记住你使用的账号,往后无法更改。如果你想切换samba账号,可以通过以下两种方式清除的记录:
打开终端,输入net use,你会看到已经连接的共享文件夹。
记下共享文件夹的地址,这里用代替。
输入net use /del /y,即可清除某个共享文件夹的samba账号记录。在桌面左下角的“开始”按钮处右键选择“计算机管理”,在“服务”中找到“”,右键重新启动即可。
打开“此电脑”,在功能区点击“映射网络驱动器”。(点击右上角问号左边的小三角可以展开功能区)。
输入服务器共享文件夹的路径,例如\192.168.125.135\share,用户名和密码就是smb.cfg中指定的用户名和相应的密码。
登录成功后便可以看到网盘内的文件。
此时还可以在资源管理器的“此电脑”页面内位于“网络位置”标签的网盘,使用起来和本地磁盘完全一致。只要服务器不断电且相关配置不更改,自己的电脑重启后依然可以在资源管理器中看到网盘。
3 高级配置 3.1 smb.cfg文件详解
本节主要介绍共享文件夹的相关配置,指令与参数用法为:
[分享的资源名称]
<指令1>; = (参数)
<指令2>; = (参数)
要提供分享资源时,须先把欲分享的资源以 [ ] 符号括住,底下通常会带指令和参数来表示此资源的设定和存取权限等,详情如下:
指令参数描述
自定义
注释说明
path
目录
分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
yes/no
是否在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
yes/no
是否允许打印
hide dot ftles
yes/no
是否隐藏文件
yes/no
是否公开共享,若为否则进行身份验证(只有当 = share 时此项才起作用)
guest ok
yes/no
是否公开共享,若为否则进行身份验证(只有当 = share 时此项才起作用)
read only
yes/no
是否以只读方式共享,当与发生冲突时也为准
yes/no
是否可写,当与read only发生冲突时,无视read only
vaild users
用户名(多个用户之间用,隔开)
或者@用户组名
设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
users
同上
设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)
read list
同上
设定此名单内的成员为只读(用户名/@组名)
write list
同上
若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
mask
777/755等
建立文件时所给的权限
mask
同上
建立目录时所给的权限
force group
用户名(多个用户之间用,隔开)
或者@用户组名
指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)
force user
用户名(多个用户之间用,隔开)
或者@用户组名
指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)
allow hosts
IP地址
设定只有此网段/IP的用户才能访问共享资源
deny hosts
IP地址
设定只有此网段/IP的用户不能访问共享资源
allow hosts
IP地址