LinuxボックスでSubversionリポジトリにアクセスするための新しいアカウントを設定しています。新しいユーザーにパスワードを送信できます。ただし、この新しいユーザーが好きなパスワードを/ etc/shadowファイルに直接コピー/貼り付けできる形式に暗号化するコマンドラインユーティリティがあったと思います。
このような暗号化されたパスワードを作成するために、この新しいユーザーがコンソール(Bashなど)で実行する必要がある完全なコマンドは何ですか?
更新:ユーザーはマシンへのログインを許可されず、アカウントはsvn + ssh://アクセスにのみ使用されます。したがって、ユーザーが自分で変更することはできません。
ユーザーは自分のコンピューターで次のように実行できます。
echo "password"|openssl passwd -1 -stdin
その後、出力を送信します。
シャドウのパスワードの形式はさまざまです。 MD5または古き良きDES3に設定することもできます...または、ユーザーにパスワードを送信して、最初のログインでパスワードを変更するように強制することもできます(# chage -d 0 username
)
パスワードを暗号化して送信する代わりに、次のようにタイプするように伝えないでください。
passwd
それは彼らがあなたのために余分な仕事なしに彼らのパスワードを変更できるという追加の利点であなたが望むすべてを行います。
編集: this によると、Debian/Ubuntuで取得できるmakepasswordというコマンドがあると思われます。
/ etc/passwdおよび/ etc/shadow は、通常のコマンドラインツール(grep、awk、sed、trなど)でトークン化するのが非常に簡単です。
興味深いのは、/ etc/shadowの実際のパスワードハッシュフィールドです。そのプレフィックスは、パスワードがどのように暗号化されているかを示します。男(5)の影から:
The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.
暗号化の方法は、インストールされているOSの古さによって大きく異なります。/etc/shadowの2番目のフィールドに特別な注意を払うことが重要です。
DESやMD5など、システムが使用しているハッシュを検出するのは非常に簡単なので、あらゆる努力を払う必要があります。
なぜユーザーにSUを実行してpasswdを実行しないのですか?
コマンドラインからこのパスワードを生成する方法はありますか?はい、debianパッケージmakepasswdを使用(ただしMD5のみ):
echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.
しかし、これは/ etc/shadow内のコピーアンドペーストでは機能しません。一部のLinuxディストリビューションでスクリプトを使用してパスワードを変更するには、次を使用できます。
echo Oracle:mypasswd | chpasswd
または
echo -n mypasswd | passwd --stdin Oracle