刚开始学习samba,感谢原作者。
在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
最后退出重新登录或者重新启动一下机器。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/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 // 建立 user1 的 home 目录,如果不用这个用户名来登陆 linux ,此步骤不是必需
#chown -R user1:user1 /home/user1 // 给 user1 的 home 目录设置好权限
步骤 3 :给 samba 服务器添加用户
说明:登陆 samba 的用户必须已经是 linux 中的用户
#smbpasswd -a user1 // 添加并给 user1 设置 samba 密码
步骤 4 : smb.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 // 允许 user1 在 x4 目录中进行读和写操作,反之 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服务器开机启动