红联Linux门户
Linux帮助

《一个字母》导致samba匿名共享无法实现

发布时间:2008-01-18 20:58:55来源:红联作者:basiozwq
原创者:守住每一天
为了实现windowns与 linux 下文件的共享,我采用samba 匿名共享,配置简单,速度快。
系统为rhel 5
默认安装samba

samba 配置文件为: /etc/samba/smb.conf

引用:
[global]
workgroup = guoing
netbios name = guoing
server string = Linux Samba Server TestServer
security = share // 一定要改哦

[guoing]
path = /opt/guoing
writeable = yes
browseable = yes
guest ok = yes


配置解释:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[guoing] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
guest ok 匿名用户以guest身份是登录;

把文件的权限设置为:nobody
chown -R nobody:nobody /opt/guoing

启动samba
service smb start
或者:smbd nmbd

测试:
能访问目录,却无法看到里面的文件。
文件权限不对?改为 777 试下,反正是测试。一会再改回来。
结果还是无法看到文件。

再把samba配置文件看了N遍。实在是找不出什么问题。但我还是做了一些测试工作。

将 writeable = yes 换成 read only = no
修改本地network
/etc/sysconfig/network

问题依旧。

总之弄来弄去,一定是权限的问题。
有人说nobody 跟系统有关,有些系统的nobody用户不在nobody组。
#id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)context=root:system_r:unconfined_t:s0-s0:c0.c1023

查看LOG:tail /var/log/samba/smbd.log
看到如下日志:
context=root:system_r:unconfined_t:s0-s0:c0.c1023 ?

难道是selinux没有关闭? 我记得装完系统后,我就关闭了。为此再检查一次。

引用:
#cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
#SELINUX=enforcing
#SELINUX=permissive
SELINUX=Disabled --------------注意,改是改了,但多了一个字母"d" 罪魁祸首就是它了
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted


修改完成后。直接使用: setenforce 0 可以不重启计算机!使设置立即生效

介绍下SELINUX相关工具:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0

以下是运行输出,请参考
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing

告诫我做什么事都不能马虎,得认真,细心地做好每一件事!
文章评论

共有 1 条评论

  1. hsyihao 于 2008-01-19 11:26:54发表:

    学习了````