九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

【转载】linux下的samba安装及配置

以前配置samba一直是我的噩梦,甚至一度放弃samba,直接使用ssh+winscp来管理文件,今天找到一篇好文,顺利配置成功,感谢原作者。

在Ubuntu中设置samba共享可读写文件夹 收藏
首先当然是要安装samba了,呵呵: 代码:
sudo apt-get install samba sudo apt-get install smbfs
下面我们来共享群组可读写文件夹,假设你要共享的文件夹为: /home/ray/share 首先创建这个文件夹 代码:
mkdir /home/ray/share chmod 777 /home/ray/share
备份并编辑smb.conf允许网络用户访问 代码:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup sudo gedit /etc/samba/smb.conf
搜寻这一行文字 代码:
; security = user
用下面这几行取代 代码:
security = user username map = /etc/samba/smbusers
将下列几行新增到文件的最后面,假设允许访问的用户为:newsfan。而文件夹的共享名为 Share 代码:
[Share] comment = Shared Folder with username and password path = /home/ray/share public = yes writable = yes valid users = newsfan create mask = 0700 directory mask = 0700 force user = nobody force group = nogroup available = yes browseable = yes
然后顺便把这里改一下,找到[global]把 workgroup = MSHOME 改成 代码:
workgroup = WORKGROUP display charset = UTF-8 unix charset = UTF-8 dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936。自己看着办吧。 现在要添加newsfan这个网络访问帐户。如果系统中当前没有这个帐户,那么 代码:
sudo useradd newsfan
要注意,上面只是增加了newsfan这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。 现在要新增网络使用者的帐号: 代码:
sudo smbpasswd -a newsfan sudo gedit /etc/samba/smbusers
在新建立的文件内加入下面这一行并保存 代码:
newsfan = "network username"
如果将来需要更改newsfan的网络访问密码,也用这个命令更改 代码:
sudo smbpasswd -a newsfan
删除网络使用者的帐号的命令把上面的 -a 改成 -x 代码:
sudo testparm sudo /etc/init.d/samba restart
最后退出重新登录或者重新启动一下机器。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joliny/archive/2008/07/13/2646420.aspx

 

另外还有两篇备用的:

第一篇:

root根用户进行操作,如果您不是,请在每条命令前加上sudo

步骤1:安装samba
#apt-get install samba
#apt-get install smbfs

步骤2:添加linux用户
#useradd user1
     //添加用户名user1
#passwd user1 //
给用户名user1添加密码
#mkdir /home/user1 //
建立user1home目录,如果不用这个用户名来登陆linux,此步骤不是必需
#chown -R user1:user1 /home/user1
   //user1home目录设置好权限

步骤3:给samba服务器添加用户
说明:登陆samba的用户必须已经是linux中的用户
#smbpasswd -a user1 //
添加并给user1设置samba密码

步骤4smb.conf设置
#cd /etc/samb //
进入设置目录
#mv smb.conf
 smb.conf.bak //做好备份,直接将系统默认配置文件改名
#vim smb.conf //
建立和配置smb.conf文件

[global]
workgroup=x1 //X1为你局域网中的工作组名
server string=x2 //x2
为你linux主机描述性文字,比如:samba server
security=user //samba
的安全等级,user代表需要输入用户名和密码,改成share则不需要输入用户名和密码

[x3] //方框号中的x3这个名字可以随便取,只是在win的网上邻居中显示的共享文件夹名
path=/home/x4 //x4
为你要共享的文件夹名,在共享前还要建立这个文件夹,并设好权限以便访问,下面会说明。
valid users=user1 //
这个x4共享目录只允许user1这个用户进入
public=no
     //no表示除了user1这个用户,其它用户在进入samba服务器后看不见x4这个目录,如果为yes,虽然能看见x4这个目录,但除了user1这个用户能进入这个目录,其它人进不了。
writable=yes
   //允许user1x4目录中进行读和写操作,反之no

//存盘退出
#testparm //
检查一下语法错误,比如拼错

