GNU/Linux >> Linux の 問題 >  >> Linux

mysqlユーザーが/etc/ passwdにbashシェルを持っているのはなぜですか?

LinuxにMySQLをインストールする場合は、「mysql」という新しいユーザーアカウント ‘はmysqldを実行するために作成されます サービス。しかし、なぜmysqlユーザーが/etc/passwdにbashシェルを持っているのですか? ?通常、サービスはnologinユーザーとして実行され、シェルは/bin/falseに設定されます。 または/bin/nologin /etc/passwdにあります ファイル。つまり、アカウントはサービスを実行する資格がありますが、シェルアクセスはありません。私はこの設定がセキュリティを向上させると強く信じていました(コメントセクションで私の理解が間違っている場合は訂正してください)。 mysqlユーザーに提供されたシェルアクセスは意図的でしたか(または何らかの本当の目的がありますか)?調べてみましょう。

Redhatで提出されたバグレポートによると、mysqlプレインストールスクリプトは useraddを使用してユーザーを作成しているようです。 コマンドを実行し、「 -s」を使用しました ‘オプションを / bin / bashに設定 。

/usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash \
 -c "MySQL Server" -u 27 mysql > /dev/null 2>&1 || :

この問題は、 Mike Rubel @ Redhatによって報告されました。 、 mysqlと言う人 ユーザーはnologinである必要があります デフォルトではユーザー。

しかし、Tom Lane(おそらくMySQL開発者の1人)がバグレポートの受け入れを拒否しているようです。彼はmysqlと言います アカウントはパスワードなしで作成され、最終的にログインアクセスを制限します。

マイクは答えました–脆弱な mysqld のため、動作はまだ異常です 攻撃者がSSHキーを/var/lib/mysql/.ssh/authorized_keysにインストールできるようになります (mysqlのホームディレクトリ)、リモートシェルアクセスを許可します(これにより、パスワードのないアカウントは意味が少なくなります)。

マイクにはたくさんのサポートがありましたが、トムは mysqlの理由を正当化し続けました シェルアクセスを持つアカウント。 mysqlhotcopyなどのユーティリティがあると彼は言います 、 mysqluc シェルアクセスが必要です。また、MySQL管理者は mysqlに切り替えたい場合があります バックアップ操作を実行するユーザー。

MySQLユーザーへのシェルアクセスを拒否すると、サービスに影響しますか?

ええと、私はいくつかのコマンドがシェルアクセスを必要とするかもしれないことに同意します。しかし、最も人気のあるMySQLバックアップコマンド mysqldump mysqlユーザーとしてのシェルは必要ありません そうじゃない? MySQL管理者はmysqlに切り替える必要はありません 代わりに、バックアップを実行するためのユーザーアカウント mysqldump 有効なmysqlユーザー名、パスワード、データベースを提供することにより、任意のユーザーとして実行できます。 cronを介して自分のWebサイトのバックアップを実行します mysqldumpを使用します 。 mysqlに切り替えません ユーザーがそれを行います。

トムによると、それが mysqlの唯一の理由である場合 ユーザーがシェルにアクセスできるので、私は強く反対します。

そこで、mysqlを変更しました /bin/falseへのユーザーシェル /etc/passwdにあります 。今まで問題は見られませんでした(将来的には問題がないことを願っています)。問題が発生した場合は、この記事に戻って更新します。

免責事項:

私はMySQL開発者でも、それを使用する専門家でもありません。しかし、私はmysqlユーザーがシェルアクセスを必要としないことを理解しているだけです。私は間違っているかもしれませんが、nologinとしてのmysqlはサーバー上で問題なく機能しています。

mysqlユーザーにシェルアクセスを許可しますか?よろしくお願いします。

情報:

/ bin/falseと/sbin/nologinの違いを知りたい場合があります。


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Bash =〜正規表現とHttps://regex101.com/?

  3. #!/bin/bash と #!/bin/sh はいつ使用する必要がありますか?

  1. /etc/passwd で指定されたコマンド/スクリプトをバイパスする

  2. /home、/usr、/var などのディレクトリがすべて同じ inode 番号 (2) を持っているのはなぜですか?

  3. BASH:ユーザーのパスワードがロックされている場合は、/etc/shadow をチェックインします

  1. CentOS / RHEL 6 で /etc/shadow および/または /etc/passwd ファイルの削除されたルート エントリから復元する方法

  2. CentOS / RHEL :削除された /etc/passwd ファイルから回復する方法

  3. /etc/hosts と /etc/resolv.conf の違い