我有网络连接共享问题。第一个连接有效,并且似乎至少可以保持连接几个小时。但是,每次我的 Windows 7 PC 重新启动后,它无法再与共享文件夹形成网络连接,也无法浏览到它,直到我不仅取消映射并重新映射映射的驱动器,而且,我必须使用cmdkey删除存储的凭据是这样的:
cmdkey /delete:Domain:target=HOSTNAME
Run Code Online (Sandbox Code Playgroud)
我的工作 PC 位于域中,我不是 IT 管理员,但我很好奇是否可以采取任何措施来调查此问题。我可以检查注册表或组策略中的任何设置以了解第一个连接为何有效,但随后每次尝试(一旦存在存储的凭据)浏览或使用该连接都会失败,并出现连接错误,提示“无法访问”,像这样:

在至少几分钟过去之前,我什至没有收到任何错误。我看到的第一件事是一个冻结和空的窗口,然后我收到此错误:
连接到 DROBO 设备上的共享以及不在域中但为 Microsoft Home Server 的共享时会发生这种情况。我想知道当存在 Active Directory 域控制器并且特定工作站加入域时,WINdows 7 Professional 在连接到非域共享方面是否有问题?
仅当我单击“记住凭据”时才会出现此问题。它不是通过任何数量的与net use. 使用cmdkey删除所有存储的主机凭据是重新进入的唯一方法,它会影响所有非域共享文件夹。
更新我希望我可以检查一些注册表位置,这些位置可能以某种方式错误配置,这可能解释了为什么非域系统的 SMB/CIFS 存储凭据似乎以这种奇怪的方式自动失效。了解 Microsoft Windows 域和安全处理有时是多么糟糕,这可能是某种愚蠢的“功能”。
我有一个 Windows 7 主机,在 VirtualBox 下有一个 CentOS 6 来宾。
我有一个使用 CIFS 与 Linux 来宾共享的 Windows 目录。
到目前为止一切正常,直到我意识到所有chmod操作都会产生:
chmod:更改“x”的权限:不允许操作
这是可以理解的,但我的问题是一些我无法控制的工具,试图chmod为我归档,结果失败了。
是否可以允许但忽略chmod()CIFS 挂载上的所有调用?请注意,这些调用是通过编程语言而不是命令行chmod实用程序进行的。
编辑:mount.cifs 的手册说(强调我的):
核心 CIFS 协议不提供文件和目录的 unix 所有权信息或模式。因此,文件和目录通常似乎由 uid= 或 gid= 选项设置的任何值拥有,并且权限设置为安装的默认 file_mode 和 dir_mode。尝试通过 chmod/chown 更改这些值将返回成功但无效。
那正是我所追求的行为,那么为什么它不适合我呢?
该ln命令可以在安装的 Windows 共享上创建硬链接,但cp -al失败。这是预期的行为吗?我试图通过使用cowdancer,rsync和cp -al.
backupuser@lan0:/mnt/backup/share$ mkdir a
backupuser@lan0:/mnt/backup/share$ touch a/b
backupuser@lan0:/mnt/backup/share$ cp -al a x
cp: cannot create hard link `x/b' to `a/b': No such file or directory
backupuser@lan0:/mnt/backup/share$ mkdir x
mkdir: cannot create directory `x': File exists
backupuser@lan0:/mnt/backup/share$ ln a/b x/b
backupuser@lan0:/mnt/backup/share$ ls -l x
total 0
-rwxr-xr-x 0 backupuser backupuser 0 Dec 23 17:33 b
Run Code Online (Sandbox Code Playgroud)
更新:ln实际上是在创建副本而不是真正的链接
Nintendo 的 New 3DS(“new”是名称的一部分)能够公开其 micro SD 卡的 SMB 共享。
它要求您定义 3DS 显示的名称,以及用户名和密码。对于以下内容,假设我已经为设备命名my3ds并且用户名是myuser. 另外,我给了它一个静态 IP——假设它是1.2.3.4用于示例的。我可以成功ping这个IP。
在 Windows 中,它可以正常工作。如果我进入\\my3ds资源管理器,它会显示一个名为“microSD”的共享并允许访问其文件。它不需要在 Windows 端安装任何东西,它只是以与任何其他共享文件夹相同的方式查看它。
重要提示:当我这样做时,3DS 在其屏幕上显示“已连接到 PC”。我在 Linux 上尝试过的所有方法都没有在 3DS 的屏幕上产生任何响应,这可能表明早期通信失败。
以下是我尝试过的不同方法,以及对每种方法的响应。我正在使用 Linux Mint 的 64 位 KDE 版本。
1) 使用 Dolphin
方法:在地址栏中输入smb://my3ds、smb://my3ds/microSD、smb://myuser@my3ds或响应: Dolphin 显示“正在加载文件夹”一段时间然后超时。smb://myuser@my3ds/microSD
方法:同上,但使用1.2.3.4代替my3ds
响应: Dolphin 说文件夹不存在。
2)使用mount -t cifs
使用mount -t cifs和机器名称:
$ sudo mount …Run Code Online (Sandbox Code Playgroud) 我有 Windows Server 2008 的 FreeNAS 服务器和域控制器。我使用 OpenSuse 11.4,我的 Windows 帐户可以完全访问 FreeNAS CIFS 共享。我可以通过任何支持 smb 协议的文件管理器进行连接smb://windows_user@freenas/share,我可以读写任何文件夹。
现在我正在尝试设置 mount.cifs。这是我的字符串/etc/fstab:
//freenas/share /mnt/Data cifs username=windows_user,password=windows_password,_netdev,uid=1000,gid=100 0 0
(其中 1000 是我的默认 linux 用户 ID,100 是“用户”组 ID)。
在mount -a我看到 FreeNAS 共享文件夹后,但我只能以 root 用户身份(不是 ID = 1000 的默认用户)读/写它们。
还ls -o表示,文件夹的所有者是1000,但没有读/写访问。
我尝试了诸如 'file_mode=0777' 或 'dir_mode' 之类的选项或强制 uid 或将用户 1000 添加到根组 - 这些都不起作用。任何想法有什么问题?
我知道 Windows 默认充当 SMB/CIFS 服务器。因此,人们可以使用适当的 SMB 客户端轻松地从网络中的另一台计算机访问 Windows 文件。但是,如果我想做相反的事情并使用Windows计算机访问另一台计算机上的SMB服务器怎么办?
换句话说,Windows是不是只有SMB服务器组件,而没有客户端组件?
我使用的是 Windows Vista SP2。我尝试从 Windows 访问 SMB 服务器的方法是转到“计算机”,然后转到“网络”。我可以看到网络中的所有设备,甚至可以看到我的电视,但看不到托管 SMB 服务器的基于 Linux 的 STB。这是 Windows 中的正常行为吗?
不过,我只需使用 Android 手机并结合 ASTRO 文件管理器和 SMB 模块即可访问 STB。我什至可以通过这种方式将其连接到 Windows 机器,而不仅仅是基于 Linux 的 STB。我什至可以通过手持 Android 设备将文件从基于 Linux 的 STB 复制到基于 Windows 的 PC。但我无法从 Windows 机器上访问任何内容...怎么办?
我认为 Windows 只是缺少 SMB/CIFS 客户端组件。我对吗?如果是这样,我在哪里可以获得在 Windows 上运行的 SMB 客户端?我在 Google 上看到的大多数客户端都是针对 Linux 的。
我在 OSX 和 Windows 客户端的网络上有一个 FreeNAS 服务器。当 OSX 客户端与服务器上的 SMB/CIFS 共享交互时,它们会导致所有其他客户端出现权限问题。
更新:我无法再验证任何答案,因为我们放弃了该项目,但请随时为未来的访问者发布任何帮助。
此行为的详细信息似乎还取决于客户端运行的 OSX 版本。对于这个问题,让我们假设一个运行 10.8.2 的客户端。
当我在 OSX 客户端上安装 CIFS 共享并在其上创建一个新目录时,将使用drwxr-x-rx权限创建该目录。这是不可取的,因为它不允许除我之外的任何人写入该目录。我的组中还有其他用户也应该具有写入权限。即使smb.conf服务器上存在以下设置,也会发生此行为:
[global]
create mask= 0666
directory mask= 0777
[share]
force directory mode= 0775
force create mode= 0660
我的印象是这些设置应该确保目录至少是使用rwxrwxr-x权限创建的。但是,我想,这并不能阻止客户端在创建目录后更改权限。
当我从 Windows 客户端在同一共享上创建文件夹时,新文件夹将具有所需的访问权限 ( rwxrwxrwx),因此我目前假设问题出在 OSX 客户端上。
如果您可以轻松更改您创建的目录的权限,我想这不会是一个问题,但您不能。在 Finder 中打开目录信息时,我收到旧的“您具有自定义访问权限”通知,但无法进行任何更改。

我假设这是因为我们在共享上使用了 Windows ACL,但这只是一个疯狂的猜测。
通过终端更改组的写入权限工作正常,但这对于部署来说是不切实际的,并且期望任何人都这样做是不合理的。
这是完整的smb.conf:
[global]
encrypt passwords = yes
dns proxy …Run Code Online (Sandbox Code Playgroud) 我有几个 Linux 客户端在运行 Windows Server 2012 的远程计算机上安装共享。相关行/etc/fstab如下所示:
//server.address.com/share /media/share cifs rw,user,noauto,_netdev,soft,cred=/etc/samba/cred/share 0 0
Run Code Online (Sandbox Code Playgroud)
如果我df用来查询可用空间量,我会得到:
~$ df -kh /media/share
Filesystem Type Size Used Avail Use% Mounted on
//server.address.com/share cifs 1.8T 1.1T 803G 57% /media/share
Run Code Online (Sandbox Code Playgroud)
我使用以下方法获得基本相同的使用情况统计信息stat -f:
~$ stat -f /media/share
File: "/media/share"
ID: 0 Namelen: 4096 Type: cifs
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 483183820 Free: 210294051 Available: 210294051
Inodes: Total: 0 Free: 0
Run Code Online (Sandbox Code Playgroud)
这里,4096 * 210294051 / 2^30 = 802.2GB 免费。但是我知道共享几乎完全填满的事实 …
我有带有 Gnome 3 和 Nautilus 3.18.5-1.fc23 的 Fedora 23。我在使用 Nautilus 时遇到了 SMB 速度问题。它大约是 4.4MB/s,而通过任何其他方法(例如来自终端的 smbclient),我从 Samba 服务器获得了 11MB/s。有没有办法调试这个。我在一些论坛上读到,也许 Nautilus 没有rsize通过安装驱动器正确设置。我不确定。我没有找到安装的驱动器lsblk。根据一些论坛,网络驱动器被安装/run到一个gvfs文件夹中。这我可以确认,我得到了以下路径:
/run/user/1000/gvfs/smb-share:server=odroid-server,share=asmedia-hdd
Run Code Online (Sandbox Code Playgroud)
通过mount | grep gvfs我得到了以下内容:
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
Run Code Online (Sandbox Code Playgroud)
我没有找到检查这个rsize东西的方法。它可能无法解决我的问题,我不确定。我想通过驱动器关闭的另一件事是 relatime。至少它在服务器上设置为 noatime。
有没有办法在 Nautilus 配置中做到这一点(我知道在 fstab 中是可能的)?有没有另一种方法可以以某种方式调试这个缓慢的 SMB 速度问题?
在我的/etc/fstab,我有credentials=/etc/cifspw,但cifspw文件是清晰的。有没有办法加密该文件,以便用户名和密码不清晰,并且仍然能够挂载共享驱动器?