选项 [虚拟机] ——> [设置] ——> 点击 [选项] ——> [共享文件夹] ——> [总是启用] ——> [浏览] 选择路径(在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配置中允许了匿名访问或当前用户已经通过了身份验证。
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
sudo systemctl restart smbd
Samba使用独立的用户数据库,即使系统用户存在,也需要将其添加到Samba用户数据库中。
sudo smbpasswd -a 用户名
输入密码后,该用户将被添加到Samba用户数据库。
valid users = 用户名
即使Samba配置正确,文件系统的权限也可能导致问题。确保共享目录的权限允许Samba用户访问。
ls -ld /path/to/shared/folder
sudo chmod -R 775 /path/to/shared/folder
sudo chown -R 用户名:组名 /path/to/shared/folder
如果你之前访问过该共享目录,客户端可能缓存了凭据。尝试清除缓存或使用其他设备访问。
sudo umount /mnt/samba
sudo mount -t cifs //服务器IP/共享名称 /mnt/samba -o username=用户名,password=密码
在 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
:禁止匿名访问。在修改配置后,使用以下命令测试配置文件是否正确:
testparm
如果没有错误,重启Samba服务:
sudo systemctl restart smbd
接下来,尝试从客户端访问共享目录。你应该会看到提示输入用户名和密码的对话框。
sudo mount -t cifs //服务器IP/共享名称 /mnt/samba -o username=用户名,password=密码
通过以上步骤,你应该能够解决Samba共享目录无需验证的问题。如果问题仍然存在,请检查日志文件 /var/log/samba/log.smbd
以获取更多信息。如果以上方式还未能解决问题,接下来你可以具体查看Ubuntu中所设置的用户的详细情况:
/etc/passwd
文件存储了系统中所有用户的基本信息。每个用户对应一行记录。
cat /etc/passwd
每一行的格式如下:
用户名:x:用户ID:组ID:描述信息:主目录:默认Shell
cat /etc/passwd | wc -l
# 这会显示 /etc/passwd 文件中的总行数,即用户数量。
getent
命令可以查询系统数据库(包括用户数据库)。
getent passwd
getent passwd | wc -l
每个用户的主目录通常位于 /home
下。可以通过查看 /home
目录来了解有多少用户。
/home
目录下的用户主目录:ls /home
ls /home | wc -l
compgen
命令可以列出系统中的所有用户。
compgen -u
compgen -u | wc -l
如果你想查看当前登录的用户,可以使用以下命令:
who
who | wc -l
系统用户和普通用户的区别在于用户ID(UID)范围:
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/passwd
或getent passwd
可以查看所有用户。
使用/home
目录可以查看普通用户的主目录。
使用compgen -u
可以快速列出所有用户。
使用awk
可以区分系统用户和普通用户。
以上。仅供学习与分享交流,请勿用于商业用途!转载需提前说明。
我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!