fedora11--samba

 

Fedora11安装samba出问题的朋友,看过来

#原创作者: w45911623,转贴朋友请手下留情,保留这行,尊重我的劳动成果,也算尊重你自己,谢谢#
忙了3,4天,终于把Fedora11的samba搞定了。
由于网上的很多教材都是抄来抄去,很多甚至采用移花接木的方法拼凑而成,导致我走了很多弯路。
现把我 配置samba碰到的问题以及解决的方法在这里总结一下,作为感谢在这里帮助过我的朋友,同时
也帮助其他正在摸索的朋友

Fedora11 配置samba过程 简介
说明,以下是作为没有密码的访问设置;所有命令均要在管理员权限下使用;如果你已经能用这个设置于 windows互联互通了,给samba设置带密码的访问就很容易。

1.用rpm -qa | grep samba 和 rpm -qa | grep smb查询是否 安装了必需的包裹(这点去网上搜索,教程很多,这里不赘述)
2.检查/etc/samba 下是否有smbpasswd文件(这个为带密码访问的配置)
3.samba升级到3.4版本以上必须安装libtalloc 1.3.1版本,否则后续运行testp arm时,容易出现这个错误:
testparm: symbol lookup error: testparm: undefined symbol: _talloc_get_type_abort
4.防火墙必须通过samba功能:
系统--->管理--->防火墙 中设置samba通过防火墙
5.SELinux中所有和samba的功能均设置为通过,运行以下3个命令即可:
setsebool -P samba_domain_controller on
setsebool -P samba_enable_home_dirs on
setsebool -P samba_export_all_ro on
关于SELinux设置怎么影响samba的问题,可以参考/etc/samba/smb.conf文件中的SELINUX NOTES部分
6..smb.conf按照以下设置进行即可:
[global]
workgroup = xxxx      说明:要设置成和windows一样的工作组
netbios name = xxxxx      说明:  在windows里出现的 linux计算机的名称
server string = xxxx      说明:linux的计算机的名称
security = share      说明:匿名共享级访问

[LServer]
        path = /home/lserver      说明:你可以在自己觉得合适的位置建立一个目录作为windows的访问目录,我的是lserver
        writable = yes      说明:目录可以写
        browseable = yes      说明:目录可以浏览
        guest ok = yes      说明:匿名用户登录
7.然后运行命令:
testparm
返回结果为:
Load smb config files from /etc/samba/smb.conf
Processing section "[LServer]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
说明smb.conf配置成功
8.运行命令:
service smb start
返回结果为:
启动 SMB 服务:                                            [确定]
说明samba服务配置成功
9.接下来,在windows的IE或资源管理器中上方的地址栏中输入//x.x.x.x (x.x.x.x为你的linux机器网络地址)
就能看到你的linux机器和谐靠大家享的文件夹

#原创作者: w45911623,转贴朋友请手下留情,保留这行,尊重我的劳动成果,也算尊重你自己,谢谢#   
 
 
 
 
 
一、软件准备 RHEL4系统中默认安装了samba服务器和客户机的所有软件包。通过以下命令来确认是否已存在软件包。 # rpm -qa|grep samba samba-client-3.0.10-1.4E samba-3.0.10-1.4E samba-common-3.0.10-1.4E 若没有,则到RHEL4的第2张安装光盘中去找,或者到
  

一、 软件准备
  RHEL4系统中默认安装了samba服务器和客户机的所有软件包。通过以下命令来确认是否已存在软件包。
  # rpm -qa|grep samba
  samba-client-3.0.10-1.4E
  samba-3.0.10-1.4E
  samba-common-3.0.10-1.4E
  若没有,则到RHEL4的第2张安装光盘中去找,或者到网上去下载。

二、 Samba服务的安装和配置
1、 Samba安装
  安装命令为:
  # rpm –ivh 软件包名称
  例如:# rpm –ivh samba-3.0.10-1.4E.rpm
  RHEL4系统中默认已经安装了与Samba服务相关的软件包。
2、 Samba服务器的配置
  a. 在smb.conf文件中进行共享资源的配置
  去掉注释,查看smb.conf配置文件中的有效配置,让我们来认识一下smb.conf配置文件。
  # grep -v "^#" /etc/samba/smb.conf |grep -v "^;"
  以上命令能有效的过滤掉配置文件中的注释文字。

[global]
workgroup = MYGROUP
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = user
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no

[homes]
comment = Home Directories
browseable = yes
writable = yes


