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


13

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

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

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

回答:


19

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

使用する

sudo -u test /bin/bash

または

sudo -u test /usr/bin/mysql

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.