1背景

转Linux刚刚1年,vim操作还不能应对工程代码,之前一直都是Gnome桌面 + Clion 作开发环境,无奈在服务器上没有这样的环境,

看同事是(Windows)Source Insight + WinSCP + Linux 开发,来回同步文件有点麻烦,所以想尝试搭个Samba服务器做共享文件。

不过希望以后还是要转到vim上来。

2环境

CentOS系统

[root@min-base ~]# cat /etc/redhat-release
CentOS Linux release 7.2. (Core)

Samba服务器

[root@min-base ~]# rpm -qi samba
Name : samba
Epoch :
Version : 4.4.
Release : .el7
Architecture: x86_64
Install Date: Sun Dec :: PM CST
Group : System Environment/Daemons
Size :
License : GPLv3+ and LGPLv3+
Signature : RSA/SHA256, Mon Nov :: AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : samba-4.4.-.el7.src.rpm
Build Date : Mon Nov :: PM CST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.samba.org/
Summary : Server and Client software to interoperate with Windows machines
Description :
Samba is the standard Windows interoperability suite of programs for Linux and
Unix.

3安装

[root@base ~]# yum -y install samba samba-client

4配置

进入samba配置目录

[root@base ~]# cd /etc/samba/

备份smb.conf

[root@base samba]# mv smb.conf smb.conf.origin

新建smb.conf

[root@base samba]# vim smb.conf

内容如下,保存并退出

[global]
workgroup = WORKGROUP
server string = Ted Samba Server %v
netbios name = TedSamba
security = user
map to guest = Bad User
passdb backend = tdbsam [FileShare]
comment = share some files
path = /smb/fileshare
public = yes
writeable = yes
create mask = 0644
directory mask = 0755 [WebDev]
comment = project development directory
path = /smb/webdev
valid users = ted
write list = ted
printable = no
create mask = 0644
directory mask = 0755

注释:

workgroup 项应与 Windows 主机保持一致,这里是WORKGROUP

security、map to guest项设置为允许匿名用户访问

再下面有两个section,实际为两个目录,section名就是目录名(映射到Windows上可以看见)。

第一个目录名是FileShare,匿名、公开、可写

第二个目录吗是WebDev,限定ted用户访问

默认文件属性644/755(不然的话,Windows上在这个目录下新建的文件会有“可执行”属性)

创建用户

[root@base samba]# groupadd co3
[root@base samba]# useradd ted -g co3 -s /sbin/nologin
[root@base samba]# smbpasswd -a ted
New SMB password:
Retype new SMB password:
Added user ted.
[root@base samba]#

注意这里smbpasswd将使用系统用户。设置密码为1

创建共享目录

[root@base samba]# mkdir -p /smb/{fileshare,webdev}
[root@base samba]# chown nobody:nobody /smb/fileshare/
[root@base samba]# chown ted:co3 /smb/webdev/

注意设置属性,不然访问不了。

启动Samba服务,设置开机启动

[root@base samba]# systemctl start smb
[root@base samba]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@base samba]#

开放端口

[root@base samba]# firewall-cmd --permanent --add-port=/tcp
success
[root@base samba]# firewall-cmd --permanent --add-port=/tcp
success
[root@base samba]# systemctl restart firewalld
[root@base samba]# 

或者直接把防火墙关了也行。

5使用

本机测试

可以使用testparm测试samba配置是否正确

[root@base samba]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max () to minimum Windows limit ()
Processing section "[FileShare]"
Processing section "[WebDev]"
Loaded services file OK.
Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parameters
[global]
netbios name = TEDSAMBA
server string = Ted Samba Server %v
map to guest = Bad User
security = USER
idmap config * : backend = tdb [FileShare]
comment = share some files
path = /smb/fileshare
guest ok = Yes
read only = No [WebDev]
comment = project development directory
path = /smb/webdev
create mask = 0644 valid users = ted
write list = ted
[root@base samba]#

root用户的话,不用密码可直接查看samba服务器情况

[root@base samba]# smbclient -L localhost
Enter root's password:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.] Sharename Type Comment
--------- ---- -------
FileShare Disk share some files
WebDev Disk project development directory
IPC$ IPC IPC Service (Ted Samba Server 4.4.)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.] Server Comment
--------- ------- Workgroup Master
--------- -------
[root@base samba]#

Linux访问

Samba服务端配置

[root@min-base webdev]# vim /etc/samba/smb.conf

内容如下

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
security = user
passdb backend = tdbsam [tvms]
path = /root/tvms-test
public = yes
valid user = root
writeable = yes
printable = no
create mask =
directory mask =

在局域网内另外一台机器上,

挂载目录

安装cifs

[root@min-base ~]# yum -y install cifs-utils

挂载smb目录

