Step 1:samba软件包的安装
$ sudo apt-get install samba
$ sudo apt-get install smbfs
Step 2: 创建共享目录
$ sudo mkdir /home/sherry(本机用户名)/share(共享文件夹) 创建共享目录
$ sudo chmod 777 /home/sherry/share 给共享目录设置权限
Step 3:编辑samba的配置文件,允许网络连接
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak 备份配置文件
$ sudo gedit /etc/samba/smb.conf 打开配置文件进行编辑
在[global]中,找到
workgroup = WORKGROUP
把WORKGROUP改成MSHOME(有的版本说不改,我改了,但还没弄明白到底改不改有什么区别,待解决)
并在后面添加如下信息
$ display charset = UTF-8
$ unix charset = UTF-8
$ dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936(不明白)
找到 security = user 在后面添加(若此语句前有#则去掉,在smb.conf文件中“#”和“;”都是注释)
username map = /etc/samba/smbusers
在文件最后,添加下面的内容,其中share为共享文件夹名,
[Share]
comment = Shared Folder with username and password
path = /home/sherry/share Linux系统真实的共享目录,必须为绝对路径
public = yes 是否允许所有人都能够看到此目录
writable = yes 写权限
valid users = sherry
create mask = 0700 如果有可写权限,建立的文件默认的权限掩码
directory mask = 0700 如果有可写权限,建立的目录默认的权限掩码
force user = nobody
force group = nogroup
available = yes
browseable = yes 读权限
step 4:添加网络访问账户newsfan,该用户和普通用户的区别在于它只能用于samba的远程访问,不能用于登录系统
现在要添加newsfan这个网络访问帐户。如果系统中当前没有这个帐户,那么
$ sudo useradd newsfan
要注意,上面只是增加了newsfan这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。
$ sudo smbpasswd -a newsfan 新增网络使用者的帐户
$ sudo cat > /etc/samba/smbusers.conf 打开新建立的配置文件
在新建立的文件内加入下面这一行并保存
$ newsfan = "network username"
如果将来需要更改newsfan的网络访问密码,也用这个命令更改
$ sudo smbpasswd -a newsfan
删除网络使用者的帐号的命令把上面的 -a 改成 -x
step 5:验证配置文件的正确性
$ sudo testparm 这句是验证配置文件是否正确
本来到这里验证不管安装正确与否都会给个反馈的结果,没想到前面顺风顺水,到这里摔了个大跟头,输入语句之后显示sudo: testparm: command not found。找了好久终于找到眉目,貌似又是少安装了个东西。于是按照网上解决办法输入语句进行安装
$ sudo apt-get install samba-common-bin
也有的会显示 执行子进程“testparm”失败(没有该文件或目录)。
于是终于完成。再次验证出现成功提示
sherry@ubuntu:~$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
下面显示出Ubuntu与俺的小紫成功连接
sherry@ubuntu:~$ sudo smbclient -L //localhost/share
[sudo] password for sherry:
Enter root's password:
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
share Disk Shared Folder with username and password
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Server Comment
--------- -------
SHARA-PC
UBUNTU ubuntu server (Samba, Ubuntu)
Workgroup Master
--------- -------
MSHOME SHARA-PC
启动Samba服务器后,可以使用ps命令查看进程:
$ sudo ps -aux
可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。
哇咔咔~不容易啊,在完全不懂LINUX的情况下成功安装samba!胜利!
另保存几个相关语句:
启动samba服务 sudo /etc/init.d/samba start
关闭samba服务 sudo /etc/init.d/samba stop
重启samba服务 sudo /etc/init.d/samba restart
另:貌似新版本10.04安装有所不同,以下是网上拷来的
ubuntu10.4中用老方法行不通,好像资源中新出了samba4,因此用命令:$sudo apt-get install samba会提示你安装samba4。
新方法是从应用程序-->ubuntu软件中心。搜索samba,选择名字叫samba的安装。
完成后执行命令:
$sudo apt-get install smbfs
$sudo apt-get install smbclient