1背景

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

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

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

2环境

CentOS系统

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

Samba服务器

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

3安装

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

4配置

进入samba配置目录

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

备份smb.conf

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

新建smb.conf

  1. [root@base samba]# vim smb.conf

内容如下,保存并退出

  1. [global]
  2. workgroup = WORKGROUP
  3. server string = Ted Samba Server %v
  4. netbios name = TedSamba
  5. security = user
  6. map to guest = Bad User
  7. passdb backend = tdbsam
  8.  
  9. [FileShare]
  10. comment = share some files
  11. path = /smb/fileshare
  12. public = yes
  13. writeable = yes
    create mask = 0644
    directory mask = 0755
  14.  
  15. [WebDev]
  16. comment = project development directory
  17. path = /smb/webdev
  18. valid users = ted
  19. write list = ted
  20. printable = no
  21. create mask = 0644
  22. directory mask = 0755

注释:

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

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

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

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

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

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

创建用户

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

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

创建共享目录

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

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

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

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

开放端口

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

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

5使用

本机测试

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

  1. [root@base samba]# testparm
  2. Load smb config files from /etc/samba/smb.conf
  3. rlimit_max: increasing rlimit_max () to minimum Windows limit ()
  4. Processing section "[FileShare]"
  5. Processing section "[WebDev]"
  6. Loaded services file OK.
  7. Server role: ROLE_STANDALONE
  8.  
  9. Press enter to see a dump of your service definitions
  10.  
  11. # Global parameters
  12. [global]
  13. netbios name = TEDSAMBA
  14. server string = Ted Samba Server %v
  15. map to guest = Bad User
  16. security = USER
  17. idmap config * : backend = tdb
  18.  
  19. [FileShare]
  20. comment = share some files
  21. path = /smb/fileshare
  22. guest ok = Yes
  23. read only = No
  24.  
  25. [WebDev]
  26. comment = project development directory
  27. path = /smb/webdev
  28. create mask = 0644
  29.  
  30. valid users = ted
  31. write list = ted
  32. [root@base samba]#

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

  1. [root@base samba]# smbclient -L localhost
  2. Enter root's password:
  3. Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.]
  4.  
  5. Sharename Type Comment
  6. --------- ---- -------
  7. FileShare Disk share some files
  8. WebDev Disk project development directory
  9. IPC$ IPC IPC Service (Ted Samba Server 4.4.)
  10. Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.4.]
  11.  
  12. Server Comment
  13. --------- -------
  14.  
  15. Workgroup Master
  16. --------- -------
  17. [root@base samba]#

Linux访问

Samba服务端配置

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

内容如下

  1. [global]
  2. workgroup = WORKGROUP
  3. server string = Samba Server Version %v
  4. netbios name = MYSERVER
  5. security = user
  6. passdb backend = tdbsam
  7.  
  8. [tvms]
  9. path = /root/tvms-test
  10. public = yes
  11. valid user = root
  12. writeable = yes
  13. printable = no
  14. create mask =
  15. directory mask =

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

挂载目录

安装cifs

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

挂载smb目录

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

输入密码:1

卸载目录

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

如果出现

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

可以使用fuser卸载

  1. [root@min-base ~]# yum -y install psmisc
  2. [root@min-base ~]# fuser -m -v -i -k /mnt/tvms
  3. USER PID ACCESS COMMAND
  4. /mnt/tvms: root kernel mount /mnt/tvms
  5. root ..c.. bash
  6. Kill process ? (y/N) y
  7.  
  8. Connection closed by foreign host.
  9.  
  10. Disconnected from remote host(192.168.118.132) at ::.
  11.  
  12. Type `help' to learn how to use Xshell prompt.
  13. [c:\~]$
  14.  
  15. Connecting to 192.168.118.132:...
  16. Connection established.
  17. To escape to local shell, press 'Ctrl+Alt+]'.
  18.  
  19. WARNING! The remote SSH server rejected X11 forwarding request.
  20. Last login: Wed Dec :: from 192.168.118.1
  21. [root@min-base ~]# umount /mnt
  22. [root@min-base ~]# df
  23. Filesystem 1K-blocks Used Available Use% Mounted on
  24. /dev/mapper/centos-root % /
  25. devtmpfs % /dev
  26. tmpfs % /dev/shm
  27. tmpfs % /run
  28. tmpfs % /sys/fs/cgroup
  29. /dev/sda1 % /boot
  30. tmpfs % /run/user/

自动挂载目录

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

添加如下内容

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

重新挂载

  1. [root@min-base ~]# mount -a
  2. [root@min-base ~]# df
  3. Filesystem 1K-blocks Used Available Use% Mounted on
  4. /dev/mapper/centos-root % /
  5. devtmpfs % /dev
  6. tmpfs % /dev/shm
  7. tmpfs % /run
  8. tmpfs % /sys/fs/cgroup
  9. /dev/sda1 % /boot
  10. tmpfs % /run/user/
  11. //192.168.118.133/tvms 18307072 8819380 9487692 49% /mnt/tvms
  12. [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. 在db2数据库上模拟死锁场景 还是z上的

    如果条件允许,起两个线程互相抢资源就行了,但问题是,时间上还需要同步,要做到完美控制,还得加其他逻辑,忒费事,所以可以用下面的办法: 在目标表上直接加个锁……简单,粗暴,直接……很好…… LOCK T ...

  2. 【django】京东等大型网站的混合搜索是怎么实现的?

    混合搜索在各大网站如京东.淘宝都有应用,他们的原理都是什么呢?本博文将为你介绍它们的实现过程. 混合搜索的原理,用一句话来说就是:关键字id进行拼接. 混合搜索示例: 数据库设计: 视频方向: cla ...

  3. Oracle 11g新特性延迟段创建和truncate的增强

    下面测试Oracle 11g开始的新特性truncate的增强和延迟段空间创建. Oracle从11g开始,当用户创建一张空表的时候不会先分配段和空间,只有当对这张表插入第一行数据的时候才分配段和空间 ...

  4. MySQL 相关

    Innodb引擎 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别.该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统. 但是该引擎不支持FULLT ...

  5. 关于EF的一个简单Demo

       今天使用EF的时候很奇怪的问题,添加属性后,使用程序包管理器控制台的NuGet命令更新无效,于是做了这个测试,一次性写好,自动更新,看看效果 1.首先建立一个MVC项目 2.我们选择Intern ...

  6. Asp.Net MVC4 + Oracle + EasyUI 学习 第一章

    Asp.Net MVC4 + Oracle + EasyUI  第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...

  7. DEV express 对Gridview某行的元素赋值

    1:获取选中的行某列的值 string colValue= this.gridView1.GetRowCellValue(this.gridView1.FocusedRowHandle, this.g ...

  8. winform公共标签和常用属性

    公共控件 1.Button(按钮): Enabled :确定是否启用控件 Visible:确定控件是否可见 2.CheckBox(多选项) CheckListBox -(多选项列表)可用CheckBo ...

  9. 关于datatime 时间处理模块:

    import time        from datetime import datetime        from datetime import timedelta        aHour= ...

  10. Web前端:11个让你代码整洁的原则

    写Web页面就像我们建设房子一样,地基牢固,房子才不会倒.同样的,我们制作Web页面也一样,一个良好的HTML结构是制作一个美丽的网站的开始,同样的,良好的CSS只存在同样良好的HTML中,所以一个干 ...