Contents
  1. 1. 分用IP和hostname
  2. 2. 使用虚拟网口
  3. 3. 其它

  Windows有一个很奇怪的设定:对一个文件共享服务器只能使用同一用户名,但是我们知道Samba是允许在同一服务器上创建分属于不同用户的共享目录的,这是一个自然而然的需求,Linux本来就是一个多用户操作系统,同为多用户系统的Windows的这种设定就显得非常奇怪,据微软官方的解释是为了安全,然而我并没有看出来这属于哪门子的安全。

  吐槽归吐槽,然而从XP到Win8也没有改变,现在我在Linux服务器上分别设置了两个共享目录,一个公用一个私用,然而当我接入其中的一个目录之后,连接下一个目录进系统自动使用之前的用户/密码,导致权限出现问题……

  我们只能workaround。

分用IP和hostname

  这种方式是网友提供的,即其中一个目录使用ip,而另一个目录使用hostname,Windows并不会认为它们为同一个服务器(bug?),因为这样能最多支持到两个用户名。

如果再加上IPv6,就能支持到3个了,因为似乎并不支持直接使用IPv6,需要设置hostname,所以是3个。

使用虚拟网口

  如果是建立在Linux上的Samba,那么可以使用virtual interface,即给同个网卡配置多个IP,这种做法最典型的应用是在同一服务器上运行多个Apache提供80服务,现在我们也可以把它用到samba上,具体的做法:

1
2
# dhcp
sudo dhclient eth3:0

  这样就会多出一个接口eth0:0

1
2
3
4
eth3:0 Link encap:以太网 硬件地址 b8:2a:72:d1:a1:c0
inet 地址:10.103.25.141 广播:10.103.27.255 掩码:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
中断:36

  如果是静态IP,那么需要配置相应的配置文件,比如/etc/network/interfaces,加入

1
2
3
4
auto eth0:0
iface eth0:0 inet static
address 192.168.200.130
……

  这样服务器就具有了多个不同ip,Windows连接多个共享目录使用不同的IP即可。

其它

  最后需要注意的一点是:最好不要使你的共享目录用户名密码与Windows系统的用户名密码相同,否则系统会自动使用系统用户名去连接。如果该目录不属于系统同名用户,但又是browsable的话,那么就没有让你更改用户的机会了。

Contents
  1. 1. 分用IP和hostname
  2. 2. 使用虚拟网口
  3. 3. 其它