Ubuntu Samba服务器配置


最近做开源软件方面的东西。有些时候一个包会涉及到好几个操作系统,其中就有windows和Linux,这两个OS之间传包不是很方便,不能用scp或者ssh上去操作,为方便起见,在自己的ubuntu上搭建了一个samba服务器,方便windows和linux间文件的共享。

1. 安装samba软件包

brandon@ubuntu:~$ sudo apt-get install samba
brandon@ubuntu:~$ sudo apt-get install smbfs

brandon@ubuntu:~$ smbd --version
Version 4.1.6-Ubuntu

若要通过图形界面安装,还可安装软件包:python-glade2, system-config-samba。python-glade2可用于在创建GUI中调用Python的库,system-config-samba,也是基于GUI的对samba的管理包。

 

2.创建要共享的目录,并修改权限

 

brandon@ubuntu:~$ mkdir -p shareWindows
brandon@ubuntu:~$ sudo chmod 777 shareWindows/

 

brandon@ubuntu:~$ ls -l | grep shareWindows
drwxrwxrwx  2 brandon brandon   4096  4月 20 20:19 shareWindows

3.对原来的samba配置文件备份,然后修改samba配置文件

 

brandon@ubuntu:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

 

brandon@ubuntu:~$ sudo gedit /etc/samba/smb.conf

 

由于smb.conf文件是只读的,所以最好别强行修改权限后用vim修改,直接用gedit,文本编辑方式好操作一些。

修改已下字段:

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = VMWARE
display charset = UTF-8
unix charset = UTF-8
 

[shareWindows]
comment = Ubuntu File Server Share
path = /home/brandon/shareWindows
available = yes
browseable = yes
guest ok = yes
read only = no
public = yes
writable = yes
create mask = 0755
directory mask = 0700
force user = nobody
force group = nogroup

 

brandon@ubuntu:~$ sudo chown nobody:nogroup /home/brandon/shareWindows/
brandon@ubuntu:~$ ls -l | grep shareWindows
drwxrwxrwx  2 nobody  nogroup   4096  4月 20 22:59 shareWindows

 

 

如果配置时想填写workstation name, 到windows机器上查询一下workstation name:

可以在cmd中输入命令:net config workstation

\

不加入同一个workgroup 也是可以的。force user = nobody force group = nogroup 和命令修改作用是一样的,选择其中一个就可。

然后重启一下samba服务:

 

brandon@ubuntu:~$ sudo service smbd restart

 

4.在windows机器上访问该文件夹

查询IP:

 

brandon@ubuntu:~$ ifconfig
然后在windows机器上可以通过ip来访问samba server上的shareWindows文件夹:这里要输入相应的ip地址

\

\\

可以看到建立的shareWindows文件夹了:

\\\

5.验证一下文件读写:

1)在linux机器上创建一个空文件夹, 在windows机器中查看

 

brandon@ubuntu:~$ cd shareWindows/
brandon@ubuntu:~/shareWindows$ touch new.txt
brandon@ubuntu:~/shareWindows$ ls -l
total 0
-rw-rw-r-- 1 brandon brandon 0  4月 20 23:37 new.txt
在windows机器中查看,其中时间不一样是因为两个系统的时间没有设置统一

 

\\

 

2).在windows机器中创建一个test.txt文件,并写入:This is a test file. 在ubuntu机器中查看

\\\\

在ubuntu机器上查看:

 

brandon@ubuntu:~/shareWindows$ ls -l
total 4
-rw-rw-r-- 1 brandon brandon  0  4月 20 23:37 new.txt
-rwxr--r-- 1 nobody  nogroup 22  4月 20 23:52 test.txt
brandon@ubuntu:~/shareWindows$ cat test.txt
This is a test file.
brandon@ubuntu:~/shareWindows$ 
6.还可以创建有管理权限的用户和组,并设置访问密码,这样从windows机器上访问时会提示输入密码。

 

 

brandon@ubuntu:~$ sudo addgroup smbgrp
Adding group `smbgrp' (GID 1001) ...
Done.
brandon@ubuntu:~$ ls -l | egrep ?Windows
drwxrwxr-x  2 brandon smbgrp    4096  4月 21 00:20 secureWindows
drwxrwxrwx  2 nobody  nogroup   4096  4月 20 23:47 shareWindows
brandon@ubuntu:~$ sudo chmod 0770 /home/brandon/secureWindows/
brandon@ubuntu:~$ ls -l | egrep ?Windows
drwxrwx---  2 brandon smbgrp    4096  4月 21 00:20 secureWindows
drwxrwxrwx  2 nobody  nogroup   4096  4月 20 23:47 shareWindows

 

brandon@ubuntu:~$ sudo adduser brandon smbgrp
Adding user `brandon' to group `smbgrp' ...
Adding user brandon to group smbgrp
Done.
brandon@ubuntu:~$ sudo smbpasswd -a brandon
New SMB password:
Retype new SMB password:
Added user brandon.
brandon@ubuntu:~$ 
修改/etc/samba/smb.conf文件,添加新的samba共享文件字段

[secureWindows]

comment = Ubuntu File Server Share
path = /home/brandon/secureWindows
available = yes
valid users = @smbgrp
browseable = yes
guest ok = no
writable = yes

重启samba服务

 

brandon@ubuntu:~$ sudo service smbd restart
smbd stop/waiting
smbd start/running, process 13656

 

这时通过windows机器放问该文件夹是会提示输入密码:

\\\

验证:

输入密码进去,创建一个新文件。

\\

在ubuntu机器上查看

 

brandon@ubuntu:~/secureWindows$ ls 
brandon@ubuntu:~/secureWindows$ ls
fileFromWin.txt
brandon@ubuntu:~/secureWindows$ cat fileFromWin.txt 
This is test at windows machine.
brandon@ubuntu:~/secureWindows$ 

 

相关内容