| Summary: | tzdata-update uses default umask | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Paulo Andrade <pandrade> |
| Component: | glibc | Assignee: | Florian Weimer <fweimer> |
| Status: | CLOSED ERRATA | QA Contact: | Sergey Kolosov <skolosov> |
| Severity: | medium | Docs Contact: | Mark Flitter <mflitter> |
| Priority: | medium | ||
| Version: | 6.8 | CC: | ashankar, codonell, dbodnarc, fweimer, mcermak, mflitter, mnewsome, pfrankli, skolosov, zpytela |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | glibc-2.12-1.195.el6 | Doc Type: | Bug Fix |
| Doc Text: |
Fix for tzdata-update inheriting an unusable umask
When updating /etc/localtime, tzdata-update applies the current process umask to determine the file permissions.
If the umask is a restrictive value, such as 077, the new /etc/localtime file may not be readable by non-root users. To resolve this, tzdata-update now sets the permissions to rw-r--r-- (0644) unconditionally.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2017-03-21 10:38:14 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
Agreed, we should restore the fchmod call. The Lua version of tzdata-update in the tzdata package is not affected because RPM resets the umask to 022: [root@lenovo-thinkstation-01 ~]# rm -f /etc/localtime [root@lenovo-thinkstation-01 ~]# rpm -e --nodeps tzdata [root@lenovo-thinkstation-01 ~]# (umask 077; rpm -i tzdata-2016c-1.el6.noarch.rpm) warning: tzdata-2016c-1.el6.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY [root@lenovo-thinkstation-01 ~]# ls -l /etc/localtime -rw-r--r--. 1 root root 3519 Sep 15 07:32 /etc/localtime [root@lenovo-thinkstation-01 ~]# rm -f /etc/localtime [root@lenovo-thinkstation-01 ~]# (umask 077; yum reinstall tzdata-2016c-1.el6.noarch.rpm) … Installed: tzdata.noarch 0:2016c-1.el6 Complete! [root@lenovo-thinkstation-01 ~]# ls -l /etc/localtime -rw-r--r--. 1 root root 3519 Sep 15 07:33 /etc/localtime 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/RHSA-2017-0680.html |
tzdata-update was rewritten in a Red Hat patch (glibc-rh1200555.patch) but it misses a feature of the old tzdata-update that was the chunk: ---8<--- long int sret; sret = INTERNAL_SYSCALL (fchmod, err, 2, fd, 0644); if (INTERNAL_SYSCALL_ERROR_P (sret, err)) goto clean_up; ---8<--- So, depending of the umask set (e.g. 0077), it may create a /etc/localtime that is unreadable by non root users. Test case should be simple, just set the umask and run /usr/sbin/tzdata-update.