Cygwin で複数のユーザーを追加する最も簡単な方法は何ですか?

Cygwin で複数のユーザーを追加する最も簡単な方法は何ですか?

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 に新しいユーザーを追加するにはどうすればよいですか?

  1. Windowsユーザーを作成する
  • Windows でユーザーを作成します (スタート > コントロール パネル > ユーザー アカウントの管理 > 追加...)
  1. 対応するCygwinユーザーを作成する
  • 次のコマンドを実行します。

        mkpasswd -l > /etc/passwd
        mkgroup -l > /etc/group 
    
  • これにより、Cygwin ユーザーとグループが Windows ユーザー アカウントと同期されます。

  • ドメインにいる場合は、-d代わりに-l

  1. ユーザーのシェルを設定する
  • /etc/passwd(プレーンテキストファイル)を変更して、ユーザーのデフォルトシェルを適切に変更します。

  • ファイルの形式は次のとおりです。

         Username:Password:UID:GID:Info:Home:Shell
    
  1. 必要に応じてユーザーのホームディレクトリの権限を変更します。

「パスワード不要」を設定する方法がわかりません

セキュリティをまったく気にせず、パスワードを必要としない場合は、以下を使用します。

password -p username

ドキュメントよりpasswd:

概要

passwd [OPTION] [USER]

オプション

...

-p, --pwd-not-required USERにはパスワードは必要ありません。

ソースパスワード


最近の「改善」と戦っているのでしょうか?

Cygwin バージョン 1.7.34 以降では、/etc/passwdユーザー アカウントの管理にデフォルトでは使用されなくなりました。

  • 存在する場合は/etc/passwd使用されますが、既存のインストールと特別な状況に対応するためだけに使用されます。

  • 存在しない場合は/etc/passwd作成できます。パスワードそしてmkグループ詳細については。

バージョン 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 として使用されていました mkpasswdmkgroupこれらのツールと、 および ファイルからのアカウントの読み取りは、/etc/passwdCygwin/etc/groupの最新バージョンでも引き続き使用できますが、特別なニーズがない限り、前述の自動変換に切り替える必要があります。再度、を参照してください。 Windows アカウントを POSIX アカウントにマッピングする詳細については。

ソースPOSIX アカウント、権限、セキュリティ:


suコマンドが見つかりません。

インストールしsshdて代替ssh username@localhostとして使用しますsu

これを簡単にするためにエイリアスを定義することができますsu

su が機能しないのはなぜですか?

このsuコマンドは Cygwin ディストリビューションに含まれたり削除されたりしていますが、Cygwin に移植されておらず、動作したことがありません。現在は の一部としてインストールされていますsh-utilsが、やはり動作しません。

代わりに インストールsshdして使用する必要があります。ssh username@localhostsu

suなぜ機能しないのかの技術的な背景については、以下をお読みください。「su」コマンドについておよび関連するメールアーカイブメッセージ。

ソースsu が機能しないのはなぜですか?

関連情報