Featured image of post Samba

Samba

用户管理

添加 Linux 用户

添加一个不能登录且没有家目录属于私有组的用户

1
sudo useradd username -s /sbin/nologin -M

添加一个不能登录且没有家目录属于默认组的用户

1
sudo useradd username -s /sbin/nologin -M -N

添加 SMB 用户

1
2
3
4
sudo smbpasswd -a username
# Here are tips
New SMB password:
Retype new SMB password:

修改 SMB 用户密码

1
2
3
4
sudo smbpasswd username
# Here are tips
New SMB password:
Retype new SMB password:

禁用 SMB 用户

1
sudo smbpasswd -d username

启用 SMB 用户

1
sudo smbpasswd -e username

查询 SMB 用户

1
sudo pdbedit -L

删除 SMB 用户

1
sudo smbpasswd -x username

端口监听说明

137/udp 用于 NetBIOS 名称服务(NetBIOS Name Service)

138/udp 用于 NetBIOS 数据报服务(NetBIOS Datagram Service)(不推荐使用或放行)

139/tcp 用于 SMB 服务(NetBIOS Session Service)(不推荐使用或放行)

445/tcp 用于 SMB 服务(Microsoft-DS)

配置文件

作为 server 时支持 NT1(SMB1) 及以上协议

1
2
[global]
    server min protocol = NT1

作为 client 时仅接受 SMB3 及以上协议

1
2
[global]
    client min protocol = SMB3

测试 Samba 的设置

1
testparm

常用 SMB 共享配置模板

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[shared.name]
    comment = remote folder
    path = /mnt/shared
    #browseable = no
    #guest ok  = yes
    read only = no
    #writable = no
    valid users = username, @groupname
    #invalid users = username, @groupname
    #write list = username, @groupname

Linux 挂载

临时挂载

1
sudo mount -t cifs -o username=username,password=password //server/share /mnt/shared

如果密码包含逗号

1
PASSWD=12,34 sudo mount -t cifs -o username=username //server/share /mnt/shared

systemd 挂载

1
sudo vim /etc/systemd/system/mnt-shared.mount
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[Unit]
Description=Mount shared folder
After=network-online.target

[Mount]
What=//server/share
Where=/mnt/shared
Type=cifs
Options=username=username,password=password

[Install]
WantedBy=multi-user.target

如果密码包含逗号

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Unit]
Description=Mount shared folder
After=network-online.target

[Mount]
What=//server/share
Where=/mnt/shared
Type=cifs
Environment=PASSWD=12,34
Options=username=username

[Install]
WantedBy=multi-user.target

启动服务和设置开机启动

1
2
sudo systemctl start mnt-shared.mount
sudo systemctl enable mnt-shared.mount

常见问题

Windows 连接 samba 时输入正确的用户名和密码后,如果提示错误,多半是因为已经用另一个账号连接过了,需要断开连接。

打开 cmd,输入以下命令

1
net use * /del /y
Licensed under CC BY-NC-SA 4.0