Jon*_*cki 1 ssh cygwin openssh permissions
我是 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
Run Code Online (Sandbox Code Playgroud)
两台计算机都运行 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 文件中出来的方式。
那些优秀的 TRUSIX 人员 - 就在今年 - 定义了ls命令的扩展,以在rwxrwxrwx权限信息实际上不是整个故事时直观地指示。该扩展名是+权限标志后面的一个字符。如您所见,您的ls输出+到处都是字符。这意味着您的文件具有TRUSIX 人员非常兴奋的这些新奇的自由访问控制列表的东西。因此,你对文件的访问是不是一定可以从单独的九个权限标志推断出什么。
为了弥补旧式 Unix 工具在新式 ACL 面前的这些限制,TRUSIX 人员还提出了一些新命令,getacl以及setacl. 前者用于查看那些 ACL。我听到人们可能更喜欢getfacl和setfacl作为名字的喃喃自语。并且有传言说微软和 IBM 的 OS/2 版本 3 最终可能会以命名命令cacls和xcacls查看 ACL 的方式结束,这将比他们的“新技术”操作系统更好getfacl,因为他们会不会出现他们通过一个3位Unix镜头而是如何,他们真的是在他们所有的标准具体和权利 drctpoxfew二者,对帐户和-机名荣耀。
这个想法一定会像野火一样流行,在 Unix 世界中,每个人都肯定会在 1990 年代成为其中的一部分。很可能在 20 年后,九位权限将显得过时和过时,ACL 将成为常态,即使仍然查看九个权限标志的混蛋也会知道它们。☺