このブログを検索

ラベル cygwin の投稿を表示しています。 すべての投稿を表示
ラベル cygwin の投稿を表示しています。 すべての投稿を表示

2012/02/22

privileged server

windows7にcygwinをインストールし、syslog-ng, xinetd(tftpd)をインストールしたら、privileged serverとかいうアカウントができて何かするときにそのパスワードを求められるようになってしまい、cygwinのterminalが起動しなくなってしまった。 わけがわからなくなったのでcygwinをアンインストールしようとして苦労した。

まずアンインストーラーはない。 登録したサービスを削除したいのだがターミナルが起動しない。 コマンドプロンプトからc:\cygwin\binへ移動したらcygrunsrvが打てたのでそれでサービスを消す。 そしてフォルダを削除しようとしたのだが、これがまたできない。 インストールしたユーザで消そうとすれば管理者権限が必要と言われ、 administratorで消そうとすればユーザのアクセス許可が必要といわれる。 フォルダのプロパティから、administratorで、everyoneフルコントロールにしてもだめだ。 消せるフォルダと消せないフォルダがある。

しかたないので消せないフォルダがあったらそこへ移動し、icaclsやtakeownコマンドを使って所有者や属性を変えて消していった・・・・ administratorは何でもできるんじゃないのか・・・

レジストリや環境変数でcygwinがらみのものを消す。 環境変数にはパスなどがなかったが(これがまずかったのか)、確認していて PROCESSOR_ARCHITECTUREという変数に AMD64という値があるのに気づいた。 CPUはIntelの Core i3である。 なんでAMDなんだよと驚いたが、 たしか64bit CPUはAMDがintelに先んじてintelはAMDの使用を拡張する形で64bit化をおこなったのだと昔聞いたことを思い出した。

windows7のadministratorアカウントは無効にされていて、 有効にするにはGUIではなくコマンドが必要のようだ。 さっき調べて打ったのだがなんだったか忘れた。tftpサーバとsyslogサーバは、

http://tftpd32.jounin.net/

がおすすめ。 cygwinはめんどい。

net user administrator /active:no


無効にする。 cmd.exe を「管理者として実行」して。 ・・・・と、「管理者で実行」をするとダイアログが出たときに「はい」が押せなくなってしまった。管理者権限を必要とすることが一切できなくなった。 OSのディスクを使ってadministratorを無効にする前の状態に戻す。 そしてadministratorでログインして、いつも使っていたアカウントを「管理者アカウント」にしてから、

net user administrator /atcive:no


を実行する。 普段は通常アカウントで管理者権限は必要なときだけ使う、という今までの状態にはどうやってもどすのかわからない。とりあえずこれで使おう。

なんか釈然としないけど・・・。

2012/02/09

Windows7でsyslogサーバ




Thu Feb 9 19:19:25 2012

ついでなのでWindows7でsyslogサーバを使用する方法を書いておく。

1.windows用のsyslogサーバをインストールする
2.cygwinを使う
3.virtual pc等を使用してlinuxを入れてsyslogを設定する

2.が一番簡単かつ汎用性がありそうなので2.をやってみる。

cygwinでは、syslog-ng というデーモンが使える。
ただのsyslogは無いようだ。ngとはnext generationの略らしい。

cygwinのセットアップで Adminの中にある。
ちなみに左上に検索窓があるのでsyslogと入れると探せる。

それから cygrunsrvという、サーバを操作するコマンドがあるのでこれも入れておく。

cygwinを起動して

# syslog-ng-config 

を実行すると何か聞かれるので yes と答える。

その後、サービスを起動する。

cygrunsrv -S syslog-ng

この時、cygwinを「管理者として実行」していないと、以下のエラーになる。

cygrunsrv: Error starting a service: OpenService: Win32 error 5:
アクセスが拒否されました。

管理者として実行してサーバを起動する。
/var/log/messages に、syslog-ngが起動したというメッセージが記録されるはず。

この状態では、ネットワーク経由のログを受信できない。
もしWindowsのファイアウォールを有効にしていたら、無効にするか、udp 514を許可する。

そして、/etc/syslog-ng/syslog-ng.conf で、ネットワークからの受信を許可する行がコメントアウトされて無効になっているので、コメントを取る。

# uncomment this line to open port 514 to receive messages
#source(s_network);

サービスを停止し再起動する。

Thu Feb 9 19:22:35 2012

今日初めて知ったのだが、「管理者として実行」は、ショートカットのプロパティを開いて「互換性」のところで「管理者としてこのプログラムを実行する」という設定がある。