我遇到需要挂载 UNC 根目录(即“\”或“smb://”)的情况。我可以打开 nautilus 并转到“smb://”,但我需要实际执行一些操作,例如:使用标准 POSIX 文件系统 API 执行 readdir、mkdir、unlink、rmdir、open、read、write 等。是否有现成的软件可以让我执行这些操作?
我试过了mount -t cifs "//"
,但它给了我
安装错误:UNC 名称太短
我也尝试过mount -t cifs "smb://"
,但这让我
尚未实现挂载 cifs URL。尝试挂载 smb://
我尝试了所有旧的 smb 命令,但它们不再存在 - 我相信它们已移至 cifs。我还尝试了这些新奇的 gvfs / gio 东西,我猜想它是一个基于 gobject 的用户空间安装系统,但它给 gio mount smb://
了我...
gio: smb:///: 位置已安装
... 挂载在哪里?我可以在 nautilus 中访问它,但我还是无法用它做任何事情。我以为它可能被挂载在 /run/user/1000/gvfs 上,但除非我使用命令专门挂载东西,否则 program-fuse-folder 似乎本身并没有做太多事情。
我甚至实际上不需要能够列出 smb:// 甚至 smb://server/,但我需要所有 smb://server/shares/ 可用,其功能与我使用 smb 或 gvfs 安装它们相同(例如列出、创建文件夹、删除内容、打开文件以及身份验证)。
为了进一步说明,所有应用程序都需要能够在所有 unc 路径上执行基本的文件系统 API 函数,至少在 gvfs 或 cifs 提供的范围内。例如,我应该能够:
cd /some/path/server1/share1/folder1
cat file1
mkdir newfolder2
cd ../existingfolder3
touch file2
cd /some/path/server2/share2
rmdir existingfolder4
...等等。如果可以的话,我会得到加分ls /some/path/server1
有很多 fuse 库,所以我考虑编写一个小脚本,在请求时自动挂载共享,然后只需将命令传递到挂载点,但我当然不想重新发明轮子,而且我也希望有比我有时间开发的任何东西更便携的东西。但如果这是最简单的方法,那么我可以开始编写一些代码,并将其发布在这里,或者在需要帮助时开始一个新问题。
谢谢你!
答案1
附注:每当地球上的某个人创建某台机器根目录的 smb/samba 共享时,天堂中的网络管理员就会失去他的翅膀。
我已经尝试过 mount -t cifs "//"
您的语法错误,不完整,并且您不能将服务器上的共享指定为“/”。
[1] 如果你确实想这样做,请进入服务器并创建“/”的共享,但请将共享命名为...我不知道...“root”怎么样
[2] 在客户端上创建一个挂载点来挂载共享 - 比如说 /home/agnes/servername
mkdir /home/agnes/servername
[3] 然后使用如下命令挂载:
sudo mount -t cifs //servername/root /home/agnes/servername -o some-list-of-options
它会完成你在原始帖子中想要它做的所有事情吗?我不知道。
我想你也可以采用老式的方法并使用 smbclient:
smbclient //servername/root
您将得到以下提示:
smb:>
如果你输入 help,你将看到可以使用的命令列表:
? allinfo altname 存档 备份 块
大小 取消 区分大小写 cd chmod
chown 关闭 del deltree dir
du echo 退出 获取 getfacl
geteas 硬链接 帮助 历史 iosize
lcd 链接 锁定 小写 ls
l 掩码 md mget mkdir
更多 mput 较新 通知 打开
posix posix_encrypt posix_open posix_mkdir
posix_rmdir posix_unlink posix_whoami 打印 提示
放置 pwd q 队列 退出
readlink rd 递归 reget 重命名
reput rm rmdir showacls setea
setmode scopy stat 符号链接 tar
tarmode 超时转换 解锁 卷
vuid wdel 登录 listconnect
showconnect tcon tdis tid 注销
..
答案2
据我了解 - 该smbtree
命令将执行您想要的操作。
姓名
smbtree
- 基于文本的 smb 网络浏览器描述
该工具是 samba(7) 套件的一部分。
smbtree
是一个文本模式的 SMB 浏览器程序。它类似于 Windows 计算机上的“网络邻居”。它会打印出一棵树,其中包含所有已知域、这些域中的服务器以及服务器上的共享。