所谓文件服务器,就是指在计算机上放置许多其它计算机所需要的文件,然后“共享”出去,供其它计算机访问。
nfs--network file system(网络文件系统),他是Unix/linux中特有的一种服务,仅面向unix/linux客户机提供文件共享服务。
-----------------------------------------------------------------------------------------------
此服务配置思路:
1、准备若干目录,根据实际情况合理设置权限。
2、编辑nfs的配置文件/etc/exports,实现事先预想好的功能
3、启动nfs服务
4、用一台linux/Unix计算机测试,注意不仅仅要测试通,不一定要测试权限。
-----------------------------------------------------------------------------------------------
小实验:通过nfs共享文件
1、mkdir /var/music
2、mkdir /var/movie
2、在两个目录中创建一些文件
touch /var/music/a.mp3
touch /var/music/b.mp3
touch /var/movie/x.avi
touch /var/movie/y.avi
3、设置权限,假设音乐中的目录允许上传,但已有的文件不允许修改。
而电影的目录不允许上传 , 更不允许修改里面的文件。
chmod 777 /var/music
chmod 444 /var/music/*
chmod 555 /var/movie
chmod 444 /var/movie/*
4、编辑/etc/exports这个配置文件,加入以下两行:
/var/music *(sync,rw) "共享music这个目录,并指定为可读写。
/var/music *(sync,ro) "共享movie这个目录,并指定为只读不可写。
vim /etc/example 进入配置文件
注:如果要是没有配置文件或者配置文件里面没有内容,就输入“man+配置文件的名字”,查看命令手册,
直接找EXAMPLE(例子)
5、启动或者重启nfs服务
service nfs start|restart
6、在linux和Unix的客户机中通过挂载的方式进行连接。
格式:
mount服务器IP:/共享目录的路径/共享名 本地目录
mkdir /mnt/music
mkdir /mnt/movie
mount 服务器IP:/mnt/music /mnt/music
mount 服务器IP:/mnt/movie /mnt/movie
-----------------------------------------------------------------------------------------------
在windows中,共享文件使用一种称为smb(服务消息块)的协议。linux为了能够与Windows兼容,设计了一种名为smaba的服务,安装和配置了samba服务的计算机就被模拟成了一台Windows的文件服务器。
其他的Windows计算机可以通过网上邻居访问它。
其他linux计算机也可以把这台服务器就当成一台Windows服务器。由于samba功能远比nfs强大,即使是Unix和linux之间文件的共享通常也用samba取代nfs。
-----------------------------------------------------------------------------------------------
配置samba的思路:
1、准备共享的目录,设置好权限
2、配置主配置文件/etc/samba/smb.conf
3、启动或重启samba服务
4、客户机进行校验。
Windows客户机访问方式有两种:
1)开始——运行,输入“\\服务器的IP”
2)如果samba服务已经开始一段时间了,就可以通过网上邻居找到服务器。
linux客户机访问方式
1)创建挂载点
2)挂载
回答问题:
samba为什么会取代nfs成为linux世界中共享的服务呢?
samba服务主配置文件是什么?
vim /etc/samba/smb.conf
此文件是什么格式的,注释以什么开头。
-----------------------------------------------------------------------------------------------
samba的主配置文件: /etc/samba/smb.conf
格式:布尔值格式
注释:以#开头,如果是配置项暂不适用那个的是以;开头。
手册:man smb.conf
文件内容说明:
此文件分为若干的章节,分别负责了不通的配置项目。
-----------------------------------------------------------------------------------------------
第一章:global(全球性,全局性)章节 "在每个配置行的前面是对下一行的解释。
1、workgroup=workgroup
本机所在的工作组名字。
Windows为了方便相互间的访问,为每台计算机都设置了一个工作组的名字,在同一个工作组的计算机相互访问比较容易。在实际工作中大家把所有计算机的工作组设置成相同的就可以了。
本次试验的工作组设置为Workgroupx
2、server string=This is teacherbob's linux server
针对服务器的描述信息
3、security=
这个叫共享的安全级,一共有四个安全级
share "无需密码直接访问
user "需要在服务器上先创建一个用户,访问此服务器需要使用这个用户账户。
server "通过一台Windows服务器进行验证
domain "通过一台Windows的域控制器进行验证
本次试验中,把共享安全级设置为share。
4、hosts allow=
这个是访问控制,默认处于关闭状态。去掉注释,在后面写一个子网或IP地址就意味着“允许指定的主机访问”。
例如:
hosts allow=192.168.0.1 192.168.1.
就意味着,除了192.168.0.1这一台机器和以192.168.1.开头的这些地址可以访问我们共享以外,其他计算机都无法访问。
5、load printers=no
是否要启动打印机共享。本次实验把这个功能关闭。
6、log file=/var/log/samba/%m.log
这一项是指定日志文件存储的位置,一般此项目不需要配置,但要理解这项配置的作用,它指明了日志文件所在的位置。
7、max log size=50
这一项指定了日志文件最多占用多少空间,以KB为单位。建议把它改大一些。
-----------------------------------------------------------------------------------------------
第二章 share difinitions
共享定义就是定义一些共享的目录,并指定共享的方式。
针对于每一个共享目录都需要有单独的一段。
默认配置:
[home]
comment=Home directorys
Browseable=no
writable=no
第一行:共享名
第二行:描述
第三行:是否可以浏览
第四行:是否允许写操作
这一段是samba默认的配置信息,它无需修改,实现了每个用户通过samba都能够刚问自己的家。
[printers]
这一段实现了发布共享的打印机,如果不需要就用按照其他格式给注释掉
配置文件里的例子都是注释掉的,可以修改也可以手工编写。
-----------------------------------------------------------------------------------------------
实验例子:
[music]
Comment=Many free mp3 here
Path=/var/share/map3
writeable=no
public=yes
[movie]
Comment=many free movies here! Welcome for your 's
Path=/var/share/movie
Writeable=yes
Public=yes
Browseable=no
Create mask=0
-----------------------------------------------------------------------------------------------
以上命令解释:(重要)
1、comment: 描述这个共享目录的作用。
2、path: 共享目录在计算机上的实际路径。注:共享目录和共享名可以不一样
3、writeable: 是否允许客户机写入到这个目录,这是一个上传的必要条件。另外用户还需要对这个用户有读写执行的三种权限。(另一个必要条件,2个条件加载一起才能构成整个权限的实现)
4、Browseable: 是否允许客户机浏览此共享(如果允许浏览,客户机只要输入计算机名就可以浏览,如果设置为NO则不能浏览,如果知道就能访问,不知道则看不到。),如果不加此行,默认是允许浏览的。
5、public: 是否允许未经登录的用户访问,或者匿名用户访问。由于本次实验共享级设置为share,所以两段都指定为yes
6、creat mask: 支持上传的目录,如果用户上传了文件,默认的权限是什么?
例如:这个码指定为0,那么上传文件的默认权限就是000
再如:此码指定为0644,那么上传文件默认的权限就是644
要注意的问题是:这个权限必须以0开头,没0在前面补一个0,如果是多个0可以都省略掉。
如:007=
07
7 错误
644 错误
0644 正确
================================================================================================
samba相关实验:
实验一:匿名用户访问
试验要求:
1、最基本的samba共享,匿名访问的方式
2、两个共享目录,一个可浏览,一个不能。一个能上传,一个不能上传。
3、能上传的目录上传的文件,必须经过管理员审核才能下载。
-----------------------------------------------------------------------------------------------
1、创建两个目录
mkdir -p /var/share/mp3
mkdir /var/share/movie
chmod 005 /var/share/mp3
chmod 007 /var/share/movie
2、为实验效果考虑,想两个目录中添加一些文件
touch /var/share/mp3/a.mp3
touch /var/share/mp3/b.mp3
touch /var/share/movie/x.avi
touch /var/share/movie/y.avi
3、编辑主配置文件
vim /etc/samba/smb.conf
修改以下行
1)Workgroup = workgroup
2)server string = Thin is dy's linux server
3)security = share
4)load printers = no
5)hosts allow = 127. 192.168.100. 192.168.7.
6)max log size =5000
注:在共享字段,请大家把home这一段整个注释掉。因为是匿名登录所以不用在本地建立家目录。
自己加两段:
[music]
Comment = Many free musics here ! welcome for your's
Path = /var/share/movie
Writable=no
public =yes
[movie]
Comment = Many free movies here! welcome for your's
Path = /var/share/movie
Writable=yes
Public=yes
Browseable=no
Create mask =0
4、配置主机名(为了防止网络冲突)
vim /etc/sysconfig/network
改动
Hostname=
存盘退出后在shell中输入
hostname xxxx.xxxx.xxx
注销重新登录
注意:名字千万不要冲突
5、service smb start|restart
-----------------------------------------------------------------------------------------------
客户端测试:
Windows测试方法:
开始-运行-\\服务器的IP
开始-运行-\\服务器的IP\movie
linux客户端测试方法
mkdir /mnt/mp3
mkdir /mnt/mp3
mount //服务器的IP/mp3 /mnt/mp3
mount //服务器的IP/movie /mnt/movie
7、测试能不能想movie中写文件
提示:这一步会失败,原因系统策略问题,自行解决。
如果不能上传或者客户端访问时提示无权限时可以用一下命令:
setenforce 0(关闭掉这个防火墙的策略)
8、如果能解决第七步骤,看上传后的文件,能不能下载?如果不能则实验成功。
================================================================================================
reat mask: 支持上传的目录,如果用户上传了文件,默认的权限是什么?
例如:这个码指定为0,那么上传文件的默认权限就是000
再如:此码指定为0644,那么上传文件默认的权限就是644
要注意的问题是:这个权限必须以0开头,没0在前面补一个0,如果是多个0可以都省略掉。
如:007=
07
7 错误
644 错误
0644 正确
-----------------------------------------------------------------------------------------------
目录的权限和上传文件的默认权限
目录的权限是指能不能上传,上传文件默认权限是指能上传的目录,有人传了系统会自动为这个文件分配权限,这个码就是指定这个文件的默认权限。
由于试验中指定的码是0,也就是上传的文件系统自动分配的000的权限,自然没人可以下载。
------------------------------------------------------------------------------------------------
samba实验二:基于用户和密码的模式访问实验
实验目的:
1、共享三个目录,第一个目录所有的文件可以读、可以改,可以上传,但仅限于account组成员。这个目录叫pay,出于安全性考虑,把这个目录设置成隐藏共享。
2、第二个eng目录任何用户(不包括匿名,只能系统用户)都可以读,不可以改,不可以上传。
3、第三个mgr目录仅boss 这一个用户可以读,任何人不能上传也不能改。设计成隐藏共享。
实验步骤:
1、准备三个共享目录和文件,合理设置权限
2、创建若干文件,合理设置权限。
3、编辑主配置文件
4、创建samba用户名和密码(默认系统用户不能在samba中登录,需要手工指定才可以)
5、重新启动服务,进行测试。
-----------------------------------------------------------------------------------------------
实验的具体步骤:
1、创建共享目录和共享文件:
1)建立共享目录:
mkdir /var/share/pay
mkdir /var/share/eng
mkdir /var/share/mgr
2)建立共享文件
touch /var/share/pay/a.txt
touch /var/share/pay/b.txt
touch /var/share/eng/x.jpg
touch /var/share/eng/y.jpg
touch /var/share/mgr/file1.txt
touch /var/share/mgr/file2.txt
2、创建用户和组:
1)创建管理组
groupadd account
groupadd eng
groupadd mgp
2)创建用户名
useradd -g account account1
useradd -g account account2
useradd -g eng eng1
useradd -g eng eng2
useradd -g mgr boss
3)创建用户名密码
passwd account1 回车后输入密码
passwd account2 回车后输入密码
passwd eng1 回车后输入密码
passwd eng2 回车后输入密码
passwd boss 回车后输入密码
3、设置共享目录和共享文件的所有者和组
1)设置共享目录的所有者和组
chown account1 /var/share/pay 把pay这个目录的所有权交给account1这个用户
chgrp account /var/share/pay 把pay这个目录的所有权交给sccount这个组
chown eng1 /var/share/eng
chgrp eng /var/share/eng
chown boss /var/share/mgr
chgrp mgr /var/share/mgr
2)设置共享文件所有者和组
chown account1 /var/share/pay/* 把pay这个目录下全部文件的所有权交给account1这个用户
chgrp account /var/share/pay/* 把pay这个目录下全部文件的所有权交给sccount这个组
chown eng1 /var/share/eng/*
chgrp eng /var/share/eng/*
chown boss /var/share/mgr/*
chgrp mgr /var/share/mgr/*
4、设置目录以及目录下文件的权限
1)设置目录的权限。
chmod 770 /var/share/pay
chmod 555 /var/share/eng
chmod 500 /var/share/mgr
2)设置目录下所有文件的权限。
chmod /660 /var/share/pay/*
chmod /444 /var/share/eng/*
chmod /400 /var/share/mgr/*
5、修改配置文件
vim /etc/samba/smb.conf
workgroup =workgroup
server string = 对服务器的描述
security =user “设置共享级别为用户级,也就是说必须有用户身份的用户才能访问。
创建三个共享字段:
[pay]
comment = 描述
path= /var/share/pay
public =no 不允许匿名访问
valid users =@account "加“@”就代表account用户组可以访问,如果不加@那就指定单独的用户可以访问。
writeble =yes
browseable =no
create mask =0660 默认这个组的成员上传文件都可以修改,但非本组成员不可以
[eng]
comment =描述
path =/var/share/eng
public=no
valid user =%s %s所有用户都可以访问,如果不写包括匿名用户访问,如果写则只有系统用户都可以访问。
[mgr]
comment = 描述
path =/var/share/mgr
public =no
valid user =boss
browseable =no
6、创建samba服务器用户
smbpasswd -a account 回车后输入密码
smbpasswd -a account2 回车后输入密码
smbpasswd -a eng1 回车后输入密码
smbpasswd -a eng2 回车后输入密码
smbpasswd -a boss 回车后输入密码
注意:
我们要建那些用户?
要建立那些组?那些用户属于那些组?
如何设置目录的文件的权限(权限在达到要求的情况下,尽量小)
chown 用户名 文件或目录 更改所有者
chgrp 组名 文件或目录 更改组所有者