Ubuntuを利用していてPostgreSQLなどをインストールした場合、PostgreSQLユーザであるpostgresにはパスワードが設定されていません。
このような場合のユーザアカウントのスイッチ方法を以下に記します。
rootアカウントがあるLinuxであれば、rootにスイッチユーザ(su)したあと該当のユーザアカウントにsuすれば簡単に変わることができますが…
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise
以下の構文でパスワードが指定されていないユーザにスイッチすることができます。
sudo -i -u ユーザアカウント
実際にPostgreSQLをインストールしたUbuntuで試してみます。
(PostgreSQLのためにpostgresユーザアカウントが作成されています。)
パスワードファイルを確認するとxになっているのでパスワードが設定されていないことが確認できます。
$ cat /etc/passwd | grep postgres postgres:x:106:114:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
以下sudoコマンドでpostgresユーザにスイッチした時の出力です。
sakura@ubuntu:~$ sudo -i -u postgres [sudo] password for sakura: postgres@ubuntu:~$ postgres@ubuntu:~$ whoami postgres
以上、Ubuntuでsudoコマンドを使ってユーザをスイッチする方法でした。