设置Samba的Usershare

csslayer | 2011/05/27

其实是今天 @grissiom 兄在鸟嘀咕上问到我,其实我自己没有用过这个功能,于是现场设置了一下,最后虽然终于成功,其实还几经波折,于是打算写那么一下。

接下来的内容大部分和KDE没有直接关系,都是和samba配置相关的。Samba的配置罗里八嗦的非常麻烦,继承了Windows一贯乱七八糟的用户策略……

首先,Samba有自己的用户管理系统,和系统用户并不重合,实际上Samba要求你输入密码的时候,都是让你输入Samba的用户名和密码,和你现在的用户无关。

所以你的第一件事大概就是smbpasswd -a username添加个用户。

然后,你需要一个地方来放置相关的usershare文件,这个目录需要可以被你写入。

比如我选择的是/var/lib/samba/usershares,root执行以下命令。

# mkdir -p /var/lib/samba/usershares

chgrp users /var/lib/samba/usershares

chmod 1770 /var/lib/samba/usershares

由于我的用户是在users组下面,所以我创建了一个users组的目录。你可以根据你系统需要,建立一个新的组(groupadd),然后把用户加入到这个组内(gpasswd -a username group),也是可以的。

你还需要修改/etc/samba/smb.conf

在 [global] 下加入以下内容:

 usershare path = /var/lib/samba/usershares
 usershare allow guests = Yes
 usershare max shares = 10
 usershare owner only = False
第一条是你刚才的路径,第二条是说明如果你是否想让guest访问。第三条是你最多可以共享几个。第四条是设置共享的人是否一定是被共享目录的所有者。

关于Guest,需要注意的是,Samba默认的guest是unix的nobody,于是他很可能没有访问你的目录的权限哦。真想完成访客访问,你还需要一番设置……

到此Samba设置完成。

剩下的就是装上kdenetwork-filesharing(Archlinux包名),KDE 4.6之后支持。

如果你不确定是否设置成功,可以执行

$ net usershare list
查看。

Tags:

7 FEEDBACKS

  1. 嗯,这些到都设置了~ 问题是,在 KDE 里怎么设置?我在 Dolphin 里只找到一个入口:右键菜单->属性->“Share”标签。但是那里只有“Configure file sharing”,点了之后就要我的 root 密码,然后绕过 usershare 去改 smb.conf 了……

    再有,能不能麻烦你贴一下 kdenetwork-filesharing 都包含什么文件么?多谢~;)

  2. stecue

    直接用SWAT设置不是挺好?samba陷阱众多,俺感觉自己写smb.conf很容易搞错,头疼。

  3. @Grissiom KDE不用在系统设置里面玩,只要右键点击文件夹,然后就有共享选项了。 文件很少,就这两个。 kdenetwork-filesharing /usr/lib/kde4/sambausershareplugin.so kdenetwork-filesharing /usr/share/kde4/services/sambausershareplugin.desktop

    这里有一个截图,不过当时是被当成4.7新加入的了。 http://www.ikde.org/program/kde47-preview2/

  4. @csslayer 矮油,怪不得,我的 kdenetwork 里没有这两个文件……(我用的是 Slackware,用的是大包,没有小包)。我去看看是不是有什么编译选项没有打开……

    @stecue 嘿嘿,回头看看去,多谢~

  5. 看了就觉得……啊好麻烦……

  6. 嗯首先感谢这篇文…… 然后因为我用smb的时候被误导了,所以我觉得应该把这句话改改: “首先,Samba有自己的用户管理系统,和系统用户并不重合,实际上Samba要求你输入密码的时候,都是让你输入Samba的用户名和密码,和你现在的用户无关。” 实际上,samba的用户名必须是已经存在的Linux用户……并且,更确切的说,应该跟共享文件的人的用户名一致才能成功共享……

  7. vickycq

    不如直接配置 /etc/samba/smb.conf 来的简单明了。

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).