Changing user passwords through command line

I set up Omeka Classic a while ago for our archivist to use. I set up the Linux server but at the point Omeka was installed I turned over all management of the web interface to her. She installed all the plugins she wanted and even began building out the main page of the collections and so on with no problems. Now, several months have gone by since anyone has done anything with either the server or the web interface. Her login credentials no longer work. She gets an incorrect username/password error and she cannot reset her password because that also generates an error.

I can log into the backend of the server with PUTTY just fine. How can I check what the users for the web interface are with command line? How can I change the passwords for them with command line? Google Fu is not helping me with this because I just get results to manage users through the web interface. which I can’t get into.

I’m not interested in fixing the potential issue with the server sending out password reset emails at this point (because there are seventeen layers of firewall and networking issues that might be contributing to that).

Update: I found this article on the legacy forums: https://omeka.org/forums-legacy/topic/password-reset/

Which states that " First, if you have direct access to the database, you could double-check there whether the correct email is there for you in the users table."

Does anybody know the file name for this table? I’ve been manually digging all over the server and none of the likely seeming files (user.sql , user_activation.sql) etc. have anything in them that lets me see which users exist.

I’ve also tried the suggestion in this where the password reset URL is posted to the website with the error log, but it’s not showing up among the error verbiage.

You need to access the database underlying Omeka in order to see/change passwords and user accounts. See this response for an idea of where to look Password reset for Omeka via PHPMyAdmin fails

1 Like

Those “.sql” files are just the starter data/structure for the tables. You need to be logging into the database itself and looking at the live tables (using the mysql command line client, perhaps, or using phpMyAdmin or something like that if it’s installed on this server, or a remote client).

The default is for Omeka’s tables to be prefixed with “omeka_” (so, “omeka_users”, etc.). You’ll find all the details including the setting for that prefix in the installation’s db.ini file. Resetting the password this way is possible but a little bit “involved”… checking in users_activations and looking for the reset code is probably easier, that’s described at the end of the post Megan linked to.

1 Like

There is no instance of PHPMyAdmin on this server. At least, searching the whole server for that produces no results.

I’ve tried manually searching the whole server for the database name that’s in the db.ini file. It tells me no such file or folder exists on the server.

I’ve tried manually searching for the generic omeka_users name suggessted and it tells me no such file or folder exists on the server.

I’m running the find command as sudo.

Where is the default directory for this stuff?

Edit I was able to find it finally. For anybody who has this issue after me the path is /var/lib/mysql and to access this folder you will need to run “sudo -i” first or you will given access denied.

Alright, even for all I said I don’t expect anybody to teach me SQL commands, I’ve spent about an hour trying to open this database in such a way that I can see what users were created, even down to transferring the entire mySQL database to a Windows machine and trying to use a GUI tool. What commands to I need to use to actually look up Omeka users?

Edit I’ve gotten it again through sheer pigheaded trial and error. For anybody coming after me with this problem since there is no documentation:

You want to get your database name which can be found in db.ini file at /var/www/html/omeka

Your actual SQL database is located at /var/lib/mysql

The command you want in MySQL shell to see contents of omeka_users is:

Show Columns from Omeka_users;

This will show you all the fields pertaining to users in that table. To see the specifics of one of those fields you want command:

SHOW #FieldName# from omeka_users;

So for example: SHOW Username From Omeka_users; Or SHOW Email From Omeka_Users;