搭建SMB(155MB)

#安装
apt install samba

#添加一个用户并设置密码,必须是Linux系统内已存在的用户,可以是root
#添加Linux用户 useradd 用户名
smbpasswd -a 用户名

#查看用户
pdbedit -w -L

#删除用户 username是用户名
sudo smbpasswd -x username
sudo pdbedit -x -u username

vi /etc/samba/smb.conf

按I键进入编辑模式,粘贴以下内容,然后按Esc键,输入:wq保存并退出

  • [web]是显示的文件夹名称,显示为web
  • path是实际路径
  • browseable是可列出目录和文件
  • read only是只读模式
  • create mask是创建的文件默认权限
  • directory mask是创建的文件夹默认权限
  • guest ok是匿名登录是否可见
[web]
    path = /var/www/html
    browseable = yes
    read only = no
    create mask=0777
    directory mask=0777
    guest ok = no

重启samba令其生效 systemctl restart smbd

systemctl restart smbd #重启smb服务
systemctl status smbd #查看smb服务状态

关闭SMB匿名用户

  1. 先用root用户登录SSH,或者登录了SSH用 sudo -i 输入密码切换到root用户(输密码时不显示,但实际已经输进去了)

  2. 关闭SMB匿名用户登录

    vi /etc/samba/smb.conf
    此时在命令模式,按I键进入编辑模式,用方向键找到这一行
    map to guest = bad user
    在前面加上一个#,变成
    #map to guest = bad user
    按Esc进入命令模式,输入 :wq退出并保存(:是英文冒号)

  3. 添加root用户到SMB用户中
    smbpasswd -a root
    然后会要求输入密码(输密码时不显示,但实际已经输进去了),我输入的和系统账户一样,不知道不一样可行不
    其中root是用户名,我直接添加root用户。
    实测有root用户添加后直接拥有最高权限,不需要额外设置。
    没测试添加其他的账户,不知道其他用户有没有最高权限,还需不需要额外设置

  4. 重启smb服务
    输入以下命令重启smb服务
    systemctl restart smbd或者 service smbd restart 或者 /etc/init.d/smbd restart 或者 smbd -D​稍等几秒钟,smb服务就重启好了

  5. Windows在资源管理器输入 \\IP 比如 \\192.168.1.4 就能弹出登录框,输入账户密码就能登录进去了
    Windows系统如果之前用匿名账户登录了的,刷新一下就会发现被踢出来提示密码错误了
    此时换用刚刚添加的账户重新登录即可

碎碎念:
不关闭匿名登录,即使添加了root账号,Windows也默认匿名登录,想要用账户登录也不行。
匿名登录权限低,不能管理Transmission的下载文件,所以要关闭匿名登录。
而安卓的ES文件管理器就可以匿名和root选择来登录,着不知道算不算Windows的BUG,反正为了解决这个BUG我是关闭了匿名登录。
因为开了IPv6公网+IPv6的DDNS,还玩BT,很容易就被人家拿到IPv6地址来访问,不安全,看也不想给不怀好意的人看,只读满足不了我的需求