Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
1)下载服务器需要的samba包
#yum -y install samba
2)启动samba服务
#systemctl start smb
1)配置文件存放目录 /etc/samba/smb.conf,
操作前最好对配置文件做备份cp smb.conf smb.conf.ln
3)在Centos下创建共享目录
#mkdir /home/share
更改目录权限
#chmod -R 777 /home/share,整个路径都要设置
3)vim /etc/samba/smb.conf,
配置文件如下:
#全局参数
[global]
workgroup = SAMBA
security = user 设置用户的验证方式为User,User表示只能被授权的用户访问,且验证账户密码
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
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
下面配置共享文件
共享参数[共享名]
[shared]
# 共享文件目录描述
comment = Shared Directories
# 共享文件目录
path = /storage/shared/
# 是否允许guest访问
public = no
# 指定管理用户
admin users = admin
# 可访问的用户组、用户
valid users = @admin
# 是否浏览权限
browseable = yes
# 是否可写权限
writable = yes
# 文件权限设置
create mask = 0777
directory mask = 0777
force directory mode = 0777
force create mode = 0777
4)配置实例:
comment =share 任意字符串,只是一个对共享的描述
path = 共享目录路径 /home/share
browseable = yes/no 用来指定共享是否可以浏览
writable = yes/no 用来指定共享路径是否可写
available = yes/no 用来指定共享资源是否可以用
1)使用windows文件资源管理器输入\\192.168.1.186
提示输入用户名,密码,登陆以后在共享目录创建文件,
查看文件是否同步。
2)映射网络驱动,以后可以当作一个共享磁盘来使用。
1)访问不成功或者拒绝访问,尝试关闭防火墙
#systemctl stop firewalld.service
2)查看Selinux状态
#sestatus
Current mode: enforcing
临时关闭Selinux
#setenforce 0
Current mode: permissive
3)windows访问时提示用户名密码错误
#smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
#smbpasswd -d 冻结用户,就是这个用户不能在登录了
#smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
#smbpasswd -n 把用户的密码设置成空.
#yum install -y vsftpd,出现Complete安装成功
#service vsftpd start
/etc/vsftpd/vsftpd.conf 主配置文件,核心配置文件
打开配置文件,将配置文件里anonymous_enable = YES,改成NO,禁止匿名用户登陆
1)/etc/vsftpd/ftpusers //黑名单,这个里面的用户不允许访问FTP服务器
登陆被拒绝,可以查看登陆用户是不是在黑名单(root默认在黑名单)
2)/etc/vsftpd/user_list //白名单,允许访问FTP服务器的用户列表
#chkconfig vsftpd on //设置开机自启动
#service vsftpd restart //重新启动ftp服务
#netstat -antup | grep ftp //查看ftp服务端口
#netstat -nltp|grep 21 查看系统监听,21端口为ftp服务端口
3)了解简单的ftp命令get下载,put上传,lcd查看本地操作目录,mget,mput分别是多个文件的下载和上传
4)可以在web或者dos下链接ftp服务器,例如:Dos下用 ftp 192.168.1.210
web端用ftp://192.168.1.210,默认访问的目录是 /var/ftp
5)也可以创建一个新用户#useradd
ftpuser,然后设置密码#echo “123456” | passwd ftpuser --stdin
为用户分配一个目录#mkdir -p /data/ftp/pub,
可以在这个目录下放一些东西,#echo “Welcome to use FTP service.” > /data/ftp/welcome.txt
将该目录设置为用户主目录#usermod -d /data/ftp ftpuser
web访问时ftp://ftpuser:[email protected]
#yum install lrzsz
#rz,执行之后会有一个窗口让你选择本地的一个文件,确定后上传,上传到root目录
#sz centos_fileName,下载是需要指定下载的文件名
需要在两台虚拟机之间传递文件
后来发现scp这东西应该属于openssh-clients这个包,运行:
#yum install openssh-clients -y (注:两台机器都需要安装
1)从远程主机下载东西到本地电脑拷贝文件命令 :
#scp user@host:/path/file /localpath 即 scp 用户名@IP:/文件路径 /本地文件路径
如果拷目录就:
#scp -r user@host:/dirpath /localpath 即 scp -r用户名@IP:/目录路径 /本地文件路径
2)从本地上传文件或目录到远程主机从本地上传文件到远程主机
#scp localfile user@host:/dirpath 即 scp 文件路径 远程主机用户名@ip:/存放文件的路径
从本地上传目录 到 远程主机:
#scp -r localdir user@host:/dirpath 即 scp -r 本地目录路径 远程主机用户名@ip:/存放文件路径
可以用两台虚拟机(两台虚拟机都需要安装scp)进行测试也可以使用git Bash
1.从远程主机下载文件到本地(git)
#scp -r [email protected]:/home/user /c,拷贝整个目录到本地c盘
如果使用git bash下载单个文件
#scp [email protected]:/home/user/1.txt /c,将1.txt这个文件下载到C盘
2.从本地上传东西到远程主机
#scp 1.txt [email protected]:/home/user,将文件1.txt放到远程主机的/home/user目录下
#yum install -y nfs-utils
#vim /etc/exports
/home/nfs/ 192.168.1.210/24(rw,sync,all_squash)
同192.168.1.220/24一个网络号的主机可以挂载NFS服务器上的/home/nfs/目录到自己的文件系统中
rw表示可读写;sync表示同步写,
先为rpcbind和nfs做开机启动:(必须先启动rpcbind服务)
#systemctl enable rpcbind.service
#systemctl enable nfs-server.service
然后分别启动rpcbind和nfs服务:
#systemctl start rpcbind.service
#systemctl start nfs-server.service
确认NFS服务器启动成功:
#rpcinfo -p
检查 NFS 服务器是否挂载我们想共享的目录 /home/nfs/:
#exportfs -r
#使配置生效
#exportfs
可以查看到已经ok
/home/nfs 192.168.248.0/24
首先是安裝nfs,同上,然后启动rpcbind服务
先为rpcbind做开机启动:
#systemctl enable rpcbind.service
然后启动rpcbind服务:
#systemctl start rpcbind.service
注意:客户端不需要启动nfs服务
检查 NFS 服务器端是否有目录共享:showmount -e nfs服务器的IP
showmount -e 192.168.1.210
Export list for 192.168.1.210:
/home/nfs 192.168.1.2100/24
在从机上使用 mount 挂载服务器端的目录/home/nfs到客户端某个目录下:
#cd /home && mkdir /met
#mount -t nfs 192.168.248.208:/home/nfs /home/met
#df -h 查看是否挂载成功。
如果挂载成功可以在本地/home/met目录下看到nfs service挂载的内容
卸载一个挂载
#umount /home/met
mount:no route to host
首先ping一下主机ping 192.168.1.210,能够ping通,查看了防火墙状态,关闭服务端与客户端的防火墙,重新挂载成功