2014年11月29日土曜日

[Cygwin]Your group is currently "mkpasswd".

Cygwin がインストールしている Windows マシンに新しいユーザーを作って Cygwin を起動したらこんなエラーが出てきました。
メッセージ Your group is currently "mkpasswd".  This indicates that your gid is not in /etc/group and your uid is not in /etc/passwd.

The /etc/passwd (and possibly /etc/group) files should be rebuilt.
See the man pages for mkpasswd and mkgroup then, for example, run

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

Note that the -d switch is necessary for domain users.
[/home/admin] $

ユーザー情報を見てみます。
[/home/admin] $ id
uid=400(admin) gid=401(mkpasswd) groups=401(mkpasswd),545(Users),513(None)
[/home/admin] $
[/home/admin] $ grep 'admin' /etc/passwd
[/home/admin] $
[/home/admin] $ cat /etc/passwd
・・・(以下略)・・・
OS のユーザー名は admin なんですが、Cygwin の passwd ファイルに admin アカウントはいないですね。
passwd ファイルで所属グループを見つけますから、グループが割り当てできなくて暫定的に mkpasswd グループに割り当てられたということですね。

画面のメッセージで指示された通り、パスワードファイルのリビルドをしようと思います。

[画面のメッセージ内容]
mkpasswd -l [-d] > /etc/passwd

コマンドの意味を確認します。
[/home/admin] $ mkpasswd -h
Usage: mkpasswd [OPTIONS]...

Print /etc/passwd file to stdout

Options:

   -l,--local [machine[,offset]]
                           print local user accounts with uid offset offset
                           (from local machine if no machine specified)
   -L,--Local [machine[,offset]]
                           ditto, but generate username with machine prefix
   -d,--domain [domain[,offset]]
                           print domain accounts with uid offset offset
                           (from current domain if no domain specified)
   -D,--Domain [domain[,offset]]
                           ditto, but generate username with domain prefix
・・・(以下略)・・・
/etc/passwd ファイルを標準出力(stdout)へ表示すると書かれています。
引数 -l はリスト表示かと思いましたが -l がローカル -d がドメインのアカウントを表示するという意味ですね。

ではコマンドの結果を見てみます。
[/home/admin] $ mkpasswd -l
SYSTEM:*:18:544:,S-1-5-18::
LocalService:*:19:544:U-NT AUTHORITY\LocalService,S-1-5-19::
NetworkService:*:20:544:U-NT AUTHORITY\NetworkService,S-1-5-20::
Administrators:*:544:544:,S-1-5-32-544::
TrustedInstaller:*:4294967294:4294967294:U-NT SERVICE\TrustedInstaller,S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464::
admin:unused:1010:513:admin,U-VMPC\admin,S-1-5-21-1891986265-1378673470-2637152242-1010:/home/admin:/bin/bash
Administrator:unused:500:513:U-VMPC\Administrator,S-1-5-21-1891986265-1378673470-2637152242-500:/home/Administrator:/bin/bash
・・・(以下略)・・・
admin アカウントの内容も表示されています。

/etc/passwd ファイルと mkpasswd コマンドの出力結果を見比べます。
[/home/admin] $ mkpasswd  -l  >  /etc/passwd.new
[/home/admin] $ diff  /etc/passwd  /etc/passwd.new
5a6
> admin:unused:1010:513:admin,U-VMPC\admin,S-1-5-21-1891986265-1378673470-2637152242-1010:/home/admin:/bin/bash
[/home/admin] $
/etc/passwd ファイルには admin アカウントが足りないです。

では追加します。
[/home/admin] $ mv  /etc/passwd.new  /etc/passwd
[/home/admin] $
[/home/admin] $ exit

再度 Cygwin を起動すると、エラーメッセージは消えていました。

もしこれで解決しない場合には、group ファイルのリビルドも必要になりそうですね。
※mkgroup コマンドの出力を /etc/group ファイルへリダイレクト。

/etc/passwd ファイルを編集していた場合には再設定が必要ですね。
※ Windowsのログインアカウントとは別のアカウント名で利用する など

Cygwin のページに戻る

0 件のコメント:

コメントを投稿