安装
yum -y install samba #安装samba服务端就可以
systemctl start smb #启动
systemctl enable smb #开机自启
查看samba服务进程
[root@localhost ~]# ps -ef | grep 'smb'
root 11273 1 0 09:06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 11275 11273 0 09:06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 11276 11273 0 09:06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 11277 11273 0 09:06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 11279 11273 0 09:06 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 11488 9445 0 15:09 pts/0 00:00:00 grep --color=auto smb
查看samba服务端口
[root@localhost ~]# netstat -anput | grep smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 11273/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 11273/smbd tcp 0 0 10.192.27.100:445 10.192.27.98:49396 ESTABLISHED 11279/smbd tcp6 0 0 :::139 :::* LISTEN 11273/smbd tcp6 0 0 :::445 :::* LISTEN 11273/smbd
修改samba配置文件
vim /etc/samba/smb.conf
[zdxt] comment = zdxt zzz path = /home/zdxt public = no admin users = zdxt valid users = zdxt create mask = 0777 directory mask = 0777 browseable = yes writable = yes force directory mode = 0777 force create mode = 0777 [zdzd] comment = zdzd zzz path = /home/zdzd public = no admin users = zdzd valid users = zdzd create mask = 0777 directory mask = 0777 browseable = yes writable = yes force directory mode = 0777 force create mode = 0777
添加samba用户
这里使用pdbedit (就不需要添先加系统用户:添加用户 useradd -M -s /sbin/nologin zdxt)
pdbedit -a zdxt
pdbedit -a zdzd
[root@localhost ~]# pdbedit -L
zdxt:1000:
zdzd:1001:
创建两个共享目录
[root@localhost ~]# mkdir -p /home/zdxt
[root@localhost ~]# mkdir -p /home/zdzd
关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config #disabled
重启服务
systemctl restart smb
访问
\IP共享目录名 账号密码
删除以前windows客户端的访问记录
1、如何清除Windows共享登录的用户名密码记录 在Windows XP系统下,每次用户以共享(samba)方式访问远程主机后,会在本地Windows系统中记录下访问登录时的用户名和密码(如果用户选择了记住用户名 和密码),下次用户访问该主机时,就无需再输入用户名和密码了。通常情况下,这样做能省去用户需要频繁输入用户名和密码的麻烦,但是,如果用户访问同一主机时,使用不同的帐号,一旦记录下密码,就无法再次更换用户了! 在Windows XP系统下,可以用如下dos命令,清除登录的账户信息: 【查看已记录的登录信息】 C:/net use 【清除记录】 C:/net use //hostname/IPC$ /delete 譬如:c:/>net use //192.168.0.1/IPC$ /DELETE 2、在WINDOWS XP中,互访的时候,有个用户登录和密码记录。那么,如何清除这个密码记录的方法? 点击“开始”菜单->运行->输入 “control userpasswords2”-弹出“用户帐户”对话框, 再切换到“高级”选项卡->点击"管理密码"->就可以看到网络设置记录的密码都保存在这个弹出来的"存储用户名和密码"的对话框里 最后选择想要删除的记录点“删除”->再注销/重启电脑就能生效了。 或者 点击“”Administrator-在左侧选择“管理我的网络密码” 在弹出对话框中,找到相关的网络地址,选中,删除即可。 |
常见错误
1、xp win2003电脑无法连接samba共享目录
从samba 4.5开始,ntlm auth参数默认值由“yes”变为“no”。导致默认情况下使用NTLM级别LAN Manager身份验证的客户端不允许登录Samba服务器,受影响的客户端包括Windows XP、Windows2003等。
[root@localhost ~]# smbd -V Version 4.9.1 [root@localhost ~]#
解决方法(任选一种都可解决):
1. Samba服务器端smb.conf配置文件中添加“ntlm auth = yes”后重启smb服务。
2. Windows XP客户端修改本地安全设置、安全选项、“网络安全:LAN Manager身份验证级别”的值为“仅发送 NTLMv2响应”。
2、(samba启动失败)smb.service: main process exited, code=exited, status=1/FAILURE
按照指示,前往:journalctl -xe 没什么发现,搜的时候有人说也可以查看 journalctl -r 打出来之后我也看不出什么门道来
又看到有人说 smb 方面可以看看 testparm 我打印了一下,结果报以下warning:
[root@192 samba]# [root@192 samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) WARNING: Ignoring invalid value 'share' for parameter 'security' Error loading services. [root@192 samba]#
这就好说了,我查看了一下自己SMB的配置文件:
cat /etc/samba/smb.conf
里面显示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
[root@192 samba] # cat smb.conf [global] workgroup = WORKGROUP server string = Ted Samba Server % v netbios name = TedSamba #security = user security = share map to guest = Bad User passdb backend = tdbsam [FileShare] comment = share some files path = /home/clj/share public = yes writeable = yes create mask = 0644 directory mask = 0755 [WebDev] comment = project development directory path = /home/wwwroot/default/ valid users = ted write list = ted write list = @www validusers = @www printable = no create mask = 0644 directory mask = 0755 |
就是里面的 [global] 下面的 security 那里出问题了,我把上面内容调换了一下:
1
2
|
security = user #security = share |
这再启动SMB服务器就OK了:
1
|
systemctl start smb |