安裝在 Unix 中的 Windows 文件夾,無法觸摸任何“權限被拒絕”
我有一個在虛擬機 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中的共享文件夾已授予每個人執行所有操作的權限(掛載的使用者也對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 框上的 ,以查看我在安裝時所連接的內容。當我嘗試使用我的 unname 帳戶(我用來掛載的帳戶)執行 net session 命令時,我被拒絕訪問。當我使用 時
run as administrator
,我可以看到我正在使用 uname 帳戶訪問掛載。我在 uname 帳戶上禁用了 UAC(UAC 是 Windows 7 中的系統,它會詢問您是否要允許某些操作繼續進行)。這實際上允許 uname 帳戶正常執行net session
。但是,uname 帳戶仍然無法從掛載中執行任何操作:
touch: cannot touch 'test': Permission denied
編輯 6: 我剛剛在 windows 框中啟動了真正的管理員帳戶(如此處所述),並將其用作掛載的使用者。以為這樣就可以了。仍然從坐騎內部獲得許可被拒絕。
一時興起,我還嘗試從管理員帳戶執行 virtualbox 機器。同樣的問題。
謝謝!
從 Linux 來看,文件(和父目錄)權限是什麼?
嘗試在您的選項中添加
file_mode=777
和dir_mode=777
:如果伺服器不支持 CIFS Unix 擴展,這將覆蓋預設文件模式或目錄的預設模式。另外:你試過
bash <script>
嗎?