配置samba服务器@手把手

配置Samba服务器:

以前我们在windows上共享文件的话,只需右击要共享的文件夹然后选择共享相关的选项设置即可。然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这个软件配置起来也不难,使用也非常简单。

安装samba:

安装系统的时候大多会默认安装samba,如果没有安装,在CentOS上只需要运行这个命令安装即可:

##同时安装了samba服务和客户端;
[aming@Dasoncheng ~]$ yum install -y samba samba-client    
Samba配置文件:

Samba的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用 # 或者 ; 注视掉了。先看一下未被注释掉的部分:

[global]                                                  #全局参数
	workgroup = SAMBA                  #工作组名称
	security = user             #安全验证的方式,总共有4种(详细下面介绍)

	passdb backend = tdbsam    #定义用户后台的类型,共有3种

	printing = cups
	printcap name = cups
	load printers = yes    	#设置在Samba服务启动时是否共享打印机设备
	cups options = raw    	#打印机的选项

[homes]                  #共享参数
	comment = Home Directories    	#描述信息
	valid users = %S, %D%w%S  
	browseable = No    	#指定共享信息是否在“网上邻居”中可见
	read only = No            #定义是否仅可读,与“writable”相反
	inherit acls = Yes

[printers]
	comment = All Printers
	path = /var/tmp    	#共享文件的实际路径(重要)。
	printable = Yes
	create mask = 0600
	browseable = No

