22

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

なんで?仮想マシンから Cygwin に移行したばかりで、特定のユーザー名 (.ssh/config、.subversion など) を前提とするすべてのスクリプトとシェルのカスタマイズを変更せずに再利用したいと考えています。

4

4 に答える 4

24

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同様に使用できるa もあります。 https://cygwin.com/cygwin-ug-net/mkgroup.htmlを参照してください。

作成は公式に推奨されていないことがわかりますが、私の経験では問題は発生していません。おそらく、ユーザー/グループ権限を含む非常に高度な作業を行った場合、または作成時に最新の状態に保っていなかった場合に発生する可能性があります。 Windows ユーザーを変更します。

于 2016-02-20T19:49:07.917 に答える
8

私の元のユーザー名は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

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

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

(ユーザー名のみsed -e 's/^root/someuser/' -i /etc/passwdを変更するには: )

于 2013-10-27T01:17:36.130 に答える