samba文件共享服务器

   (可以实现Linux服务器和windows服务器之间实现资源共享)
 
1.先挂载光盘
mount /dev/cdrom /media/
mount -t vfat /dev/sda1(先可以用fdisk -l 命令查看U盘的块号)  /mnt
可以编写fstab文件让开机之后自动挂载进去
 vim /etc/fstab
/dev/cdrom(要挂载的东西<源>) /media(挂载到那里去<目的>)iso9660(什么格式<光盘的格式> defaults()  0() 0()
 
2.编辑本地yum文件
vim /etc/yum.repos.d/rhel-debuginfo.repo
 
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///media/Server/(本地的路径)  
enabled=1(为1则是打开仓库,为0则是关闭仓库)
gpgcheck=1(公钥值)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
编辑完成保存退出
 
3.用yum安装samba服务器
yum -y install samba*
用rpm包安装
先进入光盘挂载的文件
cd /media/Server/
rpm -ivh samba-3.0.33-3.14.el5.i386.rpm  //提供samba服务器程序的的rpm包
rpm -ivh samba-client-3.0.33-3.14.el5.i386.rpm //提供samba客户端程序的rpm包
rpm -ivh samba-common-3.0.33-3.14.el5.i386.rpm //提供服务器和客户端都需要使用的公共文件
rpm -ivh samba-swat-3.0.33-3.14.el5.i386.rpm  //web方式管理samba的管理工具
rpm -ivh system-config-samba-1.2.41-5.el5.noarch.rpm //用于提供图形界面的管理程程序(需要在X图形环境中使用)
可用 rpm -qa | grep samba 查看系统中安装了那些samba软件包
 
4.修改samba服务器的配置文件
可以通过grep命令过滤配置文件里面的注释
grep -v "^#" /etc/samba/smb.conf  | grep -v "^;" | grep -v "^$" 
 
vim /etc/samba/smb.conf 
######################做匿名访问##########################
57 [global]全局设置
74         workgroup = WORKGROUP
75         server string = Samba Server Version %v //可以随便取
79;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24    //当服务有多个接口的时候可以指定接口
80;       hosts allow = 127. 192.168.12. 192.168.13.   //允许的网段
89      log file = /var/log/samba/%m.log
91       max log size = 50
101      security = share //这里设置服务器的安全级别,(share(可匿名访问)、user(需由本服务器验证用户名及密码)、server(由
                         另一个服务器验证用户名和密码)、domain(由windows域控制器验证用户名和密码)
221         load printers = yes
222         cups options = raw
248 [homes]用户目录共享设置(对应samba用户宿主目录的默认共享)
249         comment = Home Directories  //设置对应共享目录的注释,说明信息
250         browseable = no             //设置文件在网上邻居中是否可见(no表示不)
251         writable = yes          //设置该目录是否可写(yes可写)与read only 的作用相反
252 ;       valid users = %S      //用来定义那些合法的用户或者组【li(用户),@liu(组)】
253 ;       valid users = MYDOMAIN\%S
254 
255 [printers]打印机共享设置
256         comment = All Printers
257         path = /var/spool/samba  //设置对应共享目录在服务器中的文件夹的路径
258         browseable = no
259         guest ok = no //公共用户(来宾用户)是否能访问 与public的作用一样
260         writable = no 
261         printable = yes
289 [share] //先做一个共享测试一下,做一个匿名访问的
290         comment = gongxiang share
291         path = /gx
292         browseable = yes
293         guest ok = yes
294         writable = yes
 
#################################################
5.创建文件夹gx,在文件夹里面新建一个文件
mkdir /gx
cd /gx
touch 1 2 3
chmod a+wx /gx
6.开启samba服务,用windows客户端测试一下
service smb start(用testparm可以检查配置文件有没有错误)
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]
 
客户端(windows)点击网上邻居,查看工作组,可以看见Linux的samba服务器的共享文件
    由于文件的权限是a+wx所以可以新建可以删除
 
7.修改配置文件建立带验证的文件共享(每个用户都可以读)
 
