
我是 Cygwin、ssh 的新手,並且弄亂了檔案權限並遇到了問題。在電腦 WORKER1 上,我嘗試 ssh 進入電腦 WORKER2,然後從那裡在 WORKER1 上執行 .sh 檔案。從下面的輸出我可以看出, ls -l 顯示應該有執行所有操作的權限(我知道這些權限不好,但我很想弄清楚為什麼會出現此權限錯誤) 。
root@Worker1 ~
$ ssh WORKER2
Last login: Tue Jan 31 10:51:54 2012 from worker1
root@Worker2 ~
$ cd //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ sh Dos_Commands.WORKER2.1.sh
sh: Dos_Commands.WORKER2.1.sh: Permission denied
root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ ls -l
total 28
-rwxrwxrwx+ 1 Administrators None 2 Jan 31 11:01 Dos_Commands.WORKER1.0
-rwxrwxrwx+ 1 Administrators None 127 Jan 31 11:01 Dos_Commands.WORKER2.1
-rwxrwxrwx+ 1 Administrators None 250 Jan 31 11:01 Dos_Commands.bat
-rwxrwxrwx+ 1 Administrators None 636 Jan 31 11:01 MPI_COMM_WORLD.mat
-rwxrwxrwx+ 1 Administrators None 97 Jan 31 11:01 MatMPIdefs1.m
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p0_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p1_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None 0 Jan 31 11:01 p0_p1_t10000_lock.mat
兩台電腦都運行 Windows 7 64 位,並且我在每台電腦上運行最新版本的 Cygwin 和 OpenSSH。 WORKER2 上執行的 sshd 也是來自 Cygwin 的。安裝 sshd 時,我能夠使其正常運行的唯一方法是在運行 ssh-host-config 時對權限分離回答“否”,對作為服務安裝回答“是”。我正在使用公鑰 RSA 身份驗證。我嘗試將 //WORKER1/Users/Public/pMatlab/ 安裝為網頁磁碟機並以這種方式存取它,但這也沒有幫助。關於可能出什麼問題的任何想法嗎?謝謝!
編輯:我忘了提及,我在 Windows 中的網路共用設定被設定為允許我所看到的一切。此外,我的公用資料夾和其中的資料夾似乎都設定為唯讀(在右鍵 - >屬性選單中),儘管其中的檔案不是。嘗試在“屬性”選單中更改此設定不會執行任何操作 - 當我關閉唯讀時,當我重新打開“屬性”選單時,它會再次打開。我嘗試透過在 cmd.exe 中執行 attrib -r C:\Users\Public 來更改此設置,但這也沒有執行任何操作。
最後,當我在本機執行 .sh 檔案時,當我嘗試從電腦 WORKER2 上的 Windows GUI 存取它時,或者當我從 WORKER2 ssh 到自身然後嘗試存取它時,我不會收到權限被拒絕錯誤。只有當我從 WORKER1 ssh 到 WORKER2,然後嘗試從那裡存取 WORKER1 上的檔案時,才會出現權限錯誤。
最終編輯:問題已解決。原來資料夾被加密了!不知道為什麼。由於某種原因,這就是它從 zip 檔案中出來的方式。
答案1
歡迎來到 1989 年精彩的新 Unix 世界!
就在今年,那些友善的 TRUSIX 人員定義了ls
命令的擴展,以直觀地指示rwxrwxrwx
權限資訊實際上並不是故事的全部。該擴展名是+
權限標誌後面的一個字元。正如您所看到的,您的ls
輸出+
到處都有字元。這意味著您的文件具有這些新穎的任意存取控制列表TRUSIX 人非常興奮的事情。因此,您對文件的存取權限是不是必然是您可以僅從九個權限標誌推斷出的內容。
為了彌補舊式 Unix 工具在新型 ACL 面前的局限性,TRUSIX 人員還提出了一些新命令,getacl
以及setacl
.前者用於查看這些 ACL。我聽到人們可能更喜歡的低語getfacl
和setfacl
作為名字。有傳言稱 Microsoft 和 IBM 的 OS/2 版本 3 正在設計中,最終可能會出現名為cacls
和xcacls
查看 ACL 的命令,這些命令將甚至更好而不是getfacl
在他們的「新技術」作業系統上,因為他們不會透過 3 位元 Unix 鏡頭來展示它們,而是展示它們在所有作業系統中的真實情況。標準和特定權利 drctpoxfew
兩個帳戶-和-機器名榮耀。
這個想法勢必會像野火一樣流行起來,在 20 世紀 90 年代每個人都肯定會成為其中一部分的 Unix 世界中。很可能在 20 年內,九位權限將顯得過時且過時,ACL 將成為常態,並且即使是仍然查看九個權限標誌的老古董也會知道它們。 ☺
進一步閱讀
- 克雷格·魯賓(1989-08-18)。 為 Unix 系統選擇存取控制清單功能的基本原理。 NCSC-TG-020-A。黛安出版。國際標準書號 9780788105548。
- 微軟公司(2008-05-08)。使用者無法存取檔案或資料夾,但應具有權限。技術網。