使用samba将linux的文件挂载到windows上
如果能把服务器上的磁盘直接挂载到我们使用的Windows个人PC上是不是很爽?
如开头的视频里面演示的,可以通过建立局域网SAMBA服务来实现这个效果:
1.安装samba
和samba-common-bin
sudo apt-get install samba samba-common-bin
1.配置/etc/samba/smb.conf文件
sudo nano /etc/samba/smb.conf
在最后一行后面加入:
# 共享文件夹显示的名称
[home]
# 说明信息
comment = Fusion WorkStation Storage
# 可以访问的用户
valid users = pengzhihui,root
# 共享文件的路径
path = /home/pengzhihui/
# 可被其他人看到资源名称(非内容)
browseable = yes
# 可写
writable = yes
# 新建文件的权限为 664
create mask = 0664
# 新建目录的权限为 775
directory mask = 0775
可以把配置文件中你不需要的分享名称删除,例如 [homes], [printers] 等。
运行这个命令测试一下配置文件是否有错误,根据提示做相应修改:testparm
\3. 添加登陆账户并创建密码
必须是 linux 已存在的用户:
sudo smbpasswd -a pi
然后重启服务即可:
sudo /etc/init.d/samba-ad-dc restart
接下来可以在Windows的网络中发现设备了:
但是可能会出现无法点开的情况,这里需要在Windows的凭据管理器中添加账户信息(开始菜单里搜索凭据管理器即可打开),点击添加Windows凭据,输入你的服务器名称和账户密码:
接下来就可以点进去看到服务器上的文件了。为了更加方便地进行文件交互,我们添加对应的磁盘到Windows资源管理器的此电脑中:
选择刚刚服务器的网络路径即可添加:
方案二,据反馈会有一定情况出现问题
有时我们需要使用windows或者mac来访问ubuntu系统的服务器的文件。xftp和winscp是两款不错的软件,但是它们无法现在看文件的结果,需要传输到本地。
下面我将介绍使用两种情况下的访问配置
-
在Windows上访问linux的共享文件夹
第一步:在Linux上安装Samba:
sudo apt-get install samba
第二步:配置一个通过samba访问Linux文件夹时,需要用到的用户名和密码:
smbpasswd -a username
在实际时,把这个username替换成自己的用户名。enter后,会有密码输入
第三步:创建一个文件夹。或者直接使用现有的文件夹。
第四步:在配置文件中,添加这个我们想共享的文件夹的路径和一些配置信息:
sudo vi /etc/samba/smb.conf
第五步:在这个文件的最后,需要添加一点东西:
[share_name] #符号[ ]里面的是共享文件夹对外的名字,称为共享名字,注意[ ]不能掉
path = /home/usrname/data #这个path就是你想共享的那个文件夹的路径
available = yes
valid users = usrname #这个usrname,就是我们刚才在第二步创建的那个用户名,记得替换
read only = no
browsable = yes
public = yes
writable = yes
其它设置,可根据自己需求来选择。
[share] # 该共享的共享名
comment = smb share test # 该共享的备注
path = /home/share # 共享路径
allow hosts = host(subnet) # 设置该Samba服务器允许的工作组或者域
deny hosts = host(subnet) # 设置该Samba服务器拒绝的工作组或者域
available = yes|no # 设置该共享目录是否可用
browseable = yes|no # 设置该共享目录是否可显示
writable = yes|no # 指定了这个目录缺省是否可写,也可以用readonly = no来设置可写
public = yes|no # 指明该共享资源是否能给游客帐号访问,guest ok = yes其实和public = yes是一样的
user = user, @group # user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开
valid users = user, @group # 指定能够使用该共享资源的用户和组
invalid users = user, @group # 指定不能够使用该共享资源的用户和组
read list = user, @group # 指定只能读取该共享资源的用户和组
write list = user, @group # 指定能读取和写该共享资源的用户和组
admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组
hide dot files = yes|no # 指明是否像UNIX那样隐藏以“.”号开头的文件
create mode = 0755 # 指明新建立的文件的属性,一般是0755
directory mode = 0755 # 指明新建立的目录的属性,一般是0755
sync always = yes|no # 指明对该共享资源进行写操作后是否进行同步操作
short preserve case = yes|no # 指明是否区分文件名大小写
preserve case = yes|no # 指明是否保持大小写
case sensitive = yes|no # 指明是否对大小写敏感,一般选no,不然可能引起错误
mangle case = yes|no # 指明混合大小写
default case = upper|lower # 指明缺省的文件名是全部大写还是小写
force user = testuser # 强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= testuser强制建立文件的属主是testuser,同时限制create mask = 0755,这样guest就不能删除了
wide links = yes|no # 指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用
max connections = 100 # 设定最大同时连接数
delete readonly = yes|no # 指明能否删除共享资源里面已经被定义为只读的文件
第六步:重启SMB服务:
sudo service smbd restart
OK,上面Linux的共享文件夹已经设置完毕
- 在windows下有两种方式连接
- 新建快捷键连接
然后填写
//ip/share_name
ip是linux系统的地址,share_name是共享文件夹对外的名字,上面设置的
最后,在Windows上成功创建这个快捷方式后。访问它,就需要用到第二步设置的用户名和密码,注意第五步valid users与之进行匹配。
然后就是按提示,输入这个用户名和密码。
- 使用文件夹访问ip
\\ip\share_name
如下展示输入方式,你可以把这个文件夹放在快速访问中
-
使用macos访问linux文件
和上边一致linux需要安装samba,安装完毕后
第一步:打开访问,使用command+K然后输入
smb://ip/share_name
点击连接就可以了
需要输入用户名和密码,这是上面提到的valid users
后记:
后期使用花生壳访问时,需要更换端口,就不是默认端口了。
samba的默认端口是445,
所以访问时是//ip:port/share_name