[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

  从以上内容可以看出smb.conf配置文件默认包括以下3部分内容:
  [global]部分是Samba服务器的全局设置,配置项的内容对整个Samba服务器有效。
  [homes]部分设置了用户共享目录的属性,该部分中不包括的设置项则使用配置文件中的全局设置。
  [printers]部分设置了Samba服务器中的打印机共享资源的属性,Samba服务器除了可以提供文件共享以外,还能够提供打印机的共享。
  用户可以根据自己的应用需求在smb.conf配置文件中添加共享资源的设置,共享资源的名称需要放置在方括号([])中。没有特别的需求,就保持smb.conf配置文件中的[global]项配置为默认。

 

再来看看[global]全局配置中,常用配置项的含义表:

配置项

说明

workgroup

设置Samba服务器所在的工作组的名称,默认设置为MYGROUP

server string

设置Samba服务器的说明文字,用于描述Samba主机

log file

设置Samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,表示所有设置文件都保存在“/var/log/samba/”目录中,使用Samba服务器的每个客户机的日志分别为保存与客户机同名的“%m.log”文件中,“%m”表示客户端主机的名称。

Max log size

设置日志文件的最大容量,默认为50.表示KB,该设置项的数值单位是KB

security

设置Samba服务器的默认安全级别为user,表示需要经过Samba服务器的用户认证后才能够访问服务器中的资源

 

  security 设置Samba服务器的默认安全级别为user,表示需要经过Samba服务器的用户认证后才能够访问服务器中的资源
  对于security全局设置项的配置比较关键,该配置项去定了Samba服务器对客户机采取何种用户认证方式。Security设置项的值可以有以下4种:
  share:表示用户不需要帐户及密码即可登入Samba服务器。
  user:表示由提供服务的Samba服务器负责检查用户及密码,是Samba默认的安全等级。
  server:表示检查账户及密码的工作指定由另一台Windows服务器或Samba服务器来负责。
  domain:表示指定Windows域控制器来验证用户的账户及密码。
  b. Samba用户账号及用户目录设置
  (1) smb.conf文件中对用户目录的默认设置:
  [homes]
  comment = Home Directories
  browseable = yes
  writable = yes
  [homes]共享目录默认的配置项含义如下:
  comment:用于设置共享目录的说明信息。
  browseable:设置为no时表示所有Samba用户的宿主目录都不能被看到,只有登录用户才能看到自己的宿主目录,这样设置可以加强Samba服务器的安全性。
  writable:设置为yes时,表示用户可以对该共享目录写入,设置用户对自己的宿主目录具有写权限是比较合理的。
  经过以上设置后,Samba服务器中的每个用户都会在服务器中拥有一个自己的共享目录(宿主目录)。

 
(2) 建立Samba用户账号
  Samba服务器不使用Linux系统的用户账号进行用户认证,而是维护自己的用户账号文件。Samba服务器的用户账号文件保存在“/etc/samba”目录中,文件名是smbpasswd,初始状态smbpasswd文件不存在,在第一次使用smbpasswd命令创建Samba用户时自动建立。
  在建立Samba用户账户之前先要建立同名的Linux系统用户账号。
  # cd /etc/samba/
  # adduser st02
  # smbpasswd -a st02
  New SMB password:
  Retype new SMB password:
  startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
  Added user st02.
  注意:这里输入密码是不显示的。

  smbpasswd命令除了可以添加Samba用户账户外,使用不同命令选项可以完成不同的账号维护工作。
  -h:显示smbpasswd的命令格式帮助
  -a:添加指定的用户账号
  -d:禁用指定的用户账号
  -e:启用指定的用户账号
  -x:删除指定的用户账号
  使用smbpasswd –d 命令禁用Samba用户账号时,,将在smbpasswd文件的用户记录中进行相应字段的标记。
  使用smbpasswd –e 命令即是启用已经被禁用的Samba用户账号,将在smbpasswd文件中删除用户记录中的禁用标记。
  smbpasswd命令不接任何参数时,将提示修改指定Samba用户的口令,口令的修改会体现在smbpasswd文件的用户记录中。
  使用smbpasswd命令建立Samba用户账号时应注意一下几点:
  -> Samba用户账号使用独立的smbpasswd文件保存用户的账号和加密口令信息。
  -> Samba服务器中的用户账号应该具有与其同名的Linux系统用户账号,因为Samba用户是使用同名的系统账号身份来访问Linux资源(文件和目录)的。
  -> Samba用户的口令和同名系统用户的口令是独立的,可以相同也可以不相同,需要分别进行维护和更改。
  -> 当Samba用户不需要登录Linux系统时,同名的系统用户账号可以不设置口令,因为空密码的系统用户是无法登陆Linux系统的。
  可以看出Samba服务器中的用户账号与Linux系统账号是相对独立但是又有所关联的,在实际的应用中移动要注意两者之间的以上几点关系。

 
c. 添加公共目录设置
  在Samba服务器的默认设置中没有公共目录的设置,需要手动进行添加。
  对于公共目录有如下要求:
  (1) 任何Samba的用户都可以访问公共目录并对目录有读写权限;
  (2) 任何用户在公共目录中都以Linux中nobody系统用户的身份出现,即在公共目录中任何用户建立的文件都属于nobody系统用户。
  在对smb.conf文件进行设置之前需要建立公共目录在Linux系统中对应的目录“/home/public”,并设置该目录的属主和属组为nobody。
  # mkdir /home/public
  # chown nobody.nobody /home/public
  # ls -ld /home/public
  drwxr-xr-x  2 nobody nobody 4096 Jun 10 13:30 /home/public
  在smb.conf文件中添加名为[public]的共享资源,并设置如下内容:
  [public]
  path = /home/public
  public = yes
  only guest = yes
  writable = yes
   d. 对smb.conf文件配置的测试
  测试命令为:# testparm
  e. Samba服务器的启停命令
  Samba服务器的启动脚本位于目录“/etc/init.d”中,脚本文件的名称是smb。
  # ls -l /etc/init.d/smb
  -rwxr-xr-x  1 root root 2020 Jan  3  2005 /etc/init.d/smb
   启动Samba服务器:
  # service smb start
  Starting SMB services: [  OK  ]
  Starting NMB services: [  OK  ]
   查看Samba服务的服务状态:
  # service smb status
  smbd (pid 3886 3882) is running...
  nmbd (pid 3887) is running...
   停止Samba服务器:
  # service smb stop
  Shutting down SMB services: [  OK  ]
  Shutting down NMB services: [  OK  ]
 
 
四、 Linux主机访问Windows共享文件
1、 在Windows主机中创建共享目录

 

 

 


2、 使用sbmclient命令来连接Windows共享目录
  使用来宾账号Guest(密码为空)来登录访问Windows的共享资源
  # smbclient //192.168.1.254/share -U Guest
  Password:
  Domain=[XULAU] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
  smb: /> dir
  .                               D        0  Wed Jun 10 05:46:45 2009
  ..                              D        0  Wed Jun 10 05:46:45 2009
  360safefixavi.exe               A   402952  Sun May 31 07:49:21 2009
  avseq03.wmv                     A  8062020  Sat Jun  6 03:11:22 2009
  EasyInstallMakerV2.2_XiaoSD.exe A  1341058  Sat May 30 08:46:03 2009
  FireFox 3.0.8.exe               A  7339968  Mon Apr 20 07:18:42 2009
  kav8.0.0.506sch.exe             A 38302992  Thu Dec  4 20:22:00 2008
  mysql-5.1.35.tar.gz             A 35152597  Fri Jun  5 23:51:45 2009
                       53615 blocks of size 1048576. 5523 blocks available
  smb: /> exit
3、 使用mount命令挂载Windows共享目录
  # mkdir /winshare
  # ll /winshare
  total 0
  # mount -t smbfs -o username=Guest //192.168.1.254/share /winshare
  Password:
  # ll /winshare
  total 88480
  -rwxr-xr-x  1 root root   402952 May 31 07:49 360safefixavi.exe
  -rwxr-xr-x  1 root root  8062020 Jun  6 03:11 avseq03.wmv
  -rwxr-xr-x  1 root root  1341058 May 30 08:46 EasyInstallMakerV2.2_XiaoSD.exe
  -rwxr-xr-x  1 root root  7339968 Apr 20 07:18 FireFox 3.0.8.exe
  -rwxr-xr-x  1 root root 38302992 Dec  4  2008 kav8.0.0.506sch.exe
  挂载成功!

 

rhel5上samba解决不能“写”的问题


2008-08-28 22:29:06    业界 |  评论(0) |  浏览(1168)
由于工作需要,要使用到 samba.我的 系统是rhel5。rhel5上的samba和别的版本系统有一点差别。就是这一点差别,搞了我三天,共享出来的目录可以正常访问,可是就是不能写。前段时间还在rhel4上做过,挺顺利没遇到这个问题。最后找到了原因竟是“selinux”惹的祸!下面是我的 安装配置步骤:
1. rpm -qa | grep samba
2. rpm -ivh samba-3.0.23c-2.i386.rpm
3. vi /etc/samba/smb.conf  更改/添加
   workgroup = WORKGROUP
   server string = Test Samba Server
   [testshare]
   comment = testshare
   path = /opt/web
   writable = yes
   valid user = tech
   write list = tech
   create mask = 0664
   directory mask = 0775
4. mkdir /opt/web
   chmod 777 /opt/web
5.smbpasswd -a tech   (注:一定要有"-a"参数,没有参数只是更改存在的用户密码而已)
6./etc/init.d/smb restart
如果现在从win访问,没有写的权限,所以下面第7步很重要
查看日志,找原因:
[root@testserver ~]# tail /var/log/messages  发现提示是selinux的问题
Aug 28 10:33:20 testserver setroubleshoot:      SE Linux is preventing samba (/usr/sbin/smbd) "write" to web (usr_t).      For complete SELinux messages. run sealert -l d4c5511c-597c-4c79-8ff6-652f000c29f7

7.vi /etc/selinux/config
  SELINUX=enforcing  改为  SELINUX=disabled
8. sync;sync;shutdown -r now  搞定!!!

注:关于SELINUX=disabled,有些人觉得不安全,本人的服务器只是用来做测试用,所以直接关闭。也可以不关闭SELINUX,通过修改selinux的规则放行smb服务启动,大家有兴趣的去 IT社区论坛看看一下。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值