ubuntu samba 服务器设置
安装 SAMBA 组件
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
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 服务
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
- [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
sudo apt-get install smbfs
第二步:配置samba服务器
(1)创建共享目录:
mkdir /home/share
(2)更改目录权限:
chmod 777 /home/share
(3) 配置Samba服务
保存现有的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
/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
保存退出。
(4) 创建samba帐户
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a sam(此处的用户必须是你已经在本机创建的用户,否则无效)
然后会要求你输入samba帐户的密码
[如果没有第四步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]
/etc/init.d/smbd restart
在windows命令行中输入\\192.168.1.141(虚拟机ip)