samba 共享访问

搞这个东西累死个人,虽然我是EO,但是EO也是人啊!O上帝,原谅我用老一个“搞”字,阿门!


这些东西当你看不懂跟我没关系,当我看不懂就跟我有非同寻常的关系  需要的软件:
system-config-samba-1.2.39-1.el5    (提供了Red Hat公司专门为Samba服务器管理编写的图形界面的管理程序,该程序是Red Hat系统管理工具中的一部分)
samba-common-3.0.28-0.el5.8   (他提供主配置文件smb.conf的语法测试程序testparm等)
samba-3.0.28-0.el5.8          (Samba的主程序)
samba-client-3.0.28-0.el5.8   (提供客户端的工具)

配置文件是: /etc/samba/smb.conf
[global]   全局配置
(74行) workgroup = WORKGROUP      这是设置工作组,跟XP一样就OK
       server string = Samba Server Version %v     工作组的说明而已 注释
     ;username map=/etc/samba/smbusers      指名系统帐号跟虚拟帐号的对应关系文件夹位置(默认没有这个文件的)

日志选项
(88行) # logs split per machine
         log file = /var/log/samba/%m.log     日志存放地方
       # max 50KB per log file, then rotate
         max log size = 50                    设置日志文件最大尺寸,单位KB
[ 使用Samba服务器的每个客户机的日志分别保存在与客户主机同名的“%m.log”文件中,“%m”变量表示客户端主机的名称 ]
其中,当samba服务器刚刚建立好后,只有两个日志文件,分别是 nmbd.logsmbd.log,它们分别记录nmbd和smbd进程的运行日志。
nmbd.log是用来管理群组还NETBOIS解析的 
smbd.log是用来管理samba服务器共享目录,文件与打印等信息
当客户端通过网络访问samba服务器后,会自动添加客户端机器的相关日志  

安全选项
(101行)  security = user
       ;passdb backend = tdbsam
         smb passwd file =/etc/samba/smbpasswd   Samba用户和密码文件(这行要自己加)