步骤5:建立共享目录
#mkdir /home/x4
#chown -R user1:user1 /home/x4 //
因为是root建立的目录,其它用户只有读的权限,所还得把权限改一下。当然也可以简单的用#chmod 777 /home/x4。还有个问题就是共享里目录的文件如果有些能访问有些不能访问,那肯定也是权限的问题,进入/home/x4,直接#chmod 777 *来解决。

步骤6:重启samba服务
#/etc/init.d/samba restart

设置samba服务要注意以下两点(即两个两次):
1.
添加两次用户:一次添加系统用户#useradd user1;再一次是添加samba用户#smbpasswd -a user1;
2.
设置两次权限:一次是在smb.conf中设置共享文件夹的权限:再一次是在系统中设置共享文件夹的权限#chmod 777 文件夹名。

 

按照楼主的做法设置, WINDOWS登陆到samba的时候报错, 显示如//10.x.x.x 无法访问, 你可能没有权限使用网络资源.... 这样的错误. 请问这是怎么回师?

如果设置passdb backend = tdbsam 则可以访问

 

passdb backend = tdbsam
tdbsam的时候,密码文件是放在 /var/lib/samba/passdb.tdb

而没有这句,当然也就找不到SMB用户和密码,即提示没用权限了。

 

第二篇:

#rpm -q samba     //查看SAMBA是否安装,如未安装,则执行下列安装

#rpm -ivh  samba-3.0.25b-0.4E.6.i386.rpm

#vi /etc/services    //查看以netbios开头的是否可用,必须要全部可用

 

 

  //linux防火墙要关闭

#ls /etc/samba //无smbpasswd文件

#smbpasswd -a tom //创建tom用户

#ls /var/log/samba //smb服务器的日志文件

#vi /etc/samba/smb.conf //编辑smb服务器的主配置文件

 

  Workgroup = WORKGROUP //windows工作组名

  server string = samba server //samba服务器简要说明

  hosts allow = 192.168.1. 192.168.0. 127. //设置允许访问的子网,默认都允许,可不设置

  hosts allwo = client1,alarm.com,192.168.16. EXCEPT 192.168.16.4 //举例说明

  security = user //设置安全级,默认为user。五个级别分别为"share,user,server,domain,ads"

  interfaces = eth0 //多网卡SAMBA服务器设置监听的网卡

  interfaces = 192.168.16.177/24 //举例说明

  wins support = yes //设置将samba服务器作为wins服务器,默认不使用

 

  //wins服务器由微软开发,功能是将NetBIOS名称转换为对应的ip地址

  username map = /etc/samba/smbusers //去掉前面的;号,用于用户映射

  然后编辑文件/etc/samba/smbusers,将需要映射的用户添加进去,格式为

  单独的linux用户 = 要映射的windows用户列表

  例: test = alarm back //test用户对应windows下的alarm和back两个用户

  encrypt password = yes 或 no //yes表示采用加密方式发送密码,no为不采用

  若此项为no,则windows系统必须响应的修改注册表项,注册表文件存放在/usr/share/doc/samba-2.2.7a/docs/Registry下

 

  [homes] //设置共享目录

  comment = Home Directories //简要说明

  browseable = no //是否允许用户浏览所有人的主目录

  writable = yes //是否允许用户写入自己的主目录

 

  [share] //设置一个共享目录

  comment = Samba's share Directory //简要说明

  read list = test //只读用户或组

  write list = @share //可写用户或组

  path = /home/share //共享文件夹目录路径

 

  //设置共享目录后需要做以下操作

  1.root登录,使用命令groupadd share 建立share组,并用usermod -g share abc命令将abc用户添加到share组

  2.mkdir /home/share在/home下建立目录share

  3.chown :share /home/share设置share目录所属组为share组,chmod 777 /home/share 设置share组对该目录有最大权限

  :wq //保存退出

 

 

  #testparm //测试smb.conf文件是否有语法错误

  #su - //切换root用户

  #service smb start restart stop //启动 重启 停止samba服务器

  #ntsysv //设置samba服务器开机启动

分类:  Linux 
标签:  Linux  Samba 

Posted By 九天雁翎 at 九天雁翎的博客 on 2009年08月15日

前一篇: 【转载】jdk-6-doc安装失败的解决办法 后一篇: 【转载】ubuntu搭建ssh服务器