Ubuntu设置局域网Windows共享文件Samba

如何设置 ubuntu 10.04,使局域网中的windows xp系统电脑可以共享ubuntu机器的文件?现在有局域网中的两台机器:
一、Ubuntu +windows xp 双系统,Ubuntu 10.04(wubi安装)以自动挂载 windows下分区的形式运行电脑。
二、局域网中另外一台Windows xp或win 7系统电脑。
也就是说机器二需要共享机器一 Ubuntu系统下的文件(可能是双系统挂载windows系统下的文件)。我们可以安装Samba来实现这些文件或文件夹的共享。
Samba 安装
选择ubuntu系统下(或ubuntu挂载的windows 系统中)需要共享的文件夹,右键点击共享选项Share Options,如果没有安装Samba等共享服务网,会自动提示没有安装共享服务(sharing service is not installed),点击Install service安装samba,按照提示一步步进行安装就行了,如下图所示:

当然也可以用终端命令安装samba:sudo apt-get install samba

Samba配置文件smb.conf

Ubuntu 共享服务Samba安装完毕,勾选Share this folder和Guess Access(for people without a user account)选项设置共win局域网匿名用户访问该共享文件。这时会出现如下错误提示:
'net usershare' returned error 255: net usershare add: cannot share path /media/disk6/ShareFiles as we are restricted to only sharing directories we own.
Ask the administrator to add the line "usershare owner only = false"
to the [global] section of the smb.conf to allow this.

根据提示我们需要配置一下samba的配置文件:

sudo gedit /etc/samba/smb.conf

在配置文件中找到usershare allow guests = yes,在后面一行添加 usershare owner only = false,设置后退出或重启ubuntu账户之后,局域网中的windows 电脑即可访问该共享文件。

如果需要局域网用户可以写入或删除共享文件夹中的文件或目录,则还要勾选Allow others to create and delete files in this folder。勾选后点击Create Share后会出现如下提示:

Nautilus needs to add some permissions to your folder "ShareFiles" in order to share it。
The folder "ShareFiles" needs the following extra permissions for sharing to work:
- write permission by others
Do you want Nautilus to add these permissions to the folder automatically?http://farlee.info/


也就是该文件设置为允许局域网用户创建和删除共享文件夹中的文件的话,需要该目录有other用户的777创建删除权限。点击Add the permissions automatically 一般情况下可以自动修改权限并成功实现局域网匿名用户对共享文件的读写。

如果需要共享的文件是ubuntu当前用户没有权限执行权限修改操作的文件或目录,比如root属主的只读文件,或者ubuntu 双系统挂载windows分区下的文件。那么在点击Add the permissions automatically会出现错误提示:

You do not have permission to create a usershare, details:
permissions deny

比如我可以设置共享ubuntu 用户home目录下的文件的读写共享权限,但是在设置ubuntu 挂载windows分区下的文件时就遇到了这个问题。原因在于挂载分区的权限问题,即使是切换到root账户更改文件的创建和删除权限,虽然可以设置create and delete,但还是无法实现局域网用户对该挂载分区下的共享文件的创建和删除功能。

这时首先想到的没有正确配置Samba的配置文件,比如设置workgroup = WORKGROUP、security = user、comment = 、path = 、browseable = no、create mask = 0600、directory mask = 0700、read only = yes、guest ok = yes、http://farlee.info、share modes = no等等。但是为什么没有更改samba配置文件的默认选项时,Ubuntu系统下的非windows 挂载分区的文件可以在共享文件夹中创建和删除?

最后参考了关于挂载windows分区的权限的问题这篇文章的介绍,才明白原因不在于samba配置文件smba.conf,而在于设置了ubuntu开机自动挂载windows分区,因为自动挂载设置了umask = 002这个用户权限设置。修改挂载文件fstab,sudo gedit /etc/fstab

/dev/sda5 /media/disk5 vfat user,auto,umask=002,gid=1000,utf8 0 0

讲umask=002改为umask=000即可。
修改完成之后记得要重启ubuntu 系统,文件共享设置才能生效:sudo reboot

ubuntu 设置文件共享密码访问

编辑samba配置文件设置必须以用户方式访问共享文件:sudo vi /etc/samba/smb.conf,将; security = user改为:

security = user 
username map = /etc/samba/smbusers

同时设置共享文件路径,在最后加上(设置共享文件夹路径path,网络登录用户名valid users):

[ShareFiles] 
comment = Shared Folder require password   
path = /home/shareuser/share 
public = yes 
writable = yes 
valid users = shareuser
create mask = 0700 
directory mask = 0700 
force user = nobody 
force group = nogroup 
available = yes 
browseable = yes

添加该用户并设置samba密码:

sudo useradd shareuser      添加用户
sudo smbpasswd -a shareuser      设置访问共享文件密码/修改网络登录访问密码
sudo gedit /etc/samba/smbusers   加入 shareuser = "network username"
sudo smbpasswd -x shareuser      删除网络共享用户

设置完毕重启。

ubuntu 文件共享测试

设置完毕可以在自己的电脑上测试一下其他局域网电脑是否确实具有访问,和创建删除共享文件的权限。
打开文件浏览器,使用Ctrl+l切换出地址栏,在地址栏输入smb://192.168.1.xxx/sharefiles/,即可在自己电脑上测试是否可以在共享目录中写入文件。使用firefox浏览器输入smb://192.168.1.xxx/可测试是否可访问(browserable)。

你可能感兴趣的:(Linux)