[ security值有4个含义
share 表示用户不需要账户及密码即可登入Samba服务器(需要匿名登录就设置他)
user 表示由提供服务的Samba服务器负责检查账户及密码(Samba默认的安全等级,登录需要帐号和密码)
server 表示检查账户及密码的工作指定由另一台Windows服务器或Samba服务器负责 就是说需要转交给其他服务器来验证
domain 表示指定Windows域控制服务器来验证用户的账户及密码 

共享目录  Share Definitions 

(248行开始)
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
      ; valid users = %S
      ; valid users = MYDOMAIN\%S

[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no     设置为no表示所有Samba用户的宿主目录不能被看到,只有登录用户才能看到自己的宿主目录共享;这样加强了Samba服务器的安全性
        guest ok = no
        writable = no
        printable = yes
上面这些都注释掉,在下面添加
[eo]                                     这个是共享文件夹名字(可以随便取)
        comment = sharefile directory    共享文件夹的说明,注释而已
        path = /hdtv                     实际上共享的是这个目录,使用绝对路径
        public=yes/no                    设置是否匿名访问
        read only=yes/on                 是否只读(不能读取不代表不能写入,要看写入权限开没有)
        writeable = yes/on               是否写入(只要设置能写入,读取权限可以不设置)
        valid users =                   指定能够进入此资源的特定用户
#valid users=用户名/
@组名    (如果加@符号就代表组名,只有加入这个组的成员才能访问资源,加入组命令在下面有讲解    
不限制帐户的访问(匿名访问)  共享目录:/hdtv
1:设置工作组        
workgroup = WORKGROUP 
2:设置安全           security = share
3:设置共享目录      [eo]
                      comment = sharefile directory
                      path = /hdtv
                       public=yes
                      writeable =yes (写入打开的时候代表能写能读,所以读取权限可以不设置)
需要输入用户名和密码的访问    共享目录:/hdtv
1:设置工作组         workgroup = WORKGROUP 
2:设置安全           security = user
3:设置共享目录      [eo]
                      comment = sharefile directory
                      path = /hdtv
                      writeable =yes
                   
valid users = @dvd ,112   (表示属于DVD组的人可以访问这个目录,112用户也能访问)

现在设置登录系统时的用户名和密码文件

sanba用户名和密码存放在  /etc/samba/smbpasswd  中,默认是没有这个文件的,因为samba启用了tdbsam验证,要注释掉 passdb backend = tdbsam  一行,加上 smb passwd file = /etc/samba/smbpasswd ,然后保存退出
samba帐号并不能直接建立,需要先建立Linux同名的系统帐号。 比如我们要建立一个名为123的samba帐号,那Linux系统中必须提前存在一个同名的123 系统帐号

samba中添加帐号命令为: smbpasswd

命令格式:   smbpasswd -a 用户名
-a:在smbpasswd文件里新增一个用户
-d:让在smbpasswd文件里的某个帐号暂时无法登录samba,多了-d参数时,在smbpasswd里面的某个字段会多出一个D的参数,代表该帐号目前无法使用
-e:与-d相反,恢复某个帐号的使用
[如果我们在添加samba帐号时输入完两次密码出错: Failed to modify password entry for user 123 是因为Linux系统里没有123这个用户]

把用户加入一个用户组命令为:usermod
命令格式:usermod  -g  组名  用户名 (意思是把这个组授予这个用户,让这个用户加入这个组)
查看一个用户的有效用户组命令为:groups

service smb reload
  重新加载一次,这个命令可以不重启SMB服务  用户账号映射 功能
用户帐号映射这个功能需要建立一个帐号映射关系表,里面记录了samba帐号和虚拟帐号的对应关系,客户端访问samba服务器时就使用虚拟帐号来登录就OK老,

在global下添加一行字段
username map=/etc/samba/smbusers 开启用户帐号映射功能,帐号对应文件是在 /etc/samba/smbusers 里
添加 dvd=eo   意思就是登录时输入eo+dvd用户的密码  客户端访问限制
samba有许多防火墙机制,就是 hosts allow 和 hosts deny 两个参数,一般只要
hosts allow 即可,没有被写入这个项目的来源就会被拒绝。
[eo]
     comment = sharefile directory
     path = /hdtv
     writeable = yes
     valid users = @dvd
     hosts allow = 192.  202.156.8.52
  (表示192网段和202.156.8.52主机可以访问,其他都拒绝,中间用空格隔开)
     hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78(表示,192.168.0网段的可以访问,但是0.100和0.78两台主机除外)
hosts allow和hosts deny设置在不同的位置上,它们的作用范围是不一样滴。如果设置在[global]里面,表示对samba服务器全局生效,如果设置在目录下面,则表只对这个目录生效
Samba的隐藏设置
[eo]
     comment = sharefile directory
     path = /hdtv
     writeable = yes
     valid users = @dvd
     browseable = no   (表示隐藏EO目录)

在访问的时候就是 \\ip\目录名  一些参数说明
[EO] 
comment = share direct
path = /home/eo
allow hosts = host(subnet) 
deny hosts = host(subnet) 
writable = yes|no 

valid users = user(@group) 
invalid users = user(@group) 
read list = user(@group) 
write list = user(@group) 
admin list = user(@group) 
public = yes|no 
hide dot files = yes|no 
create mode = 0755 
directory mode = 0755 
sync always = yes|no 
short preserve case = yes|no 
preserve case = yes|no 
case sensitive = yes|no 
mangle case = yes|no 
default case = upper|lower 
force user = 王老师
wide links = yes|no 
max connections = 100 
delete readonly = yes|no 

valid users           指定能够进入此资源的特定用户和组
invalid users       指定不能够使用该共享资源的用户和组
read list            指定只能读取该共享资源的用户和组。 
write list           指定能读取和写该共享资源的用户和组。 
admin list           指定能管理该共享资源(包括读写和权限赋予等)的用户和组。 
public               指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。 
hide dot files       指明是不是像unix那样隐藏以“.”号开头的文件。 

create mode
         指明新建立的文件的属性,一般是0755。 
directory mode       指明新建立的目录的属性,一般是0755。 

sync always 
        指明对该共享资源进行写操作后是否进行同步操作。 
short preserve case  指明不管文件名大小写。 
preserve case        指明保持大小写。 
case sensitive       指明是否对大小写敏感,一般选no,不然可能引起错误。 
mangle case          指明混合大小写。 
default case         指明缺省的文件名是全部大写还是小写。 
force user          强制把建立文件的属主是谁。如果我有一个目录,让来宾用户可以写,那么来宾用户就可以删除,如果我用 force user=王老师 强制建立文件的属主是 王老师 ,同时限制create mask=0755,这样来宾用户就不能删除了
wide links           指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。 
max connections = n  设定同时连接数是n。 
delete readonly      指明能否删除共享资源里面已经被定义为只读的文件


对目录权限说明: 这个很重要

要让用户能进入目录,必须要打开执行权限( X ),
如果打开了写权限( W ),那么用户同时就有了删除权限,
为了防止其他用户的乱删行为,必须给共享文件夹加上防删除权限,就是(t)
命令格式是 chmod 1755 /文件夹名,就是在755前面多加一个数字1,如下:

drwxrwxrwt 6 dvd dvd 4096 05-23 06:04 /hdtv/


create mode = 0755  当设置了这个参数后,用户建立的文件权限始终是744,具体问题暂时没搞懂,但是文件夹权限没有问题

添加用户帐户需要考虑问题:

系统要有对应的帐号(虚拟除外),SAMBA帐号密码可以不和系统帐号的密码一致,,先添加SANBA帐号,还要在配置文件中把共享目录下面有效用户那里写进去,还要考虑这个新添加的帐号在那个用户组和目录权限问题

配置完后需要使用: testparm  命令来检查语法错误,最好养成习惯,每次配置完都检查一次,在从起服务,reload和restart一个是从新加载服务,一个是从启服务,加载的话可能有莫名其妙问题,本人遇到过,我只使用从启命令

samba服务启动查看:
使用命令查看: netstat -anp|less  是否启用了137.138.139这些端口,这些是默认启用的端口,在设置中可以指定开启那个端口

Linux访问Windows共享文件的方法:

1:直接浏览,
打开浏览器,直接输入:smb://目标IP/ 就会出来共享的目录。

2:映射网络驱动器,
(RH5系统X上)左上角的位置-连接到服务器-服务器类型选择(Windows 共享)-服务器填上Windows的IP地址-连接后,在次进入左上角的位置里面就出现了映射出来的服务器IP地址,跟XP的 映射网络驱动器 类似,下次访问直接点这里就打开了共享目录,同时在桌面上进入计算机也可以查看共享目录。

3:命令行挂载,
XP的共享盘符为NTFS ,在设置XP的共享目录名时,最好设置简单一些,最好不带中文,比如XP共享文件夹名为 123 ,把他挂载到本机的/eo文件夹来
直接在命令行输入: mount //XP的IP/123  /eo 提示输入密码时,直接回车 就OK老,网上说的命令中要加入语言编码,文件格式参数,本人因为RP好的缘故,什么都不需要就直接OK老

本文出自 “eo” 博客,http://chuaneo.blog.51cto.com/873831/189041

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值