samba-doc-搭建和使用

安装

1
2
yum -y install samba
yum -y install samba-client

命令

1
2
3
4
5
6
7
8
9
10
11
# 查看安装状态
rpm -qa | grep -i samba

# 查看配置文件等
find / -name samba

# 删除samba
rpm -qa | grep -i samba

# 查找安装包
yum search samba

相关指令

启动

1
2
3
/etc/init.d/smb start
/etc/init.d/nmb restart
service smb start

停止

1
2
3
/etc/init.d/smb stop
/etc/init.d/nmb stop
service smb stop

重启

1
2
3
/etc/init.d/smb restart
/etc/init.d/nmb restart
service smb restart

状态查看

1
2
/etc/init.d/smb status
/etc/init.d/nmb status

pdbedit指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-L:列出目前在数据库当中的账号与UID等相关的信息。
-v:需要搭配-L来执行,可列出更多的讯息,包括家目录等数据。
-w:需要搭配-L来执行,使用旧版的smbpasswd格式来显示数据。
-a:新增一个可使用Samba的账号,后面的账号需要在/etc/passwd内存在者。
-r:修改一个账号的相关信息,需搭配很多特殊参数,请man pdbedit。
-x:删除一个可使用Samba的账号,可先用-L找到账号后再删除。
-m:后面接的是机器的代码,与domain model有关!

# 单纯的查看账户信息
pdbedit -L [-vw]

# 新增/修改/删除账号
pdbedit -a|-r|-x -u 账号

# 与PDC有关的机器码
pdbedit -a -m -u 机器账号
  • 使用参考
1
2
3
4
5
# 新增使用者smb1
pdbedit -a -u smb1

# 查看目前已存在的Samba账号
pdbedit -L

smbpasswd

修改密码

1
2
# 修改samba账户密码
smbpasswd 账户

smbclient

查看用户对于目录的信息

1
2
smbclient -L //127.0.0.1/smb1 # root用户需要输入密码
smbclient -L //127.0.0.1/smb1 -U smb1 # 需要输入密码

防火墙相关

防火墙端口开放

1
2
3
4
5
6
7
8
9
10
11
UDP 137
UDP 138
TCP 139
TCP 445

vi /etc/sysconfig/iptables #配置防火墙端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
/etc/rc.d/init.d/iptables restart #重启防火墙,使规则生效

防火墙的端口设置放到iptables文件前面,不要放到最后,不然有可能被前面的内容拒绝了。从而导致无法连接。

关闭SELinux

1
2
3
4
5
6
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭。
shutdown -r now重启系统。

参考

  • 1、/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
30
31
32
33
34
35
36
37
[global]

# 与主机名有关的设定信息
workgroup = vbirdhouse
netbios name = vbirdserver
server string = This is vbird's samba server

# 语言设置,不同LANG不同设置,这里系统是en_US.UTF-8
unix charset = utf8
display charset = utf8
dos charset = utf8

# 与登录文件有关的设定项目,注意变量(%m)
log file = /var/log/samba/log.%m
max log size=50

# 打印机的加载方式,不要加载
load printers = no

# 与密码有关的设定项目,use和使用TDB数据库格式
security = user
passdb backend = tdbsam

[home]
# 目录是每个用户的家目录/home/xxx
comment = Home Directories
browseable = no # 除了使用者自己外,不可被其他人浏览
writable = yes # 可以被写入
create mode = 0664 # 建立档案权限为664
directory mode = 0775 # 建立目录权限文775

[project]
comment = subuser's project
path = /home/project
browseable = yes # 可被其他人浏览到资源名称(非内容)
writeable = yes # 可以被写入
write list = @user # 写入者都是samba用户

2、project目录创建和设置

1
2
3
mkdir /home/project
chgrp users /home/project
chmod 0770 /home/project

3、系统用户创建

1
2
3
4
5
6
useradd -G users smb1
useradd -G users smb2
useradd -G users smb3
echo 1234 | passwd --stdin smb1
echo 1234 | passwd --stdin smb2
echo 1234 | passwd --stdin smb3

4、samba用户创建

1
2
3
pdbedit -a -u smb1
pdbedit -a -u smb2
pdbedit -a -u smb3

5、设置防火墙和SELinux
如果怎么设置都操作的权限问题,可以直接把防火墙关了,反正是内网。。

1
setenforce 0

6、重启

7、window连接

window连接

window连接

错误

需要samba2

  • 启用samba协议

在powershell输入

1
Get-SmbServerConfiguration | Select EnableSMB2Protocol</pre>
  • 开启samba功能

打开window功能选中samba的服务器,确定并重启

window启用samba

window启用samba

操作

不能同时连接多个

事实上,这个不是samba的限制。是Windows的限制。window命令行输入

1
net use * /del /y

参考

1
2
3
# window10连接samba很卡
http://extjs.org.cn/fatjames/archives/460
http://blog.chinaunix.net/uid-23069658-id-3142052.html