Assuming you're the administrator of the machine, Ubuntu has granted you the right to sudo to run any command as any user.
Also assuming you did not restrict the rights in the
pg_hba.conf file (in the
/etc/postgresql/9.1/main directory), it should contain this line as the first rule:
# Database administrative login by Unix domain socket local all postgres peer
(About the file location:
9.1 is the major postgres version and
main the name of your "cluster". It will differ if using a newer version of postgres or non-default names. Use the
pg_lsclusters command to obtain this information for your version/system).
Anyway, if the
pg_hba.conf file does not have that line, edit the file, add it, and reload the service with
sudo service postgresql reload.
Then you should be able to log in with
psql as the postgres superuser with this shell command:
sudo -u postgres psql
Once inside psql, issue the SQL command:
ALTER USER postgres PASSWORD 'newpassword';
In this command,
postgres is the name of a superuser. If the user whose password is forgotten was
ritesh, the command would be:
ALTER USER ritesh PASSWORD 'newpassword';
References: PostgreSQL 9.1.13 Documentation, Chapter 19. Client Authentication
Keep in mind that you need to type postgres with a single S at the end
If leaving the password in clear text in the history of commands or the server log is a problem, psql provides an interactive meta-command to avoid that, as an alternative to
ALTER USER ... PASSWORD:
It asks for the password with a double blind input, then hashes it according to the
password_encryption setting and issue the
ALTER USER command to the server with the hashed version of the password, instead of the clear text version.
~ Answered on 2013-01-29 17:15:58