Как сбросить пароль Redmine и выдать права админа
В свежеустановленный Redmine входят под admin / admin. С версии 3.3 Redmine сразу после первого входа требует сменить этот пароль.
Если забыли пароль админа, зайдите на сервер в папку Redmine (ту, где лежит config/database.yml) и выполните:
cd /path/to/redmine
RAILS_ENV=production bundle exec rails runner '
u = User.find_by_login("admin")
u.password = u.password_confirmation = "NewPass-2026!"
u.admin = true
u.status = User::STATUS_ACTIVE
u.save!
puts "#{u.login}: password changed, admin=#{u.admin}"
'
Команда задаёт новый пароль, выдаёт права администратора и снимает блокировку. Чтобы сделать админом другого пользователя, подставьте его логин вместо admin. Хеш Redmine считает сам, в базу руками лезть не нужно. Я проверил команду на Redmine 5.1, 6.1 и 7.0 и на образе Bitnami с 6.0.
Логин и пароль Redmine по умолчанию
- Архив с redmine.org и официальный Docker-образ
redmine:admin/admin. - Bitnami на виртуалке или в облаке: логин
user, пароль лежит в/home/bitnami/bitnami_credentials, откройте его черезsudo cat. В AWS Lightsail:cat $HOME/bitnami_application_password. - Docker-образ Bitnami:
user/bitnami1в старых образах на Debian: раньше это былbitnami/redmine, теперьbitnamilegacy/redmine. В Bitnami Secure Images логин по умолчанию тожеuser, а пароль — тот, что вы задали вREDMINE_PASSWORD.
Если пароль по умолчанию не подходит, его уже кто-то сменил. Сбросьте его командой выше.
То же через консоль Rails
Так удобнее, если сначала хотите осмотреться:
cd /path/to/redmine
RAILS_ENV=production bundle exec rails console
# кто сейчас админы
User.where(admin: true).pluck(:login)
u = User.find_by_login("admin")
u.password = u.password_confirmation = "NewPass-2026!"
u.admin = true
u.status = User::STATUS_ACTIVE
u.save!
# вернёт пользователя, если пароль подходит
User.try_to_login("admin", "NewPass-2026!")
Выйти из консоли — exit.
Как выдать права администратора в Redmine
Если можете войти под другим админом, откройте «Администрирование → Пользователи», нажмите на логин нужного пользователя, отметьте «Администратор» и нажмите «Сохранить».
Если войти под админом некому, выполните на сервере команду из начала статьи с логином этого пользователя вместо admin. Если rails runner не запускается, выдайте права прямо в базе. Запрос работает в MySQL и PostgreSQL, подставьте свой логин вместо ivanov:
UPDATE users SET admin = true WHERE login = 'ivanov';
Как подключиться к базе, написано ниже, в разделе про SQL.
Сброс пароля в Bitnami Redmine
В нынешних виртуалках и облачных образах Bitnami Redmine лежит в /opt/bitnami/redmine, а админ там — user, не admin:
cd /opt/bitnami/redmine
RAILS_ENV=production bundle exec rails runner 'u = User.find_by_login("user"); u.password = u.password_confirmation = "NewPass-2026!"; u.admin = true; u.status = User::STATUS_ACTIVE; u.save!'
В старых сборках приложение лежит в apps/redmine/htdocs внутри папки стека, и Ruby у стека свой. У меня в 2017 году стояла такая, с Redmine 3.x. Сначала загрузите окружение стека, потом выполните ту же команду:
# у инсталлятора это /opt/redmine-<версия>
cd /opt/bitnami
./use_redmine
cd apps/redmine/htdocs
Подробнее о старой структуре папок Bitnami — в постах об установке и настройке Bitnami Redmine и о плагинах.
Redmine в Docker
В официальном образе redmine рабочая папка и RAILS_ENV=production уже заданы. Для контейнера с именем redmine:
docker exec redmine bundle exec rails runner 'u = User.find_by_login("admin"); u.password = u.password_confirmation = "NewPass-2026!"; u.admin = true; u.status = User::STATUS_ACTIVE; u.save!'
В образе Bitnami приложение лежит в /opt/bitnami/redmine:
docker exec -w /opt/bitnami/redmine redmine bundle exec rails runner -e production 'u = User.find_by_login("user"); u.password = u.password_confirmation = "NewPass-2026!"; u.admin = true; u.status = User::STATUS_ACTIVE; u.save!'
После команды образ Bitnami печатает справку по rails new. Это шум от его бинстаба bin/rails, пароль к этому моменту уже сохранён. Менять переменную REDMINE_PASSWORD бесполезно: образ читает её только при первом запуске.
Сброс пароля Redmine через SQL
Запасной вариант, если Ruby на сервере сломан и rails runner не запускается. Имя базы, пользователя и пароль возьмите из config/database.yml, секция production:
mysql -u redmine -p redmine # MySQL или MariaDB
psql -U redmine -h localhost redmine # PostgreSQL
Так это выглядело на моём сервере Bitnami, база называлась bitnami_redmine:
Найдите учётку. В таблице users лежат ещё группы и анонимный пользователь, отсюда фильтр по type. В status 1 — активен, 2 — зарегистрирован, 3 — заблокирован:
SELECT id, login, admin, status FROM users WHERE type = 'User';
Поставьте пароль password, разблокируйте учётку и включите обязательную смену пароля при следующем входе:
UPDATE users
SET hashed_password = '353e8061f2befecb6818ba0c034c632fb0bcae1b',
salt = '',
status = 1,
must_change_passwd = true
WHERE login = 'admin';
Запрос работает в MySQL и PostgreSQL без правок. Чтобы выдать права админа другому пользователю, добавьте в SET строку admin = true, а в WHERE подставьте его логин.
Почему пароль — «password»
Redmine сравнивает hashed_password с SHA1(salt + SHA1(password)), см. check_password? в app/models/user.rb. С пустой солью выходит SHA1(SHA1(password)), а 353e8061… — это ровно SHA1(SHA1("password")). Когда вы смените пароль в интерфейсе, Redmine создаст новую случайную соль.
Свой пароль MySQL и MariaDB захешируют прямо в запросе:
UPDATE users
SET hashed_password = SHA1(SHA1('My-own-Pass_2026')), salt = '', status = 1
WHERE login = 'admin';
В PostgreSQL встроенной SHA1 нет. Посчитайте хеш в терминале и вставьте его в UPDATE. На macOS вместо sha1sum пишите shasum:
printf '%s' 'My-own-Pass_2026' | sha1sum | cut -c1-40 | tr -d '\n' | sha1sum | cut -c1-40
Забыли пароль от Redmine, а доступа к серверу нет
Нажмите «Восстановление пароля» на странице входа. Redmine пришлёт ссылку для сброса, если админ не отключил восстановление и на сервере настроена почта. Если ссылки нет или письмо не приходит, попросите администратора задать вам новый пароль в разделе «Администрирование → Пользователи».
Если сброс не помог
undefined method 'password_confirmation=' for nil(в старых версиях Ruby —undefined method `password_confirmation=' for nil:NilClass) — пользователя с таким логином нет. Список логинов:User.pluck(:login).Validation failed: Password is too short (minimum is 8 characters)— пароль не проходит правила из «Администрирование → Настройки → Аутентификация».- Пароль сбросили, а войти не получается. Возможно, учётка входит через LDAP, и пароль Redmine проверяет там. Добавьте
u.auth_source = nilпередu.save!, и учётка перейдёт на локальный пароль. - Redmine 4.2+ просит код двухфакторной аутентификации, а телефона нет. Добавьте перед
u.save!строкуRedmine::Twofa.for_user(u)&.destroy_pairing_without_verify!. - Без
RAILS_ENV=productionRails стартует в режиме разработки: либо падает, либо открывает development-базу вместо вашей. - Когда кто-то получает права админа, Redmine рассылает всем администраторам письмо об этом. Так и должно быть.