设置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).

This site uses Akismet to reduce spam. Learn how your comment data is processed.