Bug 1294243 - grub2-setpassword only work when locale is C [NEEDINFO]
grub2-setpassword only work when locale is C
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: grub2 (Show other bugs)
7.2
Unspecified Linux
unspecified Severity medium
: rc
: ---
Assigned To: rmarshall
Release Test Team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2015-12-25 12:15 EST by Michael Scherer
Modified: 2016-11-04 00:00 EDT (History)
3 users (show)

See Also:
Fixed In Version: grub2-2.02-0.34
Doc Type: Bug Fix
Doc Text:
Cause: Alternate locales translate the output from CLI tools. Consequence: Searching for proper output in the shell script failed because of the translation; thus grub2-setpassword would fail because it put the wrong string into the password file. Fix: Set Locale for that specific call in the shell script to ensure the output is what we expected to parse. Result: grub2-setpassword works
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-11-04 00:00:28 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
apetrova: needinfo? (rmarshall)


Attachments (Terms of Use)

  None (edit)
Description Michael Scherer 2015-12-25 12:15:13 EST
Description of problem:
I tried to use grub2-setpassword today. But it did generate a incorrect configuration file. It seems the script is removing the output of grub2-mkpassword using sed, but not taking in account potential translation. So it should be run with LC_ALL=C as variable.


Version-Release number of selected component (if applicable):

# rpm -q grub2-tools
grub2-tools-2.02-0.33.el7_2.x86_64


How reproducible:

each time

Steps to Reproduce:
1. LC_ALL=fr_FR.utf8 grub2-setpassword
2. enter password twice

Actual results:

# cat /boot/grub2/user.cfg
GRUB2_PASSWORD=Entrez le mot de passe : 
Entrez de nouveau le mot de passe : 
Le hachage PBKDF2 du mot de passe est grub.pbkdf2.sha512.10000.9AACE61E4541D7935629D4DE69


Expected results:

# cat /boot/grub2/user.cfg
GRUB2_PASSWORD="grub.pbkdf2.sha512.10000.9AACE61E4541D7935629D4DE69"


Additional info:

The workaround is quite easy:

  LC_ALL=C grub2-setpassword

Also, even if the locale is set to a foreign language, the prompt will not change. And make sure to use a locale where grub2 is translated to, otherwise, it will work fine.
Comment 2 Michael Scherer 2015-12-26 06:53:33 EST
Related to https://bugzilla.redhat.com/show_bug.cgi?id=1292830 (found out after facing the problem on my own system)
Comment 7 errata-xmlrpc 2016-11-04 00:00:28 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2336.html

Note You need to log in before you can comment on or make changes to this bug.