Windows8 + cygwin + sshd
<Win8でSSHDが機能しない>
Windows8にCygwinを入れたがしばらくSSHDが機能していなかった。
それが今日やっとうまくいったのでメモメモ。
Windows8は権限やら認証やらXPとはちょっと違っているようなので
次の注意を要する。
<動かなかった原因>
CYGWINのinitをサービスとして起動しているが、
デフォルトでユーザSYSTEMで起動している。しかし、SYSTEMユーザは
Windows8ではsetruuidの権限がなかった。
(実行ユーザをSSHログインユーザとして実行する権限)
<対策>
権限のあるrootユーザを作成して対応する。
まずは、
rootユーザを用意する。
net user root xxxxxxxx /add /fullname:"cygwin daemon"
Administratorsグループに追加
net localgroup Administrators root /add
以下の権限を付与(editrights -a SeAssignPrimaryTokenPrivilege -u root)
$ editrights -l -u root
SeAssignPrimaryTokenPrivilege
SeIncreaseQuotaPrivilege
SeCreateTokenPrivilege
SeServiceLogonRight
SeDenyInteractiveLogonRight
SeDenyNetworkLogonRight
SeDenyRemoteInteractiveLogonRight
パスワードファイル、グループファイルの更新
mkgroup -l > ..\etc\group
mkpasswd -l > ..\etc\passwd
/varのファイルのオーナーとグループを設定
chmod -R root:Addministrators /var
CYGWINのinitのサービスのアカウントをSYSTEMからrootに変更
コンピュータの管理→サービス→CYGWIN init
これをダブルクリックして、「ログオン」タブでアカウントにrootを設定する。
これでinitを停止/開始すればSSHDが機能しだす。
以上
Windows8にCygwinを入れたがしばらくSSHDが機能していなかった。
それが今日やっとうまくいったのでメモメモ。
Windows8は権限やら認証やらXPとはちょっと違っているようなので
次の注意を要する。
<動かなかった原因>
CYGWINのinitをサービスとして起動しているが、
デフォルトでユーザSYSTEMで起動している。しかし、SYSTEMユーザは
Windows8ではsetruuidの権限がなかった。
(実行ユーザをSSHログインユーザとして実行する権限)
<対策>
権限のあるrootユーザを作成して対応する。
まずは、
rootユーザを用意する。
net user root xxxxxxxx /add /fullname:"cygwin daemon"
Administratorsグループに追加
net localgroup Administrators root /add
以下の権限を付与(editrights -a SeAssignPrimaryTokenPrivilege -u root)
$ editrights -l -u root
SeAssignPrimaryTokenPrivilege
SeIncreaseQuotaPrivilege
SeCreateTokenPrivilege
SeServiceLogonRight
SeDenyInteractiveLogonRight
SeDenyNetworkLogonRight
SeDenyRemoteInteractiveLogonRight
パスワードファイル、グループファイルの更新
mkgroup -l > ..\etc\group
mkpasswd -l > ..\etc\passwd
/varのファイルのオーナーとグループを設定
chmod -R root:Addministrators /var
CYGWINのinitのサービスのアカウントをSYSTEMからrootに変更
コンピュータの管理→サービス→CYGWIN init
これをダブルクリックして、「ログオン」タブでアカウントにrootを設定する。
これでinitを停止/開始すればSSHDが機能しだす。
以上