安装配置SAMBA
安装前的准备:学习过程中我使用的是vmware虚拟机进行的安装 安装的时候请确保你的yum源配置是否正确,为避免不必要的问题出现这里关闭selinux,使用命令setenforce 0可以实现。 1、 samba在linux中模拟实现SMB和CIFS协议,及其NETBIOS协议,实现把linux模拟成SMB、CIFS或者NETBIOS的客户端,来实现和windows或者其他系统之间共享文件。 2、 当samba在linux上安装启动的话,会启动两个主要的进程,nmdb(实现名称解析)和smdb(实现文件共享) 3、 samba监听udp(137、138端口)tcp(139端口)以实现名称解析。实现文件共享则监听tcp(445端口) 4、 samba的安全级别分为四类、默认为user share :允许匿名共享,能访问你所有共享的目录。最不安全。 user :访问的时候必须提供用户名和密码才能访问,用户是系统用户,但是密码不是登录系统的密码。 doman/server:实现第三方认证,通过认证才能访问,比user安全级别高一点。 ads :基于域的安全认证 5、 samba的软件包 默认情况下samba的客户端软件包都已经安装过了比如 samba-client.i386 samba-common.i386 samba-swat.i386 //这个是samba一个图形化的工具使用的话必须安装 这里先安装samba这一个就好了。 6、 yum install samba -y mkdir /share //创建共享目录,名字随便起,位置也可以改变 修改主配置文件实现对/share的共享。 vim /etc/samba/smb.conf 这是定义的共享信息,还可以更多的进行限制,这里只定义这几项。放在了文件的最底部 [tools] //定义share文件共享时候的名称 comment = My Tools //注释信息 path = /share //共享文件的位置 browseable = yes //是否可以让别人浏览 guest ok = yes //是否让来宾账户访问 writable = yes //是否可以写入。(还取决于目录本身权限) :wq testparm //使用检查命令检查写入是否正确 service smb start //启动samba chkconfig smb on //定义开机自动启动samba netstat -tunlp //查看端口启用情况添加用户,这里使用gentoo来进行演示
如果想访问samba共享的文件,定义user必须要有用户和密码,用户必须是系统用户,默认密码放在/etc/shadow 但是samba的密码和系统密码不是一个,它的密码放在/etc/samba下一个加密的文件里面。 useradd gentoo smbpasswd -a gentoo //给gentoo用户添加使用samba的密码 redhat //密码 在smb的配置文件中把组改成你所在的组 如:在windows中点击我的电脑右键属性查看,一般都是WORKGROUP组 vim /etc/samba/smb.conf work group = WORKGROUP :wq service smb restart //重启服务 可以在windows的网上邻居里面查看工作组计算机 输入用户名和密码就可以看到你所共享的文件了。 你定义可以写入,如果你不可以在共享目录中写入文件,说明你对这个文件没有写入权限,可以增加写权限 setfacl -m u:gentoo:rwx /share 此时就可以写入文件了。 7、 实例,这里再加入一个用户,centos、 定义不能让centos写入,gentoo能写入,二者都可以访问共享的文件 useradd centos setfacl -m u:centos:rwx /share/ smbpasswd -a centos redhat //密码 vim /etc/samba/smb.conf [tools] comment = My Tools path = /share browseable = yes guest ok = yes write list = gentoo //定义用户列表,这里面的可以写入,不在的都不能写入 保存退出。 由于windows有缓存,效果演示不明显,这里采用另一台linux虚拟机进行验证。 smbclient -L 192.168.0.68 //查看这台计算机共享的文件,并输入密码(这里匿名登录无密码) smbclient -L 192.168.0.68 -U gentoo //使用gentoo登录查看,输入密码redhat 查看到共享的文件后访问tools smbclient //192.168.0.68/tools -U gentoo 登录后可以使用put上传文件,get下载文件,mkdir建立目录等 如果你想把/etc/inittab上传上来,必须到那个目录下上传,不能使用绝对路径,只能使用相对路径 lcd /etc put inittab exit 使用centos用户登录,上传或者删除,一个文件试试,看是否设置成功。。。8、
定义一个组,让这个组的所有成员都具有写权限. groupadd mygroup usermod -aG mygroup gentoo usetmod -aG mygroup centos 定义配置文件,添加mygroup这个组有写入权限 vim /etc/samba/smb.conf 在刚才定义的write list后面写上组名,组名前面使用@或者+表示后面跟的是组 write list = @mygroup service smb restart 然后再使用gentoo和centos登录看一下,结果如何? 9、 定义使用特定的客户端访问、 vim /etc/samba/smb.conf 在hosts allow这一行把注释去掉后面的ip网段改成你允许的网段 hosts allow = 127. 172.16. 192.168. //表示允许127网段172.16网段192.168网段访问 保存退出,重启服务 10、 可以把共享的文件挂载到本地使用,如使用gentoo用户把文件挂载到本地使用 mount -t cifs //192.168.0.68/tools /mnt -o username=gentoo cifs为文件类型 -o指定用户名 /mnt为挂载点 gentoo用户可以对挂载目录进行写入权限. 11、 安装图形化的使用工具samba-swat (samba-swat是非独立守护进程,依赖超级守护进程。超级守护进程管理的非独立守护进程的相关配置文件都在/etc/xinetd.d/目录下)使用901端口 yum install samba-swat -y vim /etc/xinetd.d/swat only_from = 172.16.0.0/16 //表示只允许来自此网段的用户访问 disable = no :wq service xinetd start //启动此服务,由超级守护进程管理 此时可以在windows的浏览器中输入服务器的ip地址加上端口来访问 如: 192.168.0.68:901 使用你的系统root用户的账号和密码进行登录,登录后可以改密码,改的只是samba密码,你的系统用户的密码并没有变。使用这个软件部允许远程连接的,防止你的用户信息被别人截获。 里面定义了你的共享的文件,和可以定义的文件的访问权限,就像windows里面注册信息一样,改完保存一下,新的会覆盖老的,并且立即生效,为了以防万一,记得要备份哦。。。。。。