Linux samba文件共享

 SAMBA软件用于在不同平台之间(Linux/Unix/Windows)共享文件。

1

SMB:Service Message Block               程序全名

CIFS: Common Internet FileSystem     程序全名

2

samba启动的的三个进程,都是为了与Windows主机实现文件共享向工作的

smbd:共享文件

nmbd:向Windows主机广播自己的IP

winbind:默认不启动,Linux主机在Windiws域中时使用

3

Port:137/UDP(netbios),138/UDP(netbios),139/TCP(netbios),445/TCP(smb over TCP/IP)

4

软件包:

samba.i386服务器端软件包

samba-swat.i386 网页功能的samba

5

配置文件:

/etc/init.d/smb

/etc/samba/smb.conf

6

Ps:在新版本中,samba接受selinux的控制,所以在配置时,我们最好先关闭selinux

7

配置文件:

 [global]

;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24监听的IP

;       hosts allow = 127. 192.168.12. 192.168.13.  允许的IP

;       log file = /var/log/samba/%m.log          记录日志 宏%m表示当前主机的主机名

;       max log size = 50                  日志文件大小

        security = user              samba安全级别,主要根据用户验证方式

                            share:公共

                            user:根据用户名密码

                            domain:根据域

                            server:集中式认证

                            ads

        passdb backend = tdbsam      账号的数据库文件

[homes]

        comment = Home Directories       说明信息

        browseable = no            不允许随意浏览

        writable = yes               允许上传文件

;       valid users = %S            定义哪些用户可以访问此共享

[printers]

        comment = All Printers         显示所有打印机

        path = /var/spool/samba        能够访问到的打印机

        browseable = no            不允许匿名访问打印机

        guest ok = no                来宾账号是否允许访问打印机

        writable = no

        printable = yes

 

;       [netlogon]

;       comment = Network Logon Service

;       path = /var/lib/samba/netlogon

;       guest ok = yes

;       writable = no

;       share modes = no

 

 

;       [Profiles]

;       path = /var/lib/samba/profiles

;       browseable = no

;       guest ok = yes

 

8

我们使用用户登录时,需要创建专供samba使用的用户名密码,直接将本地存在的用户添加为samba用户即可,使用smbpasswd命令

smbpasswd

       -a 添加samba用户

       -x 删除用户

       -d 临时禁用某个用户

       -e 启用禁用的账号

9

testparm检查配置文件,敲回车显示在生效的命令

 

10   

 

实例:

#yum install samba

#vim /etc/samba/smb.conf

在最后面添加共享目录:

[share]                           这里起得名字是表示共享的目录

        comment = my share folder

        path = /sharing

        browseable = Yes

        guest ok = Yes

        writable =Yes

writable = Yes read only =No 的作用是一样的)

#testparm                                    检查配置文件

#useradd zoe                          创建用户

#smbpasswd -a  zoe              将用户添加到samba中并添加密码

#chcon -R -t samba_share_t /sharing/   递归修改其标签在,这个在selinux中会讲到

 

#setfacl –m u:zoe:rwx /sharing     修改用户对于/sharing的权限

结束

现在你就可以在windows中使用网上邻居工作组搜索该主机,登陆进去访问sharing目录了

11

如何使用Linux作为客户端访问samba共享文件:

在这里我们使用的命令是smbclient

Smbclient

-L hostname/IP       查看指定主机上的共享资源

-U username[%password]      使用指定用户名登陆

smbclient //HOST/SHARE -U username%passwd

例子:smbclient //192.168.0.3/share -U zoe%redhat

12

访问控制:

在前面的[share]中添加即可对/sharing目录进行限制

hosts allow = 192.168.12.     允许192.168.12.0网段的主机访问

testpqrm /etc/samba/smb.conf station34.example.com 192.168.0.34        测试指定主机是否能够访问指定的共享文件

写访问控制:

write list = @peguin      表示只有组中的成员可写

write list = @zoe           表示只有zoe用户可写

13

让一个组都有写权限:

groupadd peguin

useradd -G peguin fedora

usradd -G peguin gentoo

smbpasswd -a fedora

smbpasswd -a gentoo

setfacl -m g:peguin:rwx /sharing/

此时,peguin族中的成员都可以访问共享文件夹

14

我们在前面就关闭了selinux,那么我们也可以打开selinux,修改它的规则以支持我们samba的工作。

修改selinux 以支持samba的部分功能:

selinux默认为不支持samba使用家目录

getsebool -a | grep samba                    查看selinux中包含samba的选项

samba_domain_controller --> off

samba_enable_home_dirs --> off         该项表示不允许使用家目录

samba_export_all_ro --> off

samba_export_all_rw --> off

samba_share_nfs --> off

use_samba_home_dirs --> off

virt_use_samba --> off

 

setsebool -P samba_enable_home_dirs=1    -P表示修改原文件,使它永久生效

这样子selinux就不影响我们的samba

15

我们也可以直接将别的linux主机共享的samba目录挂载到本机使用,这样子是不是就十分方便了~

挂载其他主机共享的samba目录:

mount -t cifs //192.168.0.73/share /mnt -o username=redhat

表示挂载0.73主机上共享的share目录到本地的/mnt目录,使用的用户名是redhat

16

关于samba-swat

可以讲samba-swat看做网页版的samba,就是痛过网页管理samba,这样很方便我们进行远程管理,这里不多说了,大家英文好的看看就明白了。

它属于非独立守护进程

监听tcp 901端口

默认只允许来自127.0.0.1的地址访问

实例:

#yum –y install samba-swat

#cd /etc/xinetd.d/

#vim swat

修改为下面的内容

service swat

{

        port            = 901

        socket_type     = stream

        wait            = no

        only_from       = 192.168.0.0/24    这里表示允许192.168.0.0网段主机访问,根据情况自己修改

        user            = root

        server          = /usr/sbin/swat

        log_on_failure  += USERID

        disable         = no                        表示启动

}

#Service xinetd restart

完成,下面就可以通过浏览器访问控制了,假如我的samba主机是0.3

http://192.168.0.3901/

使用用户名密码登陆就OK

网页的使用方法大家就自己研究吧~

 

你可能感兴趣的:(linux,职场,samba,休闲)