[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = root
	create mask = 0664
	directory mask = 0775

主要有以上三个部分:[global], [homes], [printers]

[global] 定义全局的配置,workgroup用来定义工作组,相信如果您安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的MYGROUP改成WORKGROUP(windows默认的工作组名字)。

  • security = user #这里指定samba的安全等级。 关于安全等级有四种:
  1. share:用户不需要账户及密码即可登录samba服务器
  2. user:由提供服务的samba服务器负责检查账户及密码(默认)
  3. server:检查账户及密码的工作由另一台windows或samba服务器负责
  4. domain:指定windows域控制服务器来验证用户的账户及密码。
  • passdb backend = tdbsam # passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.
  1. smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。
  2. tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用 smbpasswd -a 创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
  • pdbedit -a username:新建Samba账户。
  • pdbedit -x username:删除Samba账户。
  • pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
  • pdbedit -Lv:列出Samba用户列表详细信息。
  • pdbedit -c “[D]” -u username:暂停该Samba用户账号。
  • pdbedit -c “[]” -u username:恢复该Samba用户账号。
  1. ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”
  • load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

  • netbios name = MYSERVER # 设置出现在网上邻居中的主机名
  • hosts allow = 127. 192.168.12. 192.168.13. # 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机
  • log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name
  • max log size = 50 # 指定日志的最大容量,单位是K

[homes] 该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。
[printers] 该部分内容设置打印机共享。

重要提醒:centos7的share模式和6.系列有区别;实战1演示

samba实战1:

需求:共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读!

编辑配置文件:

环境centos6.x

cat  /etc/samba/smb.conf  ##其他的如[home]、[print]等,不需要可以注释掉!
[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[share]
        comment = share all
        path = /tmp/samba
        browseable = yes
        public = yes
        writable = no

环境centos7.x

[root@Dasoncheng2 ~]# cat /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
 #	security = share        ##这里区别1
	passdb backend = tdbsam
        share modes = yes    ##这里区别2
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw
[share]
       comment = Share all
       path = /tmp/samba
       browseable = yes
       public = yes
       writable = no
       security = share     ##这里区别3
创建测试目录:
[root@Dasoncheng2 ~]# mkdir /tmp/samba
[root@Dasoncheng2 ~]# chmod 777 /tmp/samba/
[root@Dasoncheng2 ~]# touch /tmp/samba/sharefiles
[root@Dasoncheng2 ~]# echo "111111" > /tmp/samba/sharefiles
测试配置文件:
##测试你配置的smb.conf是否正确,用下面的命令:
[root@Dasoncheng2 ~]# testparm

你应该会看到一个警告:WARNING: The security=share option is deprecated, 不过影响不大,无需管它。如果没有错误,则在你的windows机器上的浏览器中输入:
file://IP/share

file://192.168.60.12/share ##这个share是[share]的名字;
启动smb服务:
[root@Dasoncheng2 ~]# systemctl start smb
Windows端测试:

mark
mark
mark

Samba实战2:

以centos7为例:
编辑配置文件:

[root@Dasoncheng2 ~]# cat /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
 	security = user

	passdb backend = tdbsam
        share modes = yes
	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw
[share2]
       comment = Share all2
       path = /tmp/samba2
       browseable = yes
       public = no
       writable = yes

创建共享文件夹:

[root@Dasoncheng2 ~]# mkdir /tmp/samba2
[root@Dasoncheng2 ~]# chmod 777 /tmp/samba2
[root@Dasoncheng2 ~]# touch /tmp/samba2/sharefiel2
[root@Dasoncheng2 ~]# echo "2222222" > /tmp/samba2/sharefiel2

创建用户:

[root@Dasoncheng2 ~]# useradd user1  ##创建系统用户;
[root@Dasoncheng2 ~]# pdbedit -a user1  ##添加user1为samba账号
new password:
retype new password:
Unix username:        user1
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3131785581-1912635650-3533182432-1000
Primary Group SID:    S-1-5-21-3131785581-1912635650-3533182432-513
Full Name:            
Home Directory:       \\localhost\user1
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\user1\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 23:06:39 CST
Kickoff time:         Wed, 06 Feb 2036 23:06:39 CST
Password last set:    Sun, 11 Feb 2018 16:42:09 CST
Password can change:  Sun, 11 Feb 2018 16:42:09 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

然后输入用户名和密码即可访问:

Samba实战3:

需求:使用linux访问samba服务器。
Samba服务在linux下同样可以访问。前提是您的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。具体语法为:

smbclient //IP/共享名  -U 用户名
[aming@Dasoncheng ~]$ smbclient //192.168.60.12/share -U user2  ##这里报错,我也搞不懂 服务端的globe的security没有share,我下面就把本地的share修改为user了就好了;
WARNING: Ignoring invalid value 'share' for parameter 'security'
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it
[aming@Dasoncheng ~]$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: Ignoring invalid value 'share' for parameter 'security'
Error loading services.
[aming@Dasoncheng ~]$ vim /etc/samba/smb.conf
[aming@Dasoncheng ~]$ sudo vim /etc/samba/smb.conf
[aming@Dasoncheng ~]$ smbclient //192.168.60.12/share -U user2
Enter WORKGROUP\user2's password: 
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \> ?  ##登录了之后,使用?列出所有可用命令
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            dir            du             
echo           exit           get            getfacl        geteas         
hardlink       help           history        iosize         lcd            
link           lock           lowercase      ls             l              
mask           md             mget           mkdir          more           
mput           newer          notify         open           posix          
posix_encrypt  posix_open     posix_mkdir    posix_rmdir    posix_unlink   
posix_whoami   print          prompt         put            pwd            
q              queue          quit           readlink       rd             
recurse        reget          rename         reput          rm             
rmdir          showacls       setea          setmode        scopy          
stat           symlink        tar            tarmode        timeout        
translate      unlock         volume         vuid           wdel           
logon          listconnect    showconnect    tcon           tdis           
tid            logoff         ..             !              
smb: \> q

另外的方式就是通过mount挂载了,如:

[root@Dasoncheng2 ~]# mount -t cifs //10.0.4.67/myshare /mnt -o username=user1,password=123456

格式就是这样,要指定 -t cifs //IP/共享名 本地挂载点 -o后面跟username 和 password 挂载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。

转载于:https://my.oschina.net/u/3651233/blog/1621290

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值