samba适合内网文件共享。本教程适合ubuntu/Fedora系统。
1、查看是否已安装。
# rpm -q samba
package samba is not installed
2、使用yum查询软件包
#yum list samba (查询软件包,得到可安装的软件包: samba.i686)
3、使用yum安装 (一路选yes安装完成)
# yum install samba.i686
启动
service iptables stop
service smb start
service nmb start
smbd进程的作用是处理SMB请求包(139端口),负责验证和文件共享(重要)。nmdb(137 138端口)
systemctl
配置:
查询安装了哪些软件包。
#rpm -qa|grep samba
找配置文件,到common的软件包。
#rpm -q| samba-common-4.0.3.2 | grep smb.conf
找到了:/etc/samba/smb.conf
备份一下:
#cp samba.conf samba.conf.bak
【global】 全局
workgroup= 指定工作组或域
server string = 描述
security = 指定安全模式 (share 无权限验证,user 有服务器验证(默认))
hosts allow = 限定主机访问 (哪些主机可以访问,哪些用户)
使用ip网段 例如: 162.1.2.
log file = 指定日志文件存放位置
具体配置:
带 ; 分号开头的注释是有效配置,就是说把分号去掉,在做写修改就行了。
1、配置hosts
我的配置,允许10.5.82. 网段的
hosts allow = 10.5.82.
2、security 大家可以自定义配置
【home】段, 共享用户的宿主目录
comment = 描述
browseable = no (没有权限访问的目录,不可见)
writable = yes
3、需要先添加用户:
adduser sambatest
添加的samda用户必须是系统用户。
assdb backend = tdbsam passdb backend即用户后台。有三种后台:smbpasswd、tdbsam和ldapsam。
Sam即security account manager。
1. smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。
2. tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户账号。
pdbedit –c “[]” –u username:恢复该Samba用户账号。
3. ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”
通过windows来访问:
在运行中输入:\\linux地址
\\192.168.175.130
会弹出对话框,输入用户名和密码。
登录成功后如果不能访问:
#setsebool -P samba_enable_home_dirs on
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.12. 192.168.13. 10.5.82. 192.168. 10.5.
# logs split per machine
log file = /var/log/samba/log.%m
# max 50KB per log file, then rotate
max log size = 50
security = user
; passdb backend = tdbsam
; security = domain
; passdb backend = tdbsam
; realm = MY_REALM
; password server = <NT-Server-Name>
; security = user
; passdb backend = tdbsam
; domain master = yes
; domain logons = yes
# the login script name depends on the machine name
; logon script = %m.bat
# the login script name depends on the unix user used
; logon script = %u.bat
; logon path = \\%L\Profiles\%u
# disables profiles support by specifing an empty path
; logon path =
; add user script = /usr/sbin/useradd "%u" -n -g users
; add group script = /usr/sbin/groupadd "%g"
; add machine script = /usr/sbin/useradd -n -c "Workstation (%u)" -M -d /nohome -s /bin/false "%u"
; delete user script = /usr/sbin/userdel "%u"
; delete user from group script = /usr/sbin/userdel "%u" "%g"
; delete group script = /usr/sbin/groupdel "%g"
; local master = no
; os level = 33
; preferred master = yes
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
load printers = yes
cups options = raw
; printcap name = /etc/printcap
#obtain list of printers automatically on SystemV
; printcap name = lpstat
; printing = cups
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = yes
writable = yes
printable = yes
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = +staff
[myshare]
comment = gaotong's files
path = /home/share
public = yes
wirtable = yes
printable = no