web-dev-qa-db-ja.com

cygwinユーザー名の変更/変更

Cygwin Shellを初めて起動したときは、Windowsのユーザーとしてログインしています。 CygwinユーザーとWindowsユーザーの既存のcygwin関連付けを残して、そのユーザーのユーザー名のみをどのように変更しますか? (つまり、まったく新しいWindowsアカウントを作成せずに)

どうして?私は仮想マシンからCygwinに移動しただけで、特定のユーザー名(.ssh/config、.Subversionなど)を想定したすべてのスクリプトとシェルのカスタマイズを変更せずに再利用したいと考えています。

18
Irfy

私の元のユーザー名はroot(Windowsでは皮肉にも)で、someuserにしたかったのです。ホームディレクトリも/home/someuserにして、Windowsから読み取れるようにしたいのですが。

これは私がやったことです:

cd /home
mv root someuser
ln -s someuser root
sed -e 's/^root/someuser/' -e 's/\/home\/root/\/home\/user/' -i /etc/passwd

シェルを再起動するだけです。

何らかの理由でCygwinが/etc/passwdを更新し、ユーザー名をrootに、ホームディレクトリを/home/rootに復元した場合に備えて、シンボリックリンクを作成しました。これにより、引き続きログインできます。

onlyにユーザー名を変更:sed -e 's/^root/someuser/' -i /etc/passwd

5
Irfy

クリーンなCygwinのインストールから始める人々にとって、アプローチは新しい/etc/passwdファイル(現在のCygwinバージョンではデフォルトでは存在しません)mkpasswd -l >/etc/passwdすべてのユーザーのエントリを作成します(追加-b組み込みユーザーを省略するか、単に-c現在のユーザーのエントリのみを作成するには、 https://cygwin.com/cygwin-ug-net/mkpasswd.html を参照してください。

次に、単に/etc/passwdそこにあるアカウントの名前を変更します(最初の列)。

Cygwinが「Cygwin」とWindowsユーザーの間のマッピングを処理する方法については、 https://cygwin.com/cygwin-ug-net/ntsec.html を参照してください。ああ、同様に使用できるmkgroupもあります。 https://cygwin.com/cygwin-ug-net/mkgroup.html を参照してください。

作成は公式には推奨されていませんが、私の経験からは問題は発生していません。ユーザー/グループの権限を含む非常に高度な処理を行う場合や、最新の状態にしていない場合に発生する可能性があります。 Windowsユーザーを変更します。

16
phk

これは、他の2つの答えの要素を組み合わせたWindows 10で機能したものです。

  1. Cygwin/etc/passwdが存在しないことを確認します
  2. cd/home
  3. mv oldname newname
  4. ln -s newname oldname
  5. "mkpasswd -l>/etc/passwd"(これにより、多くのアカウントが新しい/ etc/passwdに挿入されます)
  6. / etc/passwdを編集してoldnameエントリを見つけ、その1行のエントリの3つの場所で「oldname」を「newname」に変更します。
  7. すべてのcygwinシェルを殺す
  8. 新しいcygwinシェルを起動します
3
FormerAtariUser

他の回答とは異なり、これは私のために働いたものです(Windows 10上で):

  1. rm /etc/passwd
  2. mkpasswd -c > /etc/passwd
  3. ln -s /home/oldname /home/newname
  4. / etc/passwdを編集してoldnameをnewnameに置き換えます
0
gromit190