我在 Windows 7 系统上安装了 OpenSSH,这样我就可以从 Arch 机器将 VNC 隧道连接到它。但是,当我/usr/sbin/sshd -D
在W7机器上运行时,出现错误:/var/empty must be owned by root and not group or world-writable.
这是以下的输出ls -All /var
:
$ ls -All /var
total 0
drwxr-xr-x+ 1 {my_usrnm} None 0 Jul 15 21:39 cache
drw-------+ 1 cyg_server Administrators 0 Jul 15 21:43 empty
drwxr-xr-x+ 1 {my_usrnm} None 0 Jul 15 21:39 lib
drwxrwxrwt+ 1 {my_usrnm} None 0 Jul 15 21:45 log
drwxrwxrwt+ 1 {my_usrnm} None 0 Jul 15 23:36 run
drwxrwxrwt+ 1 {my_usrnm} None 0 Jul 15 21:39 tmp
我已经尝试了一些权限修复,并重新启动并重新安装了 OpenSSH(通过运行ssh-host-config
)至少 10 次,但没有任何解决办法。
我该如何修复这个错误?谢谢!
答案1
目录所有者和权限正确。在配置期间使用 PrivilegeSeparation 选项。
启动恶魔作为服务
cygrunsrv -S sshd
功能系统上的目录权限示例
$ icacls $(cygpath -w /var/empty)
E:\cygwin64\var\empty NULL SID:(DENY)(Rc,S,REA,X,DC)
MATZERI\cyg_server:(F)
BUILTIN\Administrators:(RX)
NT AUTHORITY\SYSTEM:(RX)
BUILTIN\Administrators:(RX)
Everyone:(RX)
CREATOR OWNER:(OI)(CI)(IO)(F)
CREATOR GROUP:(OI)(CI)(IO)(RX)
Everyone:(OI)(CI)(IO)(RX)
Successfully processed 1 files; Failed processing 0 files
它们以 cygwin 方式报告为
$ getfacl /var/empty
# file: /var/empty
# owner: cyg_server
# group: Administrators
user::rwx
group::r-x
group:SYSTEM:r-x
group:Administrators:r-x
mask:r-x
other:r-x
default:user::rwx
default:group::r-x
default:other:r-x
如果存在虚假的额外 ACL 权限,则使用setfacl -b /var/empty/
可能会很有用。