Cygwin Shellを初めて起動したときは、Windowsのユーザーとしてログインしています。 CygwinユーザーとWindowsユーザーの既存のcygwin関連付けを残して、そのユーザーのユーザー名のみをどのように変更しますか? (つまり、まったく新しいWindowsアカウントを作成せずに)
どうして?私は仮想マシンからCygwinに移動しただけで、特定のユーザー名(.ssh/config、.Subversionなど)を想定したすべてのスクリプトとシェルのカスタマイズを変更せずに再利用したいと考えています。
私の元のユーザー名は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
)
クリーンな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ユーザーを変更します。
これは、他の2つの答えの要素を組み合わせたWindows 10で機能したものです。
他の回答とは異なり、これは私のために働いたものです(Windows 10上で):
rm /etc/passwd
mkpasswd -c > /etc/passwd
ln -s /home/oldname /home/newname