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