[root@min-base ~]# mkdir /mnt/tvms
[root@min-base ~]# mount //192.168.118.133/tvms /mnt/tvms
Password for root@//192.168.118.133/tvms: *
[root@min-base ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 18G 988M 17G % /
devtmpfs devtmpfs 479M 479M % /dev
tmpfs tmpfs 489M 489M % /dev/shm
tmpfs tmpfs 489M 6.7M 483M % /run
tmpfs tmpfs 489M 489M % /sys/fs/cgroup
/dev/sda1 xfs 497M 117M 381M % /boot
tmpfs tmpfs 98M 98M % /run/user/
//192.168.118.133/tvms cifs 18G 8.5G 9.1G 49% /mnt/tvms
[root@min-base ~]# ll /mnt/tvms/
total
drwxr-xr-x. root root Dec : suricata-3.1.
-rw-r--r--. root root Dec : suricata-3.1..zip
[root@min-base ~]#

输入密码:1

卸载目录

[root@min-base mnt]# umount /mnt/tvms/

如果出现

umount: /mnt/tvms: target is busy.
(In some cases useful info about processes that use
the device is found by lsof() or fuser())

可以使用fuser卸载

[root@min-base ~]# yum -y install psmisc
[root@min-base ~]# fuser -m -v -i -k /mnt/tvms
USER PID ACCESS COMMAND
/mnt/tvms: root kernel mount /mnt/tvms
root ..c.. bash
Kill process ? (y/N) y Connection closed by foreign host. Disconnected from remote host(192.168.118.132) at ::. Type `help' to learn how to use Xshell prompt.
[c:\~]$ Connecting to 192.168.118.132:...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'. WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Wed Dec :: from 192.168.118.1
[root@min-base ~]# umount /mnt
[root@min-base ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root % /
devtmpfs % /dev
tmpfs % /dev/shm
tmpfs % /run
tmpfs % /sys/fs/cgroup
/dev/sda1 % /boot
tmpfs % /run/user/

自动挂载目录

[root@min-base ~]# vi /etc/fstab 

添加如下内容

//192.168.118.133/tvms  /mnt/tvms               cifs    defaults,username=root,password=1       0 0

重新挂载

[root@min-base ~]# mount -a
[root@min-base ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root % /
devtmpfs % /dev
tmpfs % /dev/shm
tmpfs % /run
tmpfs % /sys/fs/cgroup
/dev/sda1 % /boot
tmpfs % /run/user/
//192.168.118.133/tvms 18307072 8819380 9487692 49% /mnt/tvms
[root@min-base ~]#

Windows访问

1)在Windwos资源管理器访问

访问路径里填上: \\${Samba服务器的IP} ,然后回车,可以看见共享的目录。

FileShare是可以匿名访问的,可以访问、新建、删除文件。

这里拖进去一个txt文件,可以在Linux上看见该文件。

2)映射网络驱动器

右边的WebDev目录是需要密码访问的

这里演示一下映射该目录为网络驱动器。

“桌面” 右键单击“此电脑”,选择“映射网络驱动器”

在文件夹位置填写该共享文件的网络路径,这里是\\192.168.118.132\WebDev

勾选“使用其他凭据连接”,点“完成”。

填写用户密码

在我的电脑可以看见该网络驱动器(Y)

这里可以放源码工程,然后用Windows下的IDE打开、编辑,再在Linux编译、运行。

enjoy it~

以后有需求再补充Linux挂载samba共享目录、权限配置等等。

6参考文献

Linux Samba服务器配置

CentOS7安装配置SAMBA服务器

CentOS7下Samba的安装与配置

配置samba服务器,中加入了security=share,但是testparm输出的信息里没有这一条,客户机也无法访问

smb服务器目录和文件权限设置

CentOS 7.2 安装配置Samba服务器的更多相关文章

  1. CentOS 7安装配置Samba服务器

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  2. CentOS 7安装配置Samba服务器(挂载共享文件夹)

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  3. centOS下yum安装配置samba

     centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...

  4. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

  5. CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)

    CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: /etc/init.d/iptables stop #关闭防火墙 关闭SELINUX vi /etc/sel ...

  6. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  7. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  8. CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp -- ...

  9. linux上安装配置samba服务器

    linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务.如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这 ...

随机推荐

  1. LATTICE USB下载线接口说明

    这节知识摘抄于网络,仅用几张图片来显示,提醒Usb下载线的连接方式. 最后贴出个人使用的8线的USB下载器的连接方式: 再补充一点,应为彩色杜邦线与USB下载器是活口连接,两个可以分开,再连接的时候, ...

  2. iis 7.0 asp.net发布问题

    问题1: 配置错误:不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的………… 解决方案: 因为 IIS 7 采用了更安全的 web.config 管理机制,默认 ...

  3. JAVA Day10

      使用继承 编写继承: class Engineer{ //公共的属性和方法 }   编写子类,继承父类, class SoftEnineer extends Enginerr{ //子类持有的属性 ...

  4. FZU月赛20160416 ABEF

    Problem A ABCDEFG Accept: 302    Submit: 442Time Limit: 1000 mSec    Memory Limit : 32768 KB  Proble ...

  5. 2015 ACM Syrian Collegiate Programming Contest

    A. My Friend of Misery 计算出答案的上下界即可. 时间复杂度$O(n)$. #include<bits/stdc++.h> using namespace std; ...

  6. 【BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP

    [BZOJ1725][Usaco2006 Nov]Corn Fields牧场的安排 Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M< ...

  7. JavaScript第一天

    1.静态的网页技术和动态的网页技术 静态网页是相对于动态网页而言,是指没有后台数据库.不含程序和不可交互的网页.你编的是什么它显示的就是什么.不会有任何改变.静态网页相对更新起来比较麻烦,适用于一般更 ...

  8. webservice总结

    webservice xml(DTD,Schema,Stax) SOAP jax-ws (java api xml webservice) 契约优先的开发模式 CXF Rest 异构平台之间的交互(. ...

  9. HTML中行内元素与块级元素的区别:

    HTML中行内元素与块级元素的区别:在标准文档流里面,块级元素具有以下特点: ①总是在新行上开始,占据一整行:②高度,行高以及外边距和内边距都可控制:③宽带始终是与浏览器宽度一样,与内容无关:④它可以 ...

  10. 自动执行任务管理---TaskManage

    这篇主要配合数据使用 先说数据库 名字都很标准---------------------------------- ------------------------------------------ ...