【Linux系统】Samba服务共享文件夹后没有提示输入用户名和密码,直接进入了IP地址

这是在配置Samba服务的过程中遇见的问题:共享文件夹后没有提示输入用户名和密码,直接进入了IP地址,并且<IP 地址中没有显示出来 shared 共享文件夹> 这篇文章针对这个具体问题提供了以下解决方案。
替代方案:如果你的项目比较紧急,可以先使用Windows链接Linux的方式使用共享文件夹 shared

选项 [虚拟机] ——> [设置] ——> 点击 [选项] ——> [共享文件夹] ——> [总是启用] ——> [浏览] 选择路径(在Windows的桌面上新建文件夹即可)。
请添加图片描述
直接访问共享路径
假设通过上述方法找到的路径是 /srv/shared(记得是在根目录下!!!),可以在 Ubuntu 中直接访问该目录:

cd /srv/shared
ls -l

如果在 /srv/shared中没有,也许是由于你手动将共享目录挂载到 /mnt 或其子目录中,在 Ubuntu 中,直接访问共享路径 通常不会自动出现在 /mnt 文件夹下。

共享路径不会自动出现在 /mnt 下,除非你手动挂载。
使用 mount 命令可以将共享路径挂载到 /mnt 或其子目录中。
通过 /etc/fstab 可以实现开机自动挂载。

因为 /mnt 文件夹的作用是 Linux 系统中用于 临时挂载文件系统 的目录。默认情况下,共享路径不会自动出现在 /mnt 下,除非你手动将共享目录挂载到 /mnt 或其子目录中。由于我希望每次系统启动时自动挂载共享路径到 /mnt,因此这时候共享文件夹 shared 也可能会出现在 /etc/fstab 文件目录下。

正式解决方案:

如果你在配置Samba共享文件夹后,访问共享时没有提示输入用户名和密码,而是直接进入了共享目录,这通常是因为Samba配置中允许了匿名访问或当前用户已经通过了身份验证。

1. 检查Samba配置文件 (smb.conf)

Samba的配置文件通常位于 /etc/samba/smb.conf。你需要检查共享目录的配置,确保没有启用匿名访问。

  • 打开配置文件:
sudo nano /etc/samba/smb.conf
  • 检查共享目录的配置部分,确保以下设置正确:
[共享名称]
path = /path/to/shared/folder
browseable = yes
writable = yes
valid users = 用户名
create mask = 0777
directory mask = 0777
  • 确保没有以下设置:
guest ok = yes
public = yes

如果存在这些设置,Samba将允许匿名访问。

  • 如果需要强制验证,确保以下设置存在:
guest ok = no
  • 保存并退出编辑器,然后重启Samba服务:
sudo systemctl restart smbd
2. 检查Samba用户

Samba使用独立的用户数据库,即使系统用户存在,也需要将其添加到Samba用户数据库中。

  • 添加用户到Samba数据库:
sudo smbpasswd -a 用户名

输入密码后,该用户将被添加到Samba用户数据库。

  • 确保共享目录的 valid users 设置中包含了该用户:
valid users = 用户名
3. 检查文件系统权限

即使Samba配置正确,文件系统的权限也可能导致问题。确保共享目录的权限允许Samba用户访问。

  • 检查共享目录的权限:
ls -ld /path/to/shared/folder
  • 如果需要,修改权限:
sudo chmod -R 775 /path/to/shared/folder
sudo chown -R 用户名:组名 /path/to/shared/folder
4. 检查客户端缓存

如果你之前访问过该共享目录,客户端可能缓存了凭据。尝试清除缓存或使用其他设备访问。

  • 在Windows客户端上,可以尝试清除缓存的凭据:
  1. 打开“控制面板” -> “用户账号” -> “凭据管理器” -> “Windows凭据”。
  2. 删除与Samba服务器相关的凭据。
  • 在Linux客户端上,可以尝试卸载并重新挂载共享目录:
sudo umount /mnt/samba
sudo mount -t cifs //服务器IP/共享名称 /mnt/samba -o username=用户名,password=密码
5. 检查全局配置

smb.conf[global] 部分,确保以下设置正确:

  • 禁用匿名访问:
[global]
map to guest = Never
  • 启用用户验证:
[global]
security = user
  • 如果上述两个配置问题仍然存在,继续添加更多补充内容:
[global]
   workgroup = WORKGROUP
   security = user
   map to guest = Never
   guest ok = no
  • security = user强制使用用户身份验证
  • map to guest = Never禁止将未验证的用户映射为访客
  • guest ok = no禁止匿名访问
6. 测试配置

在修改配置后,使用以下命令测试配置文件是否正确:

testparm

如果没有错误,重启Samba服务:

sudo systemctl restart smbd
7. 访问共享

接下来,尝试从客户端访问共享目录。你应该会看到提示输入用户名和密码的对话框。

  • 在Windows上,访问 \服务器IP\共享名称
  • 在Linux上,使用以下命令挂载:
sudo mount -t cifs //服务器IP/共享名称 /mnt/samba -o username=用户名,password=密码

通过以上步骤,你应该能够解决Samba共享目录无需验证的问题。如果问题仍然存在,请检查日志文件 /var/log/samba/log.smbd 以获取更多信息。如果以上方式还未能解决问题,接下来你可以具体查看Ubuntu中所设置的用户的详细情况:

查看我的Ubuntu中有几个用户:
方法 1:查看 /etc/passwd 文件

/etc/passwd 文件存储了系统中所有用户的基本信息。每个用户对应一行记录。

  • 使用以下命令查看所有用户:
cat /etc/passwd

每一行的格式如下:

用户名:x:用户ID:组ID:描述信息:主目录:默认Shell
  • 如果只想统计用户数量,可以使用:
cat /etc/passwd | wc -l
# 这会显示 /etc/passwd 文件中的总行数,即用户数量。
方法 2:使用 getent 命令

getent 命令可以查询系统数据库(包括用户数据库)。

  • 查看所有用户:
getent passwd
  • 统计用户数量:
getent passwd | wc -l
方法 3:查看 /home 目录

每个用户的主目录通常位于 /home 下。可以通过查看 /home 目录来了解有多少用户。

  • 查看 /home 目录下的用户主目录:
ls /home
  • 统计用户数量:
ls /home | wc -l
方法 4:使用 compgen 命令

compgen 命令可以列出系统中的所有用户。

  • 查看所有用户:
compgen -u
  • 统计用户数量:
compgen -u | wc -l
方法 5:查看登录用户

如果你想查看当前登录的用户,可以使用以下命令:

  • 查看当前登录的用户:
who
  • 查看当前登录的用户数量:
who | wc -l
方法 6:查看系统用户和普通用户

系统用户和普通用户的区别在于用户ID(UID)范围:

  • 系统用户:UID 通常小于 1000。
  • 普通用户:UID 通常大于或等于 1000。
  • 查看普通用户:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
  • 查看系统用户:
awk -F: '$3 < 1000 {print $1}' /etc/passwd
  • 统计普通用户数量:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd | wc -l
  • 统计系统用户数量:
awk -F: '$3 < 1000 {print $1}' /etc/passwd | wc -l

使用 /etc/passwdgetent passwd 可以查看所有用户。
使用 /home 目录可以查看普通用户的主目录。
使用 compgen -u 可以快速列出所有用户。
使用 awk 可以区分系统用户和普通用户。

以上。仅供学习与分享交流,请勿用于商业用途!转载需提前说明。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫的小茶馆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值