Cygwin をインストールしましたが、操作がうまくいきません。たとえば、peter がホーム ディレクトリとシェルを独自に設定している場合に、'su peter' を実行できる機能が欲しいです。セキュリティについては気にしていません。これらの「ユーザー アカウント」が Windows のメカニズムに表示される必要はありません。
私の努力は行き詰まっています。/etc/passwd で「パスワード不要」を設定する方法がわかりません。「su」を実行すると、コマンドが見つかりませんというメッセージが表示されます。
(ちなみに、数年前に別のマシンに Cygwin をインストールしましたが、問題はありませんでした。最近の「改善」と格闘しているのでしょうか?)
質問を明確にさせてください。/etc/passwd の機能は次のとおりです。 * ホーム ディレクトリを割り当てます。george と peter に別のディレクトリを割り当てます。george と peter が互いのファイルを変更できるかどうかは気にしません。 * george が peter とは異なるシェルを使用できるようにします。起動されるシェルごとに、george が ** tcsh ** cd /home/george ** source .cshrc と入力する必要がないようにしたいです。 これを実現する簡単な方法はありますか? Windows の機能には、優先 Cygwin シェルの概念さえありますか?
答え1
セキュリティは気にしません。
これらの「ユーザー アカウント」が Windows のメカニズムに表示される必要はありません。
すべての Cygwin ユーザーには、対応する Windows ユーザーが必要です。
Cygwin に新しいユーザーを追加するにはどうすればよいですか?
- Windowsユーザーを作成する
- Windows でユーザーを作成します (スタート > コントロール パネル > ユーザー アカウントの管理 > 追加...)
- 対応するCygwinユーザーを作成する
次のコマンドを実行します。
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group
これにより、Cygwin ユーザーとグループが Windows ユーザー アカウントと同期されます。
ドメインにいる場合は、
-d
代わりに-l
- ユーザーのシェルを設定する
/etc/passwd
(プレーンテキストファイル)を変更して、ユーザーのデフォルトシェルを適切に変更します。ファイルの形式は次のとおりです。
Username:Password:UID:GID:Info:Home:Shell
- 必要に応じてユーザーのホームディレクトリの権限を変更します。
「パスワード不要」を設定する方法がわかりません
セキュリティをまったく気にせず、パスワードを必要としない場合は、以下を使用します。
password -p username
ドキュメントよりpasswd
:
概要
passwd [OPTION] [USER]
オプション
...
-p, --pwd-not-required
USERにはパスワードは必要ありません。
ソースパスワード
最近の「改善」と戦っているのでしょうか?
Cygwin バージョン 1.7.34 以降では、/etc/passwd
ユーザー アカウントの管理にデフォルトでは使用されなくなりました。
存在する場合は
/etc/passwd
使用されますが、既存のインストールと特別な状況に対応するためだけに使用されます。
バージョン 1.7.34 以降、Cygwin はネイティブの Windows ユーザー管理を使用します。
- Active Directoryが利用可能な場合、
- それ以外の場合はSAM。
ユーザー アカウントを管理するには、次の方法ではなく新しいメカニズムを使用する必要があります/etc/passwd
。
Cygwin 1.7.34 以降、Cygwin は Windows SID から POSIX UID/GID への自動内部変換を使用します。このメカニズムは SID<=>UID/GID マッピングの推奨方法であり、Windows アカウントを POSIX アカウントにマッピングする。
Cygwin 1.7.34 より前のバージョンでは、 および ツールを使用して /etc/passwd および /etc/group ファイルを作成すると、SID の最後の部分、いわゆる「相対識別子」(RID) がデフォルトで UID および/または GID として使用されていました
mkpasswd
。mkgroup
これらのツールと、 および ファイルからのアカウントの読み取りは、/etc/passwd
Cygwin/etc/group
の最新バージョンでも引き続き使用できますが、特別なニーズがない限り、前述の自動変換に切り替える必要があります。再度、を参照してください。 Windows アカウントを POSIX アカウントにマッピングする詳細については。
su
コマンドが見つかりません。
インストールしsshd
て代替ssh username@localhost
として使用しますsu
。
これを簡単にするためにエイリアスを定義することができますsu
。
su が機能しないのはなぜですか?
この
su
コマンドは Cygwin ディストリビューションに含まれたり削除されたりしていますが、Cygwin に移植されておらず、動作したことがありません。現在は の一部としてインストールされていますsh-utils
が、やはり動作しません。代わりに インストール
sshd
して使用する必要があります。ssh username@localhost
su
su
なぜ機能しないのかの技術的な背景については、以下をお読みください。「su」コマンドについておよび関連するメールアーカイブメッセージ。