Windows 文件夹安装在 Unix 中,无法触及任何“权限被拒绝”

Windows 文件夹安装在 Unix 中,无法触及任何“权限被拒绝”

我有一个在虚拟机 vm 中运行 centos 的 Windows 系统。

我有一个在 Windows 中共享的目录,并从 Centos 挂载,在 fstab 中,如下所示:

//<ip address>/head_build  /mnt/company-build  cifs  user,uid=0,gid=0,rw,auto,exec,suid,username=uname,password=pword,iocharset=utf8 0 0

在子文件夹中,我有一个脚本。如果我尝试运行它,我会收到错误'bad interpreter',我相信可以使用 dos2unix 修复该错误。

但是,我似乎无法对这个脚本做任何事情。dos2unix 说Failed to open output temp file: Permission denied

chmod 和 chown 也说权限被拒绝。lsattr 说'Inappropriate ioctl for device while reading flags'

编辑: 我在 centos 机器上以 root 身份登录。windows 中的共享文件夹已授予所有人执行所有操作的权限(来自 mount 的用户对 windows 中的文件夹也有权限)。

编辑2: 我尝试添加 file_mode=777、dir_mode=777(如评论中所建议),以及 umask=777 和 noperm(认为可以这样做),但没有成功。

编辑3: 与 S19N 交流后,我同意问题似乎出在挂载的服务器端,即 Windows。但共享文件夹拥有我能想到的所有权限。是否有一些秘诀可以从 cifs 挂载到 Windows 来获取执行权限?

编辑4:calcs这是我在 Windows 上共享的目录的 输出:

c:\company\builds\head>cacls build
c:\company\builds\head\build computer-name\uname:(OI)(CI)F
                            BUILTIN\Administrators:F
                            BUILTIN\Administrators:(OI)(CI)(IO)F
                            NT AUTHORITY\SYSTEM:F
                            NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
                            Everyone:(OI)(CI)F

这似乎表明,此文件夹在安装时将允许所有权限。

编辑5: 根据 Jim 的评论,我net session在 Windows 框上检查了我从挂载点连接的内容。当我尝试使用 uname 帐户(我用于挂载的帐户)运行 net session 命令时,我被拒绝访问。

当我使用时run as administrator,我可以看到我正在使用 uname 帐户访问挂载。我禁用了 uname 帐户上的 UAC(UAC 是 Windows 7 中的系统,它会询问您是否要允许某些操作继续进行)。这实际上允许 uname 帐户net session无错误地运行。

但是,uname 帐户仍然无法从挂载处执行任何操作:touch: cannot touch 'test': Permission denied

编辑6: 我刚刚在 Windows 上激活了真正的管理员帐户(如上所述这里),并将其用作挂载用户。以为这样就行了。但仍然从挂载内部获得拒绝权限。

一时兴起,我也尝试从管理员帐户运行虚拟机。同样的问题。

谢谢!

答案1

从 Linux 来看,文件(和父目录)的权限是什么样的?

尝试添加file_mode=777dir_mode=777到您的选项:如果服务器不支持 CIFS Unix 扩展,这将覆盖默认文件模式或目录的默认模式。

另外:你尝试过吗bash <script>

相关内容