sudo apt-get install samba smbfs smbclient
ubuntu 14.04 使用以下方式安装:
若之前有安装过相关软件包,先卸载之:
sudo apt-get autoremove samba samba-common
sudo apt-get autoremove system-config-samba
按如下方式安装软件包
sudo apt-get install samba samba-common
sudo apt-get install system-config-samba cifs-utils
配置相关参数
sudo gedit /etc/samba/smb.conf
文件中相关属性如下
1.全局设置部分
security = user
这行设置了samba的安全等级,Samba一共可以设置四个安全登记,由底到高分别为:
share 这个选项表示任何人都可以不需要输入密码登录。
user 这个是Samba的默认级别,要求每个用户必须输入密码才能登录。
server user级别的密码都是保存在本机上,而server级别的密码和用户名都保存在另一台主机上。
domain 这个级别要求网络里必须有一台Windows的域控制器,验证工作由域控制器来完成。
需要注意,只要输入用户名和密码的级别,其用户名一定首先也是Linux系统内的用户
workgroup = MSHOME
这部分是Windows主机的工作组明,Windows主机必须在同一个工作组中
server string = %h server(Samba,Ubuntu)
这个选项是显示在Windows上的信息,可以自定义,其中%h为Samba配置文件中的变量,代表了主机名,即使用hostname命令得到的主机名
map to guest = bad user
当 security = user 时,这个选项必须注释掉,如:# map to guest = bad user
2.共享设置部分
添加一个共享文件夹设置如下
[share]
共享文件名,不需要与实际文件名一致
comment = my share directory
对这个共享分支的描述
path = /share
系统的共享目录,必须为绝对路径
public = yes
是否允许所有人都能够看到此目录,no为看不到
writable = yes
是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有写权限
read only = yes
设置用户是否只读
vaild users = username
设置只有 username 用户有效
SAMBA 用户管理
在需要密码登录时有效,在设置用户密码时,此用户必须是linux系统的用户,如下面的指令 user 必须先是系统的用户
sudo smbpasswd -a user
接下来根据提示输入两次密码即可
smbpasswd 指令相关参数如下:
-a 新添加一个Samba用户。
-d 禁用一个Samba用户。
-e 使禁用的Samba用户解禁。
启动 SAMBA 服务
# 停止 SAMBA 服务
sudo /etc/init.d/smbd stop
# 启动 SAMBA 服务
sudo /etc/init.d/smbd start
# 重新启动
sudo /etc/init.d/smbd restart
在 WINDOWS 下访问共享目录
# 在资源管理器,或浏览器中直接输入即可, “192.168.1.10” 为服务器 IP
\\192.168.1.10
注意:有时会出现无法访问的情况:
无法访问。您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。
指定的网络名不再可用
通过 Samba的log, /var/log/samba/log.{计算机名} - 计算机名是你的windows主机名称
可以看到,访问出错时会产生大量的 err log
1. [2016/09/22 23:26:18.333436, 0] ../source3/lib/util.c:809(smb_panic_s3)
64 smb_panic(): action returned status 0
65 [2016/09/22 23:26:18.333568, 0] ../source3/lib/dumpcore.c:318(dump_core)
66 dumping core in /var/log/samba/cores/smbd
67 Please install an MTA on this system if you want to use sendmail!
68 [2016/09/22 23:26:21.085401, 0] ../source3/lib/popt_common.c: 68(popt_s3_talloc_log_fn)
69 talloc: access after free error - first free may be at ../source3/smbd/ open.c:3715
70 [2016/09/22 23:26:21.085457, 0] ../source3/lib/popt_common.c: 68(popt_s3_talloc_log_fn)
71 Bad talloc magic value - access after free
72 [2016/09/22 23:26:21.085474, 0] ../source3/lib/util.c:789(smb_panic_s3)
73 PANIC (pid 2450): Bad talloc magic value - access after free
原因是talloc的版本不匹配导致的!安装 libtalloc解决,apt-get install libtalloc2
ubuntu 12.04 安装samba
sudo su 进入root用户:
第一步:安装samba服务器
Samba服务在Ubuntu12.04版本中中默认安装,对于其他没有默认安装的版本来说,可以通过一
下命令来安装所需要的软件:
1:sudo apt-get install samba
2: sudo apt-get install smbclient
第二步:配置samba服务器
(1) 安装后默认的samba命令在/etc/init.d中:
1:启动Samba服务器:#sudo /etc/init.d/samba4 start
2:关闭Samba服务器:#sudo /etc/init.d/samba4 stop
3:重启Samba服务器:#sudo /etc/init.d/samba4 restart
可以使用ps命令查看samba服务器创建的进程:#ps |grep smb*。可以查看到samba新建的
进程。
(2)创建共享目录:
mkdir /home/share
(3)更改目录权限:
chmod 777 /home/share
(4) 配置Samba服务
/etc/samba/smb.conf是Samba服务器的配置文件,我们设置共享目录均是在这个文件中进
行配置。
在Windows系统中不用输入密码访问Linux共享目录:在Linux共享一个目录,将建立好的目录
的设置信息写入/etc/smb.conf文件即可。
修改samba配置文件smb.conf:
#security=user 修改为:security=share
在文件最后添加如下:
[share]
comment=share
path=/home/share
public=yes
writeable=yes
browseable = yes
保存退出。
(5)重启Samba服务器:/etc/init.d/smbd restart
在windows命令行中输入\\192.168.1.141(虚拟机ip)
ubuntu 14.04 使用以下方式安装:
若之前有安装过相关软件包,先卸载之:
sudo apt-get autoremove samba samba-common
sudo apt-get autoremove system-config-samba
按如下方式安装软件包
sudo apt-get install samba samba-common
sudo apt-get install system-config-samba cifs-utils
配置相关参数
sudo gedit /etc/samba/smb.conf
文件中相关属性如下
1.全局设置部分
security = user
这行设置了samba的安全等级,Samba一共可以设置四个安全登记,由底到高分别为:
share 这个选项表示任何人都可以不需要输入密码登录。
user 这个是Samba的默认级别,要求每个用户必须输入密码才能登录。
server user级别的密码都是保存在本机上,而server级别的密码和用户名都保存在另一台主机上。
domain 这个级别要求网络里必须有一台Windows的域控制器,验证工作由域控制器来完成。
需要注意,只要输入用户名和密码的级别,其用户名一定首先也是Linux系统内的用户
workgroup = MSHOME
这部分是Windows主机的工作组明,Windows主机必须在同一个工作组中
server string = %h server(Samba,Ubuntu)
这个选项是显示在Windows上的信息,可以自定义,其中%h为Samba配置文件中的变量,代表了主机名,即使用hostname命令得到的主机名
map to guest = bad user
当 security = user 时,这个选项必须注释掉,如:# map to guest = bad user
2.共享设置部分
添加一个共享文件夹设置如下
[share]
共享文件名,不需要与实际文件名一致
comment = my share directory
对这个共享分支的描述
path = /share
系统的共享目录,必须为绝对路径
public = yes
是否允许所有人都能够看到此目录,no为看不到
writable = yes
是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有写权限
read only = yes
设置用户是否只读
vaild users = username
设置只有 username 用户有效
SAMBA 用户管理
在需要密码登录时有效,在设置用户密码时,此用户必须是linux系统的用户,如下面的指令 user 必须先是系统的用户
sudo smbpasswd -a user
接下来根据提示输入两次密码即可
smbpasswd 指令相关参数如下:
-a 新添加一个Samba用户。
-d 禁用一个Samba用户。
-e 使禁用的Samba用户解禁。
启动 SAMBA 服务
# 停止 SAMBA 服务
sudo /etc/init.d/smbd stop
# 启动 SAMBA 服务
sudo /etc/init.d/smbd start
# 重新启动
sudo /etc/init.d/smbd restart
在 WINDOWS 下访问共享目录
# 在资源管理器,或浏览器中直接输入即可, “192.168.1.10” 为服务器 IP
\\192.168.1.10
注意:有时会出现无法访问的情况:
无法访问。您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。
指定的网络名不再可用
通过 Samba的log, /var/log/samba/log.{计算机名} - 计算机名是你的windows主机名称
可以看到,访问出错时会产生大量的 err log
1. [2016/09/22 23:26:18.333436, 0] ../source3/lib/util.c:809(smb_panic_s3)
64 smb_panic(): action returned status 0
65 [2016/09/22 23:26:18.333568, 0] ../source3/lib/dumpcore.c:318(dump_core)
66 dumping core in /var/log/samba/cores/smbd
67 Please install an MTA on this system if you want to use sendmail!
68 [2016/09/22 23:26:21.085401, 0] ../source3/lib/popt_common.c: 68(popt_s3_talloc_log_fn)
69 talloc: access after free error - first free may be at ../source3/smbd/ open.c:3715
70 [2016/09/22 23:26:21.085457, 0] ../source3/lib/popt_common.c: 68(popt_s3_talloc_log_fn)
71 Bad talloc magic value - access after free
72 [2016/09/22 23:26:21.085474, 0] ../source3/lib/util.c:789(smb_panic_s3)
73 PANIC (pid 2450): Bad talloc magic value - access after free
原因是talloc的版本不匹配导致的!安装 libtalloc解决,apt-get install libtalloc2
ubuntu 12.04 安装samba
sudo su 进入root用户:
第一步:安装samba服务器
Samba服务在Ubuntu12.04版本中中默认安装,对于其他没有默认安装的版本来说,可以通过一
下命令来安装所需要的软件:
1:sudo apt-get install samba
2: sudo apt-get install smbclient
第二步:配置samba服务器
(1) 安装后默认的samba命令在/etc/init.d中:
1:启动Samba服务器:#sudo /etc/init.d/samba4 start
2:关闭Samba服务器:#sudo /etc/init.d/samba4 stop
3:重启Samba服务器:#sudo /etc/init.d/samba4 restart
可以使用ps命令查看samba服务器创建的进程:#ps |grep smb*。可以查看到samba新建的
进程。
(2)创建共享目录:
mkdir /home/share
(3)更改目录权限:
chmod 777 /home/share
(4) 配置Samba服务
/etc/samba/smb.conf是Samba服务器的配置文件,我们设置共享目录均是在这个文件中进
行配置。
在Windows系统中不用输入密码访问Linux共享目录:在Linux共享一个目录,将建立好的目录
的设置信息写入/etc/smb.conf文件即可。
修改samba配置文件smb.conf:
#security=user 修改为:security=share
在文件最后添加如下:
[share]
comment=share
path=/home/share
public=yes
writeable=yes
browseable = yes
保存退出。
(5)重启Samba服务器:/etc/init.d/smbd restart
在windows命令行中输入\\192.168.1.141(虚拟机ip)