web-dev-qa-db-ja.com

sudo suはmysqlのユーザーを変更しません

昨夜、私のサーバーで、次のことを行いました。

Sudo su - mysql 

mysqlユーザーに変更して、mysqlアカウントからのみ認証されるようにセットアップされたmysqlクライアントを実行できるようにします。 mysqlクライアントを正常に実行し、データベースに変更を加えました。サーバー上で一晩変更はありません。

今日、私が試みることは何もmysqlユーザーに変更することを許可しません。ホームディレクトリがないというメッセージが表示された場合、成功したように見えますが、whoamiは引き続きユーザーIDを報告し、mysqlを実行しようとしても失敗します。

wade@snoopy:~$ Sudo su - mysql
[Sudo] password for wade: 
No directory, logging in with HOME=/
wade@snoopy:~$ whoami
wade

wade@snoopy:~$ Sudo su mysql
wade@snoopy:~$ whoami
wade

wwilliam@snoopy:~$ Sudo -s
root@snoopy:/home/wade# 
root@snoopy:/home/wade# su mysql
root@snoopy:/home/wade# whoami
root

mysqlの/ etc/passwd:

mysql:x:110:119:MySQL Server,,,:/nonexistent:/bin/false

誰もこのような行動を見たことがありますか?

12
wadesworld

suは、/etc/passwdで指定された他のユーザーのログインシェルを呼び出します。あなたの場合、それは/bin/falseなので、インタラクティブなシェルを取得しません。

つかいます

Sudo -u test /bin/bash

または

Sudo -u test /usr/bin/mysql

代わりにそのようなもの。

19
Florian Diesch