Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)

No.1799  HOME = /cygdrive/c の原因
発言者: nil
発言日: 2003 12/16 12:17
 
興味の無い方は参考にされなくてよいですが、念の為にまとめ。
まだいろいろと理解が十分でないまま繰り返しているような気がするので…

(find の件に関しては、permission や ACLやら気になることもありますが、力のある人が strace やら自前で findを debugしないと現象を追えないかも)

ちょっと論理的に筋道を追えばはっきりするのですが、少なくとも、/etc/passwd で /cygdrive/c となる問題と、find は、*直接には*関係ないはずです。また、サービスを登録したのが /cygdrive/c になる*直接の*原因でもありません。


まず、Admin. でインストールした時点(/etc/postinstall/passwd-grp.sh)では、/etc/passwd にはアカウント tanom は無かったと思われます。
mkpasswd -l でもわかるようにローカルユーザに tanom を作っていないので。
(注意: /etc/passwd にアカウントが無くても Cygwinの実行などは可能)

(ドメインユーザである tanom(U-DWH2000\tanom) のアカウントは、その後、Windowsユーザ tanomで作業している時に、手動(mkpasswd)か base-passwd パッケージを再インストールした時などに作られたのでしょう)

ご自身でインストール直後の状態の情報を挙げられてますが(#1671)、この状態ですでに /etc/passwd 上では HOME = /cygdrive/c になってしまう条件ができているので、/etc/passwd 上では(手動で訂正しなかれば)一度も正しい HOME を指したことはなかったでしょう。

[ドメインユーザであれば、mkpasswd は HOMEDRIVE, HOMEPATH の値を参照する状況があります。(#1781; src. を見てもわかりますが、ドメインユーザで無い人も、次で雰囲気はつかめるでしょう)
env USERDOMAIN=nodom HOMEDRIVE=X: HOMEPATH='\nowhere' mkpasswd -l -c
env USERDOMAIN=nodom mkgroup -l -c
]

インストール以降、通常の利用時に異常に気がつかなかったのは、Windows側の環境設定で強制的に HOMEを設定している為です。

故に、telnet, ssh など、Windows側 HOMEの環境設定の影響を受けない loginをした時に初めて、/etc/passwd の指定どおりの HOME の設定があらわになったに過ぎません。

自分で /cygdrive/c にしたのではなくても、Cygwin側から見れば当然そうなるように、Windows 側の環境変数が設定されてしまっているわけです。

おそらく現在でも、mkpasswd -d あるいは mkpasswd -l -c の出力が /cygdrive/c になるのはすぐに確認できるでしょう。(途中で設定を変更していない、として)
そういった点を確認できない限りは再インストールしても同じ状況になるでしょうし報告も意味が薄いでしょう。


#1717
|ユーザーとパスワードを見るとこんな風になってました。
|ユーザー名, ドメイン, グループ
|----------------------------------------
|Administrator,hogehoge777, Administrators
|Guest, hogehoge777, Guests
|sshd, hogehoge777, Guests
|tanom, hogehoge2000,Administrators

#1761
|「ローカル ユーザーとグループ」の
|「ユーザー」ビュー
|:Administrator
|:Guest(×がついてる)

#1671 (抜粋。再定義されていないかどうかは不明)
|再インスト直後の環境変数をコピペしておきます。
|tanom@DWH_NTWS777 ~
|$ set
|HOME=/home/tanom
|HOMEDRIVE=C:
|HOMEPATH='\'
|HOSTNAME=DWH_NTWS777
|LOGONSERVER='\\DWH_NTSV02'
|USER=tanom
|USERDOMAIN=DWH2000
|USERNAME=tanom
|USERPROFILE='C:\Documents and Settings\tanom'

#1722
|Windows側システム環境変数homeは当然ながらずっと"/home/tanom"にしてました。

#1692
|Windows側システムプロパティの環境変数(CYGWIN、HOME)は削除しないで再イン
|ストしてました。

#1768
|今度は、自分のユーザー名 tanom や sshd が見えなくなりました。

|$ mkpasswd -l
|SYSTEM:*:18:544:,S-1-5-18::
|Administrators:*:544:544:,S-1-5-32-544::
|Administrator:unused_by_nt/2000/xp:500:513:U-DWH_NTWS777\Administrator,...
|Guest:unused_by_nt/2000/xp:501:513:U-DWH_NTWS777\Guest,...

|$ cat /etc/passwd

|tanom:unused_by_nt/2000/xp:11110:10513:tanom,U-DWH2000\tanom,...


▼関連発言

1780:No.1779 " Administratorsグループでインストしたのです&quo [MSだす。] 12/12
 ├1781:Re:No.1779 " Administratorsグループでインストしたのです [nil] 12/12
 ├1782:Re:No.1779 " Administratorsグループでインストしたのです [nil] 12/12
 │├1783:最初にinetdやsshをサービス登録した時を境にして、$ find / - [田野@ま] 12/13
 │└1799:HOME = /cygdrive/c の原因 [nil] 12/16
 ├1788:サービス削除せずにAdministratorで再インストしてしまった [田野@ま] 12/15
 │├1789:再インスト後、Administrator@ローカルで削除コマンドでコンパ [田野@ま] 12/15
 ││└1791:/usr/bin/find ./.. changed during … [MSだす。] 12/15
 │└1790:正しくは「コンパネのサービスに『CYGWIN hoged』が残ったまま [田野@ま] 12/15
 └1803:ドメインユーザー(ローカル側Admin権限、ドメイン側Domain Users [田野@ま] 12/19
  ├1804:一部訂正:ドメインユーザー(ローカル側Admin権限、ドメイン側D [田野@ま] 12/19
  └1805:Cygwinでgroups=…に513(none)を追加する方法を教えて下さい。 [田野@ま] 12/22 <

Pass 保存

早田のホームページへ
CGIROOM