vim /etc/samba/smb.conf 
######################user共享(带验证的共享)##########################
[global]全局设置
security = user
 [usershare]
comment = user gongxiang
path = /usergx
public = yes
writable = yes
###################################
8、添加samba服务器的用户
useradd li(新建li和liu用户)
useradd liu
passwd li(为li和liu用户设置密码,输入两次密码)
passwd liu
smbpasswd -a li(把Linux中的系统用户添加为samba用户,添加直接用户必须存在于系统中,
                 在此期间可以要输入密码,此密码可以和用户在登入Linux的密码不一样,
                 但是访问文件的时候必须用samba设置的密码)
smbpasswd -a liu
9、新建目录 /usergx在文件夹里面添加三个目录和一个文件,给目录赋予读写的权限
mkdir /usergx
cd /usergx/
mkdir q w e
touch q1 
chmod 775 /usergx
10、重启服务(用testparm可以检查配置文件有没有错误)
 service smb restart
关闭 SMB 服务:                                            [确定]
关闭 NMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]
  客户端通过点击网上邻居,查看工作组,可以看见Linux的samba服务器的共享文件(但是必须输入samba的密码)
11、修改配置文件,取消公开访问的设置(即通过网络邻居不可以看见共享的文件)
vim /etc/samba/smb.conf 
######################user共享(带验证的共享,且网络邻居不可见)##########################
[global]全局设置
security = user
[uncshare]
comment = unc gongxiang  //在windows里面通过UNC路径访问共享文件
path = /uncgx
browseable = no//设置非公开(即网络邻居不可见)
public = no //来宾用户不可访问
writable = no(默认所有人不可写)
valid users = li,liu,@root(只有这些用户可以访问,@root是指root组里面的成员)
write list = li(只有li用户能有写入的权限)
directory mask = 0744(新建文件夹的权限为744)
create mask = 0600(新建文件的权限为600)
###################################################
12、新建目录 /uncgx在文件夹里面添加三个目录和一个文件,给目录赋予读写的权限
mkdir /uncrgx
cd /uncgx/
mkdir a s d
touch a1 
chmod 777 /uncgx
13、重启服务(用testparm可以检查配置文件有没有错误)
 service smb restart
关闭 SMB 服务:                                            [确定]
关闭 NMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]
  客户端通过UNC路径可以访问:点击开始--运行--输入   \\IP(Linux的)\uncshare
验证只有li用户和liu用户root组可以登入,li用户可以写入,其他用户不可以。
14、为了使Linux运行samba服务器更安全,可以设置samba用户的映射
因为samba的用户也是Linux系统的用户,这样知道你samba的用户,就知道对应的Linux的用户
这样不安全,samba服务器通过对用户的映射使得服务器更加的安全
配置映射文件
 vim /etc/samba/smbusers 
########################################################
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin //默认Linux的管理员root对应windows的administrator和admin
nobody = guest pcguest smbguest//nobody 对应来宾用户
li = one
liu = two
###################################
15、 修改samba的配置文件
vim /etc/samba/smb.conf 
################################################
[global]全局设置
 username map = /etc/samba/smbusers //在全局设置添加这条
######################################
16、在重启服务(养成好习惯,修改配置之后就重启服务,重启服务配置才生效)
service smb restart
关闭 SMB 服务:                                            [确定]
关闭 NMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
启动 NMB 服务:                                            [确定]
  客户端通过UNC路径可以访问:点击开始--运行--输入   \\IP(Linux的)\uncshare
  比如用li用户登入,则直接输入li映射的名称 one(密码还是li的密码)
这样管理员可以直接给用户one的账号和密码,客户就不知道Linux对应的用户。
 
 
samba客户端是Linux系统:
查询Linux samba服务器的共享资源
smbclient -L 192.168.14.1
 
以仿ftp客户端的方式登录访问samba服务器的共享目录
smbclient -U li //192.168.14.1(Linux的IP)/usershare
然后输入li用户的密码
然后进行下载和上传文件