manjaro安装samba

1.安装软件

sudo pacman -S samba nautilus-share manjaro-settings-samba

2.备份一下smb.conf文件

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

3.修改smb.conf文件

sudo vim /etc/samba/smb.conf

[global]
workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/%m.log
max log size = 1000
client min protocol = SMB2
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = NewUNIXpassword %n\n ReTypenewUNIX*password %n\n passwd:allauthenticationtokensupdated*successfully
pam password change = yes
map to guest = Bad Password
usershare allow guests = yes
name resolve order = lmhosts bcast host wins
security = user
guest account = nobody
usershare path = /var/lib/samba/usershare
usershare max shares = 100
usershare owner only = yes
force create mode = 0070
force directory mode = 0070

[homes] —-> 这一段要注释掉,否则会暴露家目录
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

[share] # 分享目录,可自定义名字
path = /home/unknown/samba_share # 分享实际目录
browseable = yes # 共享的目录是否让所有人可见
read only = no # 是否只读
create mask = 0700 # 客户端上传文件的默认权限
directory mask = 0700 # 客户端创建目录的默认权限
writable = yes # 是否可写
guest ok = yes #是否允许匿名(guest)访问,等同于public

将系统用户添加到samba用户,并设置密码

sudo smbpasswd -a unknown

查看所有的samba用户

sudo pdbedit -L

查看对应ip上的samba服务器,例如查看本机samba

sudo smbclient -L 127.0.0.1

创建共享目录

mkdir /home/unknown/samba_share
chmod 777 -R /home/unknown/samba_share

重启smb,nmb服务

sudo systemctl restart smb nmb

如果重启失败,则执行testparm检查sam.conf是否有语法错误

testparm

验证samba是否可以访问

smbclient //192.168.0.10/share

Windows系统上验证

\192.168.0.10

将共享目录挂载到本地(未验证)

mount -t cifs -o username=xxx //192.168.0.10/share /mnt/tmp

其他知识补充:(网上抄录,未验证)

目前samba有三种后台: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”客户端就用这个密码来访问Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。