简单描述:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS等等分布式文件系统。
一、samba搭建
1.samba安装:yum install samba -y
2.安装完毕后修改配置文件/etc/samba/smb.conf
3.复制最后七行,修改需要共享的文件路径
4.系统添加用户useradd mmy ;smbpasswd -a mmy 这里指定smb的登录用户名密码
5.客户端登录或者windows登录\\ip 就可以下载上传文件了,,啦啦
二、nfs搭建
1.nfs安装:yum install nfs* -y ,启动服务/etc/init.d/rpcbind restart, /etc/init.d/nfs restart
2.nfs安装完毕,需要创建共享目录,共享目录在vi /etc/exports文件里面配置,配置参数如下
/data/ 192.168.77.168(rw,sync)或者直接把ip改为*指定所有就ok了
3.重启服务,如果想使用这个文件系统需要在客户端挂载,挂载命令:
mount -t nfs 192.168.77.167:/data/ /mnt 挂载到本地mnt目录下,,,挂载完毕成功后去mnt目录下查看会看到有data下的所有文件。
二、目的:每个smb用户可以查看和下载上传自己的共享目录,然后还有个public公有目录
-
删除用户配置文件模板里的文件
-
在smb.conf配置文件中,[homes]共享目录是Samba服务器默认提供配置的,也是比较特殊的共享设置。[homes]共享目录并不特指某个目录,而是表示Samba用户的宿主目录,即Samba用户登录后可以访问同名系统用户的宿主目录中的内容。
在宿主目录中,默认情况下会存在一些隐藏的用户配置文件,而在使用UNC路径访问的时候会出现这些隐藏的配置文件,会对用户带来不便,而每个用户的配置文件都是从用户配置文件模板“/etc/skel/”中复制过去的,因此需要将模板里的配置文件都删除掉,这样,建立的用户宿主目录里就不会存在任何文件。
-
chmod 700 -R /etc/skel/ ; rm -rf /etc/skel/* ;
-
建立Samba用户账号
Samba服务器不使用Linux系统的用户账号进行用户人在,而是维护自己的用户账户文件。Samba服务器用户账户文件保持在“/etc/samba”目录中,文件名是smbpasswd,初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建Samba用户时自动建立。
使用smbpasswd命令的“-a”选项可以向smbpasswd文件中添加Samba用户账户,命令中需要指定要添加的用户名作为参数,smbpasswd命令执行过程中会提示设置该Samba用户的口令。在建立Samba用户账户之前需要建立同名的Linux系统用户账户。
注意:为了考虑安全性,Linux系统用户账户不需要设置密码,也登录不了系统。而在工作环境中,为了考虑安全性,Samba服务器只是充当文件服务器,只允许虚拟用户和管理员访问,其它用户是不允许登录的。
-
Smbpasswd命令参数详解:
-h:显示smbapasswd的命令格式帮助
-a:添加指定的用户账户
-d:禁用指定的用户账户
-e:启用指定的用户账户
-x:删除指定的用户账户
-
useradd lijq ;useradd jfedu; smbpasswd -a lijq;smbpasswd -a jfedu;
添加公共目录public
要求任何用户都可以访问公共文件夹public,并且具有读写的权限。任何用户在公共目录中都以Linux中nobody(nobody属于系统中存在的特殊用户,这个用户是不允许在系统中正常登录的)系统用户的身份出现,即在公共目录中任何用户建立的文件都属于nobody系统用户。
-
mkdir /data/public;chown nobody:nobody /data/public -R
-
smb.conf 配置:
workgroup = MYGROUP 设置samba服务器所在的工作组的名称
server string = Samba Server Version %v 设置samba服务器的说明文字,用于描述samba主机
-
log file = /var/log/samba/%m.log 设置samba服务器的日志文件,“%m”变量表示客户端主机的名称。
Max log size = 50 设置日志文件的最大容量
-
Security = user 表示由提供服务的Samba服务器负责检测账户和密码,是Samba默认的安全设置。
Security = share 表示用户不需要账户及密码即可登入Samba服务器。
Security = server 表示检查账户及密码的工作指定由另一台Windows服务器或Samba服务器负责。
Security = domain 表示指定windows域控制服务器来验证用户的账户及密码。
-
配置[homes]共享目录 创建smb用户是可以指定路径
comment用于设置共享的说明信息。
browseable设置为no表示所有samba用户的宿主目录都不能被看到,只有登录用户才能看到自己的宿主目录,这样设置可以加强samba服务器的安全性。
writable设置为yes表示用户可以对该共享目录写入,设置用户对自己的宿主目录具有写权限是比较合理的
-
配置[public]共享目录
注意:在smb.conf中有[public]的配置模板,可参考进行配置
path = /data/public 设置public目录的共享路径
public = yes 表示该目录对于所有samba用户是可见的
only guest 设置为yes表示所有用户在使用该共享目录时的用户身份都是guest,即linux系统用户nobody。
writable设置为yes表示该共享目录对于用户可写。
-
[public]
comment = Public Stuff
path = /data/public
public = yes
writable = yes
printable = no
only guest = yes
write list = +staff然后重启服务就可以登录了,在windows下
-
\\192.168.77.189输入账号密码登录如果想切换登录的换需在cmd下执行:net use * /del
done
本文转自 Anonymous123 51CTO博客,原文链接:http://blog.51cto.com/woshitieren/1668591