Cygwin SSH的目录权限(Windows 7)

时间:2010-01-29 03:26:32

标签: windows-7 permissions ssh cygwin openssh

我是Linux的粉丝,但由于Linux中的英特尔无线驱动程序不好,我不得不切换到Windows 7.我在Windows中安装了Cygwin,并希望配置SSH以远程连接到我的笔记本电脑。

我使用Google搜索并找到information for installing openssh server on Win 7,但在运行ssh-host-config时出现以下错误:

bala@bala-PC ~
$ ssh-host-config
yes
*** Info: Creating default /etc/ssh_config file
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/READ
ME.privsep.
*** Query: Should privilege separation be used? (yes/no) no
*** Info: Updating /etc/sshd_config file

*** Warning: The following functions require administrator privileges!

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []
*** Info: On Windows Server 2003, Windows Vista, and above, the
*** Info: SYSTEM account cannot setuid to other users -- a capability
*** Info: sshd requires.  You need to have or to create a privileged
*** Info: account.  This script will help you do so.

*** Warning: The owner and the Administrators need
*** Warning: to have .w. permission to /var/run.
*** Warning: Here are the current permissions and ACLS:
*** Warning:     drwxr-xr-x 1 bala None 0 2010-01-17 22:34 /var/run
*** Warning:     # file: /var/run
*** Warning:     # owner: bala
*** Warning:     # group: None
*** Warning:     user::rwx
*** Warning:     group::r-x
*** Warning:     other:r-x
*** Warning:     mask:rwx
*** Warning:
*** Warning: Please change the user and/or group ownership,
*** Warning: permissions, or ACLs of /var/run.

*** ERROR: Problem with /var/run directory. Exiting.

此文件夹的权限显示为只读(仅适用于此文件夹),灰色检查。我试图取消选中但在我再次打开属性后,再次检查该框。有没有办法更改此文件夹的权限?

9 个答案:

答案 0 :(得分:8)

很抱歉打破这么老的帖子,但是当我搜索这个特定的问题时,这个问题总是出现。

几个月后,我终于找到了解决方案。当我设置cygwin时,我没有在cygwin中正确创建我的用户和组帐户。执行此操作的主要方法是运行:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

如果您使用域用户和passwd登录,则可以执行以下操作:

mkpasswd -l -d > /etc/passwd 
mkgroup -l -d > /etc/group

或者,如果你有一个像我一样非常大的网络,你可能不会那么想。另一种方法是只使用您的本地用户和组加上您当前登录的任何一个:

mkpasswd -l > /etc/passwd
mkpasswd -c >> /etc/passwd
mkgroup -l > /etc/group
mkgroup -c >> /etc/group

在我这样做之后,我终于能够正确运行ssh-host-config来创建服务。

答案 1 :(得分:5)

我在Windows 7 x64和sshd上运行cygwin 1.7。我不记得在运行sshd_config时遇到此错误,但我只是查看了我的/ var / run目录,并将其设置为777.

在cygwin shell中chmod 777 /var/run

尝试此操作

答案 2 :(得分:4)

我自己也遇到了很多麻烦。我发现默认安装步骤可以正常工作,前提是我:

  1. 使用“以管理员身份运行”选项启动Cygwin shell作为管理用户。
  2. 禁用UAC。
  3. 禁用实时病毒防护。
  4. 完成这些步骤后,默认安装步骤为:

    1. 从Cygwin安装程序安装“openssh”。
    2. 使用“以管理员身份运行”选项启动Cygwin shell作为管理用户。
    3. 从Cygwin shell运行“ssh-host-config”。
    4. 特权分离:是
    5. 新本地帐户“sshd”:是
    6. 将sshd安装为服务:是
    7. CYGWIN值:ntsec tty
    8. “cyg_server”的不同名称:no
    9. 创建新的特权用户帐户“cyg_server”:是
    10. 设置“cyg_server”密码并保存在安全的地方
    11. net start sshd
    12. 之后,Windows 7 Professional和Home都可以正常运行。

      如果您已经安装了失败的Cygwin sshd,最好是进行完全卸载并重新开始。

      如果您需要,请参阅以下Cygwin卸载说明:http://cygwin.com/faq/faq.html#faq.setup.uninstall-all

答案 3 :(得分:3)

我首先要删除已损坏的安装:

cygrunsrv --remove sshd
rm -rf /var/log/sshd* /etc/ssh_host* /etc/sshd_config /var/empty

然后生成passwd&如上所述的小组:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

然后我跑了:

ssh-host-config -y
cygrunsrv --start sshd

最后,“setuid failed”消息消失,登录工作。

答案 4 :(得分:2)

在cygwin shell中,请确保您是管理员:

takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"

答案 5 :(得分:1)

在Windows资源管理器中,对于文件夹/var

  

属性。
  安全。
  添加具有完全控制权限的组管理员   文件夹和子文件夹。

它对我有用。

答案 6 :(得分:0)

当我在类型为NTFS的硬盘驱动器上安装Cygwin时,我只能成功运行ssh-host-config脚本。当我在exFAT类型的闪存驱动器上安装了Cygwin时,ssh-host-config脚本无效。

答案 7 :(得分:0)

我遇到了同样的问题。我相信,我的问题是因为我有一个自定义/ etc / fstab文件,我在那里用" noacl"安装根文件夹。选项。以下是我解决问题的方法:

  1. 将自定义/ etc / fstab移开:

     mv /etc/fstab /etc/fstab.bak
    

    或者,您可以编辑/ etc / fstab文件并删除noacl选项。

  2. 关闭所有Cygwin bash窗口和任何其他Cygwin进程或服务。如果您正在运行任何Cygwin进程,它将使用旧的/ etc / fstab设置保持挂载。

  3. 启动一个新的Cygwin bash窗口。

  4. 您可能需要运行以下命令。

    chmod +r /etc/passwd
    chmod o+x /var
    chmod +w /var/run
    
  5. 用手指交叉,运行ssh-host-config,它现在应该没有错误地完成。

  6. 如果您在步骤1中移动了/ etc / fstab,则可以立即将其移回:

     mv /etc/fstab.bak /etc/fstab
    
  7. 如果您在首次安装Cygwin后创建了新用户,请更新/ etc / passwd,否则这些用户可能无法通过ssh登录:

    mkpasswd -l > /etc/passwd
    
  8. 此外,转到Windows防火墙,并允许C:/cygwin/usr/sbin/sshd.exe和C:/cygwin/usr/sbin/sftp-server.exe

答案 8 :(得分:0)

for windows用户运行" Cygwin终端"右键单击快捷方式并以管理员 .... enter image description here

运行

现在运行" ssh-host-config "来自Cygwin终端......一定会有用。