Linux 中 CIFS 挂载的 Windows 共享目录中的文件权限被拒绝

Linux 中 CIFS 挂载的 Windows 共享目录中的文件权限被拒绝

我有两个目录:

c:\work\directory1

c:\work\directory2

安装在以下位置:

/mnt/c-drive/

当我尝试读取目录 1 下的任何文件时,我可以,但是当我尝试读取目录 2 中的任何文件时,我收到“权限被拒绝”错误。

/mnt/c-drive/directory1
drwxrwxrwx 1 root root     0 2008-10-17 11:13 directory1
/mnt/c-drive/directory1/file1
-rwxrwSrwx 1 root root 257 2008-10-17 11:13 file1


/mnt/c-drive/directory2
drwxrwxrwx 1 root root     0 2009-07-20 10:42 directory2
/mnt/c-drive/directory2/file1
-rwxrwSrwx 1 root root   844 2009-07-20 10:42 file1

Windows 机器运行的是 Windows XP Media Center Edition。Linux 是 Fedora 10。

当我右键单击两个文件或其父目录时,它们的属性看起来相同。文件:只读 -、隐藏 -、文件已准备好存档 +、用于快速搜索 +、压缩 -、加密 - 目录:只读 +、隐藏 -、文件已准备好存档 -、用于快速搜索 +、压缩 -、加密 -

如果我可以提供任何其他信息来提供帮助,请告诉我。

任何帮助都将不胜感激,谢谢。

附加信息:通过以下方式安装:mount -t cifs //192.168.1.103/c /mnt/c-drive,无用户名/密码

CALCS 输出:

目录1:

C:\work\directory1 BUILTIN\Users:F
BUILTIN\Users:(OI)(CI)(IO)F
Everyone:F
Everyone:(OI)(CI)(IO)(special access:)

                STANDARD_RIGHTS_ALL

                DELETE

                READ_CONTROL

                WRITE_DAC

                WRITE_OWNER

                SYNCHRONIZE

                STANDARD_RIGHTS_REQUIRED

                GENERIC_READ

                GENERIC_WRITE

                GENERIC_ALL

                FILE_GENERIC_READ

                FILE_GENERIC_WRITE

                FILE_GENERIC_EXECUTE

                FILE_READ_DATA

                FILE_WRITE_DATA

                FILE_APPEND_DATA

                FILE_READ_EA

                FILE_WRITE_EA

                FILE_EXECUTE

                FILE_DELETE_CHILD

                FILE_READ_ATTRIBUTES

                FILE_WRITE_ATTRIBUTES

BUILTIN\Administrators:F
BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
E510\Rob:F
CREATOR OWNER:(OI)(CI)(IO)F
BUILTIN\Users:(OI)(CI)(IO)(special access:)

                     GENERIC_READ

                     GENERIC_EXECUTE

BUILTIN\Users:(CI)(IO)(special access:)

                 FILE_APPEND_DATA

BUILTIN\Users:(CI)(IO)(special access:)

                 FILE_WRITE_DATA

目录2:

        C:\work\direcory2 BUILTIN\Users:F
        BUILTIN\Users: (OI)(CI)(IO)F
        Everyone:F
        Everyone:(OI)(CI)(IO)(special access:)

               STANDARD_RIGHTS_ALL

               DELETE

               READ_CONTROL

               WRITE_DAC

               WRITE_OWNER

               SYNCHRONIZE

               STANDARD_RIGHTS_REQUIRED

               GENERIC_READ

               GENERIC_WRITE

               GENERIC_ALL

               FILE_GENERIC_READ

               FILE_GENERIC_WRITE

               FILE_GENERIC_EXECUTE

               FILE_READ_DATA

               FILE_WRITE_DATA

               FILE_APPEND_DATA

               FILE_READ_EA

               FILE_WRITE_EA

               FILE_EXECUTE

               FILE_DELETE_CHILD

               FILE_READ_ATTRIBUTES

               FILE_WRITE_ATTRIBUTES

        BUILTIN\Administrators:F
        BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
E510\Rob:F
CREATOR OWNER:
        (OI)(CI)(IO)F
BUILTIN\Users:    (OI)(CI)(IO)(special access:)

                    GENERIC_READ

                    GENERIC_EXECUTE

BUILTIN\Users:    (CI)(IO)(special access:)

                FILE_APPEND_DATA

BUILTIN\Users:    (CI)(IO)(special access:)

                FILE_WRITE_DATA

以下是两个单独文件 directory1\file1 的 CACLS 信息

BUILTIN\Users:F
Everyone:F
BUILTIN\Administrators:F
NT AUTHORITY\SYSTEM:F
E510\Rob:F

目录2\文件1

E510\Rob:F
NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F

现在我明白了预定差异。

答案1

我觉得你应该去看看 Windows XP 计算机上这些目录的 NTFS 权限。我猜你用来从 Fedora 机器挂载这些目录的用户帐户没有权限。

由于它是 XP Media Center,因此文件夹属性的“安全”选项卡可能被隐藏。在命令提示符中,您可以使用 CACLS 命令(如下所示)列出权限:

CACLS C:\Directory1

CACLS 的输出是有些易于解析,但如果您遇到问题,可以在此处发布输出作为对问题的编辑。

您在 Linux 上挂载的参数中指定了什么 Windows 用户名?

编辑:

好的——因此,如果您未指定用户名和密码,则您以“访客”身份连接。权限“Everyone:F”允许此操作。

这些目录的 NTFS 权限相同。如果您从 Windows 或 Linux 计算机在每个目录中创建新文件,则应该看到相同的访问。尝试一下并确保它有效。

我想知道您是否对“directory2”中的单个文件设置了权限。由于 XP Media Center 默认“隐藏”了“安全”选项卡(如果我没记错的话),请尝试使用 CACLS 引用“directory2”中出现问题的单个文件。我怀疑您会发现它具有与“directory2”本身不同的权限。您是否碰巧将文件从计算机硬盘驱动器的其他地方移动到“directory2”中?

答案2

这是针对此问题最常提及的网站。我刚刚在桌面上安装了 Windows 7 后才得到这个启发。经过一周的挫败后,我决定在 Linux 系统上使用这个命令

sudo mount -v -t cifs -o user=username,vers=2.1 '//h18/Public/' /media/h18

h18 可以是 URL,因为 192.168.0.4 /media/h18 是 Linux/Unix 系统上的目录 使用 Users/Public 目录保存在 W7 系统上定义的共享权限。只有在我按照以下方式在 Windows 7 系统上设置网络访问权限后,此方法才有效:

  1. 单击“开始”并进入 Explorer
  2. 窗口中将显示 Windows 资源管理器。右键单击并以管理员身份打开程序。
  3. 在 Windows 资源管理器中右键单击“网络”。
  4. 选择更改高级共享设置并确保选中以下内容打开网络发现打开文件和打印机共享打开共享以便任何有网络访问权限的人......为使用 40 的设备启用文件共享........(启用我的 Rasberry Pies)打开密码保护共享并保存更改!!!其中可能有些过度,但对于家庭计算机实验室来说,它们都非常安全,因为它们适用于 LAN。希望这对某人有所帮助。注意安全,Ianm

相关内容