Win2kでcygwin1005.9.0.0を使用しています。
$ ps ax
PID PPID PGID WINPID TTY UID STIME COMMAND
2896 1 2896 2896 con 1000 15:54:05 /usr/bin/bash
I 2776 1 2776 2776 con 1000 16:57:24 /usr/bin/bash
I 1572 3352 1572 2312 0 1000 17:20:35 /usr/bin/bash
1804 2896 1804 2928 con 1000 17:23:05 /usr/bin/ps
$ cygrunsrv -S sshd
cygrunsrv: Error starting a service: QueryServiceStatus: Win32 error 1062:
そのサービスを開始できませんでした。
[(ローカルコンピュータ)CYGWIN sshdのプロパティ]で
[開始(S)]をクリックしてしたら
「ローカルコンピュータのCYGWIN sshdを開始できません。エラー1067:プロセスを途
中で強制終了しました。」
となってしまいます。
システム環境変数(S)には
C:\cygwin\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;
C:\masm32\bin;C:\masm32\lsic330c\BIN;C:\cygwin\old_borland\bcc55\Bin;c:\ptex
\bin;.\;C:\cygwin\gcc\GDS2K1~1\gds2k\BIN
となっています。
$ cp cygwin1.dll /sbin/cygwin1.dll
としましたがエラーは解消されません。
$ tail -f /var/log/sshd.log
:
Missing privilege separation directory: /var/empty
出てましたので
$ mkdir /var/empty
とすると
$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.
$ ls -l /var/ | grep empty
drwxr-xr-x+ 2 root なし 0 Nov 8 17:34 empty
$ chmod 777 /var/empty
$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty
とすると
$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.
更には
$ chown SYSTEM /var/empty
$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 SYSTEM なし 0 Nov 8 17:34 empty
とすると
$ ls -l /var/ | grep empty
drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty
$ tail -f /var/log/sshd.log
/var/empty must be owned by root and not group or world-writable.
となってしまいます。
どうすれば起動出来るのでしょうか?
In article <cmnir9$m34$1...@caraway.media.kyoto-u.ac.jp>
"KMochida" <kaor...@plum.freemail.ne.jp> writes:
> Win2kでcygwin1005.9.0.0を使用しています。
> $ mkdir /var/empty
> とすると
> $ tail -f /var/log/sshd.log
> /var/empty must be owned by root and not group or world-writable.
> $ ls -l /var/ | grep empty
> drwxrwxrwx+ 2 root なし 0 Nov 8 17:34 empty
このメッセージとこのモードの問題だとすると、次のようにすると
直るかもしれません。
chmod 700 /var/empty
あと、ls ですが、-d オプションをつけるといいですよ。
ls -ld /var/empty
試してみてください。
/var/empty は、privilege separation の話ですね。内部的に、
fork して cd /var/empty して setuid から、ネットワークからの
データを読込んで認証するやつ。Cygwin でどのくらい効くんでしょ
うか。
Cygwin でもし効かないなら、mkdir /var/empty でなくて、
privilege separation を切ってもいいかもしれません。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
% uname -r
1.5.11(0.116/4/2)
% ls -ld /var/empty
drwxr-xr-x+ 2 SYSTEM Administ 0 Oct 28 2003 /var/empty
% ls -l /var/log/sshd.log
-rw-r--r-- 1 SYSTEM Administ 0 Oct 28 2003 /var/log/sshd.log
% printenv CYGWIN
ntsec server error_start=dumper
% cygrunsrv --query sshd
Service sshd exists
Type : Own Process
Current State : Running
Controls Accepted : Accept Stop
ってな具合になってます。
Cygwin の場合,sshd の設定は /usr/bin/ssh-host-config というシェル
スクリプトでもって対話的に行います。ssh-host-config の質問の答え方は
それこそ Google で漁ればいろいろ情報を見つけられると思います。
原因調査が面倒であれば,ssh-host-config が作るファイル・ディレクトリ
を全部消して(或いはどこかへ退避させて),Windows のサービスの登録も消
して(cygrunsrv --remove sshd),再度 ssh-host-config を実行してみて
はいかがでしょうか。
余力があれば,ssh-host-config の中身と PC の環境設定を比較してみれば
怪しげな箇所など判るかもしれませんが…
--
江原 純一 j-e...@pop17.odn.ne.jp
> このメッセージとこのモードの問題だとすると、次のようにすると
> 直るかもしれません。
> chmod 700 /var/empty
これで上手くいきました。
$ uname -r
1.5.11(0.116/4/2)
$ chmod 700 /var/empty
$ ls -ld /var/empty
drwx------+ 2 SYSTEM なし 0 Nov 8 17:34 /var/empty
$ cygrunsrv -S sshd
$ cygrunsrv -Q sshd
Service sshd exists
Type : Own Process
Current State : Running
Controls Accepted : Accept Stop
として起動出来ました。\(^o^)/
> あと、ls ですが、-d オプションをつけるといいですよ。
> ls -ld /var/empty
> 試してみてください。
ディレクトリ自体の属性の表示ですね。