Samba1
Samba1
网络文件共享(Ftp,NFS,Samba)——Samba Samba主要用来在Windows与Linux之间的文件共享工具,用户的认证和授权都可以由samba自己来定义和实现,并且支持打印共享、名称解析、服务的喧称(即有浏览权),samba客户端可以通过远程连接samba服务器来上传和下载文件。 Samba服务的主要程序: 【smbd:提供对服务器中文件、打印资源的共享访问, 【nmbd:提供基于NetBIOS主机名称的解析, 使用udp的137、138端口】 smb使用tcp的139端口 cifs使用tcp的44 5端口 软件包:samba.i386- 3.0.33-3.14.el5 Samba的服务脚本:/etc/init.d/smb Sambade 配置目录为:/etc/samba,配置文件为:/etc/samba/smb.conf,它默认定义的三个字段即[global] Global (全局)参数 该部分设置整个系统的规则,定义了一些公共变量,如netbios name=web 定义Windows系统“网上邻居”中所见的机器名,如workgroup=SambaServer 定义服务器的工作组名,如server string=Samba Server 对主机的说明信息如:hosts allow=192.168.0.105 guest account=thg 定义smb用户名称,如security=user 、[homes]、[printers]。 Nmbclient是可以用来进行调试的程序。 Smbfs程序是使用SMB协议工作的文件系统。 Smbumount程序用于卸载Smbmount建立的共享资源目录。 如printer字段: [printers] comment = All Printers(定义注释描述信息) path = /var/spool/samba(定义打印队列或共享目录) browseable = no(定义浏览权限,此处表示除了用户自己可看到外,其他人都不允许浏览) guest ok = no(定义是否允许来宾账号访问的,此处表示不允许来宾账号访问) writable = no(定义是否可写的,此处表示不可写) printable = yes 还有例如:valid users=@mygroup(用来定义对那些用户来自定义共享的,此处表示对mygroup组的 用户均可共享) Valid users=+natasha(表示允许natsaha用户共享) write list=wendy(用来定义谁具有写权限的,此处表示wendy用户在访问共享时具有写权限) public=yes(表示可见) read only=no(表示只可写) getbool -a | grep samba(查看与samba相关的bool值) setsebool -P samba_enable_home_dirs on(修改samba的bool 值 可以让用户访问自己的家目录) chcon -R -t samba_share_t /path/to/samba_share_DIR(让samba客户端可以访问samba服务器的共享目录) 1)如何利用Samba来实现针对不同的用户具有不同的共享权限呢? 实验要求:添加两个附加组都为mygroup组的用户natasha和wendy,让wendy具有访问与可写权限,让natasha具有访问权限;再添加一个mary的用户,让mary只有浏览权限;新建一个属主为root属组为mygroup权限为775的共享目录/shared,并用smbclient客户端进行访问。并且把防火墙设为Enforcing状态。 实验环境:samba—server:192.168.0.105 Samba—client:192.168.0.106 在samba—server上做设置: [root@station19 ~]# rpm -qa | grep samba(查看已安装的samba软件包) samba-client-3.0.33-3.14.el5 samba-common-3.0.33-3.14.el5 [root@station19 ~]# yum list all | grep samba(列出samba软件包) samba.i386- 3.0.33-3.14.el5 samba-client.i386 -3.0.33-3.14.el5 samba-common.i386 - 3.0.33-3.14.el5 samba-swat.i386 - 3.0.33-3.14.el5 system-config-samba.noarch- 1.2.41-5.el5 [root@station19 ~]# yum -y install samba(安装samba包) [root@station19 ~]# service smb start(启动samba服务) Starting SMB services: [ OK ] Starting NMB services: [ OK ] [root@station19 ~]# chkconfig smb on(添加到开机自启动列表) [root@station19 ~]# netstat –tunlp(查看是否启动成功,即137、138、139、445端口是否开放了) tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 30749/smbd udp 0 0 192.168.0.103:137 0.0.0.0:* 30752/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 30752/nmbd udp 0 0 192.168.0.103:138 0.0.0.0:* 30752/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 30752/nmbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 30749/smbd [root@station19 ~]# grep -v -E "#|^;" /etc/samba/smb.conf(查看samba所有定义的选项) [root@station19 ~]# vim /etc/sysconfig/selinux(开启selinux) SELINUX=enforcing [root@station19 ~]# groupadd mygroup(添加mygroup组) [root@station19 ~]# useradd -G mygroup natasha(添加natasha用户,并制定附加组为mygroup组) [root@station19 ~]# useradd -G mygroup wendy(添加wendy用户,并制定附加组为mygroup组) [root@station19 ~]# useradd mary(添加mary用户) [root@station19 ~]# cd /(切换到根目录)注一定要在根目录下建共享目录shared/) [root@station19 /]# mkdir shared/(建共享目录) [root@station19 /]# chown root :mygroup shared/(修改属主为root属组为mrgroup) [root@station19 /]# chcon -R -t samba_share_t /shared/(修改共享目录标签) [root@station19 /]# chmod 775 shared/(修该目录权限) [root@station19 /]# ll -Zd /shared/(查看目录详细信息) drwxrwxr-x root mygroup root:object_r:samba_share_t /shared/ [root@station19 /]#touch thg.txt(创建两个文本文件,用来方便测试使用) [root@station19 /]#touch.tg.txt [root@station19 shared]# ls tg.txt thg.txt [root@station19 ~]# vim /etc/samba/smb.conf(编辑主配置文件) [shared] comment=shared path=/shared/(注这里一定要把目录路径指正确) public=yes(对所有用户都可见) browseable=yes(允许非登录用户浏览) valid users=@mygroup,nobody(对mygroup组的用户具有访问权限) write list=wendy(是wendy用户可写) [root@station19 ~]# testparm(测试主配置文件语法的正确性) Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[shared]" Loaded services file OK. [root@station19 ~]# smbpasswd -a natasha(给用户添加smbpasswd账号) (注:用户必须是事先存在的一个系统用户) [root@station19 ~]# smbpasswd -a wendy [root@station19 ~]# smbpasswd -a mary [root@station19 ~]# service smb restart(重启samba服务) [root@station19 ~]# netstat –tunlp [root@station19 ~]# getenforce(再次确认selinux状态) [root@station19 ~]# smbclient -L 127.0.0.1(先用本机测试) 在samba—client上做测试: [root@station6 ~]# smbclient //192.168.0.105/shared -U natasha%natasha(使用natasha用户名和natasha密码登陆查看共享情况) Domain=[STATION19] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] smb: \> ls . D 0 Thu Mar 4 22:13:17 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt 0 Thu Mar 4 22:06:50 2010 tg.txt 29 Thu Mar 4 22:45:20 2010 36979 blocks of size 1048576. 32176 blocks available smb: \> put thg.txt NT_STATUS_ACCESS_DENIED opening remote file \thg.txt smb: \> lcd /etc smb: \> ls . D 0 Thu Mar 4 22:13:17 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt 0 Thu Mar 4 22:06:50 2010 tg.txt 29 Thu Mar 4 22:45:20 2010 36979 blocks of size 1048576. 32176 blocks available smb: \> get thg.txt getting file \thg.txt of size 0 as thg.txt (0.0 kb/s) (average 0.0 kb/s) smb: \> ls . D 0 Thu Mar 4 22:13:17 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt 0 Thu Mar 4 22:06:50 2010 tg.txt 29 Thu Mar 4 22:45:20 2010 36979 blocks of size 1048576. 32176 blocks available smb: \> rm thg.txt NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \thg.txt smb: \> ls . D 0 Fri Mar 5 00:39:19 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt (表明natasha用户不可删除thg.txt) tg.txt 29 Thu Mar 4 22:45:20 2010 57 Fri Mar 5 00:39:19 2010 36979 blocks of size 1048576. 32176 blocks available [root@station6 ~]# smbclient //192.168.0.105/shared -U wendy%wendy(wendy用户登录) Domain=[STATION19] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] smb: \> ls . D 0 Thu Mar 4 22:45:20 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt 0 Thu Mar 4 22:43:04 2010 tg.txt 29 Thu Mar 4 22:45:20 2010 36979 blocks of size 1048576. 32176 blocks available smb: \> get tg.txt(可下载) getting file \tg.txt of size 29 as tg.txt (5.7 kb/s) (average 5.7 kb/s) smb: \> rm tg.txt(可以删除tg.txt了) smb: \> ls . D 0 Thu Mar 4 22:46:07 2010 .. D 0 Thu Mar 4 21:54:31 2010 thg.txt 0 Thu Mar 4 22:43:04 2010 36979 blocks of size 1048576. 32176 blocks available smb: \> exit [root@station6 ~]# smbclient -L 192.168.0.105 -U mary%mary(mary用户只可见) Domain=[STATION19] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] Sharename Type Comment --------- ---- ------- shared Disk shared IPC$ IPC IPC Service (Samba Server Version 3.0.33-3.14.el5) station90 Printer station90 station Printer station Server Printer Server qqq Printer qqq mary Disk Home Directories Domain=[STATION19] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] Server Comment --------- ------- Workgroup Master --------- ------- MYGROUP [root@station6 ~]# smbclient //192.168.0.105/shared -U mary%mary(mary用户没有访问此共享权限) Domain=[STATION19] OS=[Unix] Server=[Samba 3.0.33-3.14.el5] tree connect failed: NT_STATUS_ACCESS_DENIED ************************************************************************** [root@station6 ~]# mount -t cifs -o username=wendy //192.168.0.105/shared /mnt(可挂载共享,文件系统类型为cifs) [root@station19 ~]# vim /etc/fstab(添加共享到开机自定还挂载列表,只需了解,很少使用) //192.168.0.105/shared /mnt cifs username=nodody 0 0
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。