在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 -itd --name samba -p 139:139 -p 445:445 \
-e USERID=$(id -u)\
-e GROUPID=$(id -g) \
-v /home/jcleng/work/fang-keng:/mount \
-d registry.cn-hangzhou.aliyuncs.com/jcleng/dperson-samba -p \
-s "public;/mount;no;no;yes"
# 访问
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
linux挂载Windows共享目录;配合gitbash+docker_host实现本地执行远程docker
# windows操作
找到共享的目录, 右键共享
获取到共享的地址是: \\SK-20231229AOAP\work
# 服务器操作
apt installl cifs-utils
# 地址使用wsl的相同地址
mkdir -p /mnt/d/work/
# 使用win的ip
mount -t cifs //192.168.195.22/work /mnt/d/work/ -o username=administrator,password=123456,vers=3.0
# 开机挂载
## 创建凭据文件
vim /etc/smbcredentials
username=administrator
password=123456
## 写到fstab
vim /etc/fstab
//192.168.195.22/work /mnt/d/work/ cifs credentials=/etc/smbcredentials,vers=3.0 0 0
# windows安装docker和docker-compose客户端
https://github.com/docker/cli/actions
https://github.com/StefanScherer/docker-cli-builder/releases/tag/20.10.9
https://github.com/docker/compose/releases/tag/v2.28.1
# 当使用远程控制的时候volumes只能写绝对路径, 否则磁盘映射会错误, 或者使用wsl来运行远程控制