在linux配置samba服务器供电视使用

  • 安装

nix-env -iA nixpkgs.samba

smbd --version
Version 4.13.7
  • 创建一个配置文件

touch /vagrant_data/smb.conf

# 原文
[global]
#与主机名相关的设置
workgroup = leng samba server
netbios name = leng samba server
serverstring = this is a test samba server
# 与密码相关的设置
passdb backend = tdbsam

# 指定网卡
interfaces = 192.168.1.101/24
# 设则全部文件夹匿名访问
map to guest = Bad User

[vagrant]
comment = vagrant user
path = /tmp
writable = yes
browseable = yes
guest ok = yes
[leng]
comment = leng user
path = /home/vagrant
writable = yes
browseable = yes
guest ok = yes
# nixpkgs.samba
# 运行
# sudo smbd -l /tmp -s /vagrant_data/smb.conf -d 10
# 查看状态
# ps aux|grep smb
# 生成密码, 注意 需增加相应的系统账号vagrant,vagrant就可一进入[vagrant]和[leng]对应的配置path目录了
# sudo pdbedit -a vagrant -s /vagrant_data/smb.conf
# Abc123456
# \\192.168.33.10\vagrant
# \\192.168.33.10\leng

# 如果遇到文件夹权限问题
sudo chmod 777 /var/lib/samba/private/
# 删除文件夹,启动的时候会自动创建
sudo rm -rf /var/lib/samba/private/msg.sock
# 启动
sudo smbd -s ~/smb.conf -l /tmp/ -d 10
# sudo chmod -R 0700 /var/lib/samba/private/msg.sock
  • 运行起来

# -d 10 是日志等级.日志配置到/tmp目录: cat /tmp/log.smbd
sudo smbd -l /tmp -s /vagrant_data/smb.conf -d 10
  • 对当前系统用户设置访问密码

# 当前我的用户是 vagrant
sudo pdbedit -a vagrant -s /vagrant_data/smb.conf
# 输入密码, 包含大小写, 如: Abc123456
  • 访问

# windos在资源管理器输入访问地址,然后输入用户名密码即可
# \\[IP]\[name]
# 如:
\\192.168.33.10\vagrant
\\192.168.33.10\leng
  • 另一个完整例子

[global]
	netbios name = GL-AR300M
	display charset = UTF-8
	interfaces = lo pppoe-wan br-lan
	server string = GL-AR300M-055
	unix charset = UTF-8
	workgroup = WORKGROUP
	browseable = yes
	deadtime = 30
	domain master = yes
	encrypt passwords = true
	enable core files = no
	guest account = nobody
	guest ok = yes
	invalid users = root
	local master = yes
	load printers = no
	map to guest = Bad User
	max protocol = SMB2
	min receivefile size = 16384
	null passwords = yes
	obey pam restrictions = yes
	os level = 20
	passdb backend = smbpasswd
	preferred master = yes
	printable = no
	security = share
	smb encrypt = disabled
	smb passwd file = /etc/samba/smbpasswd
	socket options = TCP_NODELAY IPTOS_LOWDELAY
	syslog = 2
	use sendfile = yes
	writeable = yes

[homes]
	comment     = Home Directories
	browsable   = no
	read only   = no
	create mode = 0750

[GL-Samba]
	path = /mnt/sda1
	read only = no
	guest ok = yes
  • docker,dperson/samba

# 警告!!! 映射到实体机的目录需要注意,权限和权限归属会发生变化,导致不可写,推荐只用单独的文件夹进行-v映射
drwxrwxr-x 100    101   3.1 KB Sun Aug 14 00:09:12 2022  下载
# 映射到容器mount目录; 访问地址是/public/文件夹下
docker run -it --name samba -p 139:139 -p 445:445 \
  -v /home/jcleng/download:/mount \
  -d dperson/samba -p \
  -s "public;/mount"

# 访问
smb://192.168.1.214/public/
  • linux 手动挂载

# 安装软件
cifs-utils
# 手动挂载,username是windows的用户名
mkdir ~/work
sudo mount -t cifs //192.168.33.1/work ~/work -o username=administrator,uid=$UID,file_mode=0777,dir_mode=0777