在 cygwin 中运行 sshd:“/var/empty 必须由 root 拥有...”

在 cygwin 中运行 sshd:“/var/empty 必须由 root 拥有...”

我在 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/可能会很有用。

相关内容