Commit Graph

57 Commits

Author SHA1 Message Date
Andreas Henriksson 8df545592d build: use --runstatedir instead of --localstatedir
The util-linux code was previously aligned to use @localstatedir@ and
the util-linux build system was set to override the default to use /run.

Current GNU Coding Standards introduced the @runstatedir@ variable
for this purpose. Lets use that instead.

The GNU default for @runstatedir@ is ${localstatedir}/run so util-linux
still override the default to be /run to preserve the status quo from
before. The only difference is that you'll now pass --runstatedir to
override the location on the command line instead of --localstatedir.

(FWIW, Debhelper in compat 11 will automatically start passing
--runstatedir=/run to all autotools configured builds. It already
passes --localstatedir=/var (to avoid it ending up with the GNU default
/usr/local/var) which breaks the util-linux build system code that
tries to default it to /run. This change will thus allow util-linux
and debhelper to work better together and avoid the need for a
package-specific override.)

Relevant historic commits:
 * commit 07a16b9d1e
   "build-sys: change --localstatedir to /run"
 * commit 80c51185d5
   "uuidd: use run configured state directory"
 * commit 01c5b78794
   "agetty: use configured run state directory"

[ - add $runstatedir fallback for autoconf < 2.70
                  - check for unmodified $localstatedir]

CC: Sami Kerola <>
Signed-off-by: Andreas Henriksson <>
Signed-off-by: Karel Zak <>
2017-07-31 15:24:46 +02:00
J William Piggott 8493eedd15 include: update pathnames.h
* use /dev/rtc0 (/dev/rtc was for the 'old' driver)
* remove hwclock Award workaround and alpha cmos paths
* relocate _PATH_BTMP from hwclock to login-utils
* add a comment for _PATH_BTMP and fix other login-utils comments
* add a comment for proc/cpuinfo
* remove empty shutdown.c comment from 4d43977f

Review changes
* remove 'used in' comments
* white space fixes

Reviewed-by: Karel Zak <>
Signed-off-by: J William Piggott <>
2017-06-20 19:51:26 -04:00
Sami Kerola bd0786895d
hwclock: improve coding style
Make string constants to be symbolical declarations.  Use longer variable
name for rtc and cmos function pointer values.  Exclude code that is
architecture specific with preprocessor directives.  And remove message

Signed-off-by: Sami Kerola <>
2017-02-04 23:39:38 +00:00
Ruediger Meier 81580f79fa agetty: remove obsolete HAVE_UPDWTMP fallback
Signed-off-by: Ruediger Meier <>
2016-12-07 12:35:24 +01:00
Franco Fichtner 0773ad14a3 pathnames: guard clashing definitions on FreeBSD 2016-08-11 15:03:50 +02:00
Sami Kerola 652822e08b misc: remove path name definitions that are unused
After this commit the following produces zero matches.

$ for i in \
do git grep $i; done

Signed-off-by: Sami Kerola <>
2016-03-09 11:44:05 +01:00
Sami Kerola 82cac34889
ctrlaltdel: display setting when ran without arguments
This is more useful than printing an error.

Signed-off-by: Sami Kerola <>
2015-10-18 18:03:57 +01:00
Karel Zak b28842ae67 agetty: support /usr/lib/os-release too

The file /etc/os-release takes precedence over /usr/lib/os-release.
Applications should check for the former, and exclusively use its data
if it exists, and only fall back to /usr/lib/os-release if it is

Reported-by: Dimitri John Ledkov <>
Signed-off-by: Karel Zak <>
2015-03-05 12:25:28 +01:00
Karel Zak f71d1104df build-sys: add --enable-usrdir-path
The directories /{sbin,bin} are symliks to /usr/{sbin,bin} on many
systems. This patch add new ./configure option to remove the non-usr
paths from the default $PATH environment variable.

The default $PATH is hardcoded in login(1) and can be overwritten
by /etc/login.defs.


./test_pathnames | grep DEFPATH
       _PATH_DEFPATH /usr/local/bin:/bin:/usr/bin
  _PATH_DEFPATH_ROOT /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


./test_pathnames | grep DEFPATH
       _PATH_DEFPATH /usr/local/bin:/usr/bin
  _PATH_DEFPATH_ROOT /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

This patch does not modify install paths, you still have to care about
--{bin,lib}dir configure options.

Signed-off-by: Karel Zak <>
2015-03-03 11:43:01 +01:00
Sami Kerola 52a49e9add logger: move /dev/log to pathnames.h
Signed-off-by: Sami Kerola <>
2015-02-24 13:18:49 +01:00
Eric W. Biederman 0bf159413b unshare: Fix --map-root-user to work on new kernels
In rare cases droping groups with setgroups(0, NULL) is an operation
that can grant a user additional privileges.  User namespaces were
allwoing that operation to unprivileged users and that had to be

Update unshare --map-root-user to disable the setgroups operation
before setting the gid_map.

This is needed as after the security fix gid_map is restricted to
privileged users unless setgroups has been disabled.

Signed-off-by: "Eric W. Biederman" <>
2015-01-09 10:32:33 +01:00
Sami Kerola 4ecc6dbb53 lslogins: use hardcoded paths from pathnames.h
Signed-off-by: Sami Kerola <>
2014-12-19 09:11:03 +00:00
Karel Zak 2ad2196349 build-sys: support ./configure ADJTIME_PATH=
.. to override the default /etc/adjtime path.

Reported-by: Bruce Dubbs <>
Signed-off-by: Karel Zak <>
2014-06-19 10:30:56 +02:00
Karel Zak 570b32100f lib/colors: add support for @term and /home/kzak
Signed-off-by: Karel Zak <>
2014-05-13 12:09:02 +02:00
Ondrej Oprala d0c9ddc3cc lib/colors: check for /etc/terminal-colors.d/[util].disable
[ - move paths to pathnames.h,
                  - use static path buffer]

Signed-off-by: Ondrej Oprala <>
Signed-off-by: Karel Zak <>
2014-03-11 09:38:09 +01:00
Lubomir Rintel 4da21e374e unshare: Add possibility to add mapping into root user in user namespace
This makes it very convenient to use make use of privileged actions
on CONFIG_USER_NS enabled kernels, without having to manually tinker
with uid_map and gid_map to obtain required credentials (as those
given upon unshare() vanish with call to execve() and lot of userspace
checks for euid==0 anyway).

Usage example:

$ unshare --uts
unshare: unshare failed: Operation not permitted

$ unshare --user --uts
[nfsnobody@odvarok ~]$ hostname swag
hostname: you must be root to change the host name

$ unshare -r --uts
[root@odvarok util-linux]# hostname swag
[root@odvarok util-linux]#

[ - move code to map_id()
                  - use all-io.h
                  - add paths to pathnames.h]

Signed-off-by: Lubomir Rintel <>
Signed-off-by: Karel Zak <>
2014-01-07 11:04:42 +01:00
Karel Zak 88407b9321 nologin: add new command
Currently it's maintained as distro specific (or people use impolite
/bin/false way).

Signed-off-by: Karel Zak <>
2013-09-30 13:36:26 +02:00
Karel Zak b34f097e75 agetty: add \S to output /etc/os-release data
This patch allows to use a new \S or \S{VARNAME} sequence in the
/etc/issue file. The sequence prints data from /etc/os-release.  The
reason is to keep /etc/issue file distribution and release

The \S{ANSI_COLOR} is converted to the real terminal escape seq.

For example:

   Kernel \r on an \m (\l)

or more complex example:

   Welcome to \S{ANSI_COLOR}\S{NAME}0m \S{VERSION}
   Report bugs at \S{BUG_REPORT_URL}.

fr more details about /etc/issue.

Based on patch from Bill Nottingham <>.

Signed-off-by: Karel Zak <>
2013-09-12 12:44:09 +02:00
Ondrej Oprala fb2627cec4 lscpu: detect more hypervisor vendors
[ - cleanup coding style,
                  - use path_exist()]

Signed-off-by: Ondrej Oprala <>
Signed-off-by: Karel Zak <>
2013-05-20 16:30:23 +02:00
Karel Zak 7528fae9e9 include/pathnames: rename _PATH_ADJPATH to _PATH_ADJTIME
Signed-off-by: Karel Zak <>
2013-03-26 11:45:45 +01:00
Karel Zak 59c68b4368 setpriv: move paths to pathnames.h
Signed-off-by: Karel Zak <>
2013-02-05 11:48:55 +01:00
Sami Kerola e5995acda2 ipcs: determine ipc limits from /proc
Some of the limit values are not dynamic.  Like in kernel these values
are #defined.

[ - use better names for functions,
                  - add ipcutils.{c,h}
                  - read also shmmax from /proc]

Signed-off-by: Sami Kerola <>
Signed-off-by: Karel Zak <>
2012-11-23 14:58:21 +01:00
Sami Kerola d2b5c8c4fb ipcs: add /proc and /sys path definitions
The necessary proc and sysfs files are tested to be present.  When
information files are missing the ipcs will use obsolted system calls,
and data structures, as fallback.

[ - fix #define _PATH_PROC_IPC_MSG "/proc/sys/kernel/sem" typo]

Signed-off-by: Sami Kerola <>
Signed-off-by: Karel Zak <>
2012-11-23 14:47:14 +01:00
Karel Zak f308ec19a7 libmount: add private mnt_get_kernel_cmdline_option()
Signed-off-by: Karel Zak <>
2012-11-08 11:59:36 +01:00
Karel Zak a5dc4d2d95 lib/sysfs: add SCSI link functions
Signed-off-by: Karel Zak <>
2012-10-23 12:21:23 +02:00
Sami Kerola 01c5b78794 agetty: use configured run state directory
Signed-off-by: Sami Kerola <>
2012-07-10 13:00:20 +02:00
Sami Kerola 33a0de92e9 wdctl: align with other util-linux commands
* Add watchdog device path to pathnames.h
* Check output stream status at exit.
* Adjust usage() notation to follow howto file.
* Retire numeric return value.

Signed-off-by: Sami Kerola <>
2012-05-03 15:00:07 +02:00
Karel Zak fc387ee14c libblkid: add support for PARTUUID= and PARTLABEL=
Signed-off-by: Karel Zak <>
2012-04-19 14:33:49 +02:00
Karel Zak 4f469e588d Merge branch 'eject'
* eject: (47 commits)
  tests: use eject --force
  eject: use BUILD_EJECT, move to sys-utils
  eject: clean up usage()
  eject: clean up man page
  eject: add --force option
  eject: check for hotplug/removable attribute
  eject: remove obsolete code, use EXIT_* macros
  tests: add umount-by-eject tests
  eject: improve work with partitioned devices
  lib/sysfs: improve sysfs_is_partition_dirent()
  eject: call umount <mountpoint> rather than <device>
  eject: use libmount to detect if cdrom is mounted
  eject: make the code robust
  eject: use SG_IO ioctl for scsi
  eject: support CDIOCEJECT ioctl
  eject: new close_tray code from Fedora
  eject: new auto_eject code from Fedora
  eject: add -X from Fedora
  eject: add --manualeject from fedora
  eject: clean up devname usage
2012-04-05 15:58:28 +02:00
Sami Kerola 16d8a9c967 raw: use pathnames.h for file locations
Signed-off-by: Sami Kerola <>
2012-03-30 16:48:12 +02:00
Karel Zak 1abc33266f eject: add -X from Fedora
Signed-off-by: Karel Zak <>
2012-03-27 17:38:28 +02:00
Sami Kerola 6a91958bf8 pathnames: clean up various user database paths
Signed-off-by: Sami Kerola <>
2012-03-18 14:28:05 +01:00
Sami Kerola c900336d8b chsh: use pathnames.h for paths
Signed-off-by: Sami Kerola <>
2012-03-18 14:28:04 +01:00
Davidlohr Bueso 79b1280725 include: add /proc/locks path to pathnames
Signed-off-by: Davidlohr Bueso <>
Signed-off-by: Karel Zak <>
2012-02-29 12:27:41 +01:00
Karel Zak 0b14bf7af1 lib,loopdev: add LOOP_CTL_GET_FREE support
Signed-off-by: Karel Zak <>
2011-11-07 16:45:11 +01:00
Karel Zak c82d9c977c login: add login.defs code and tests
The new logindefs.c file contains /etc/login.defs parser and functions
for searching in the list of the login default variables. The patch
also contains a new regression test for the code.

Based on pam_login-4.0 from Suse.

Signed-off-by: Karel Zak <>
2011-10-26 23:17:17 +02:00
Karel Zak 918b1a9ddd login: improve hushed mode (merge suse changes)
Signed-off-by: Karel Zak <>
2011-10-26 23:17:16 +02:00
Karel Zak 5d1a454ac9 login: move _PATH_BTMP to pathnames.h
Signed-off-by: Karel Zak <>
2011-10-26 23:17:15 +02:00
Sami Kerola 9d413ecb6e hwclock: move path definitions to pathnames.h
Signed-off-by: Sami Kerola <>
2011-07-26 17:54:43 +02:00
Karel Zak 10ee593293 lib: [loopdev.c] add module for work loop devices
Signed-off-by: Karel Zak <>
2011-05-30 16:37:46 +02:00
Sami Kerola 96cc7b0b3e agetty.c: move issue path to pathnames.h
Signed-off-by: Sami Kerola <>
2011-04-27 23:21:19 +02:00
Fabian Groffen 0bf9d41da2 build-sys: check for paths.h
paths.h doesn't exist on Solaris

Signed-off-by: Fabian Groffen <>
2011-01-20 23:47:52 +01:00
Karel Zak 9826a63737 libmount: add /etc/fstab.d support
Signed-off-by: Karel Zak <>
2011-01-03 12:28:39 +01:00
Karel Zak b61e939013 losetup: use /sys/dev/block/.../loop/backing_file
The basic loopdev attributes are available in sysfs since kernel
2.6.37. This patch uses the backing_file attribute from sysfs for very
long filenames (the LOOP_GET_STATUS ioctl uses only 64 bytes for the

old version:
 # losetup -a
 /dev/loop0: [0804]:12865322 (/home/images/filesystems/this_is_really_really_long_directory_*)

new version:
 # losetup -a
 /dev/loop0: [0804]:12865322 (/home/images/filesystems/this_is_really_really_long_directory_name/ext2.img)

Signed-off-by: Karel Zak <>
2010-12-01 14:04:35 +01:00
Karel Zak 04fd7a9feb findmnt: add new command
Signed-off-by: Karel Zak <>
2010-06-03 15:20:11 +02:00
Karel Zak 865deca224 swapon: move DELETED_SUFFIX to include/pathnames.h
Signed-off-by: Karel Zak <>
2010-04-02 11:43:36 +02:00
Karel Zak 49361dc4dc libblkid: add blkid_probe_all_removable()
The libblkid probing is based on devices from /proc/partitions by
default. This file usually does not contain removable devices (e.g.
CDROMs) and this kind of devices are invisible for libblkid.

The blkid_probe_all_removable() function adds removable block devices
to blkid cache. The probing is based on information from the /sys
directory. The devices which were detected by this function won't be
written to cache file.

Signed-off-by: Karel Zak <>
2010-02-01 14:23:55 +01:00
Karel Zak 7ef93b3eff libblkid: add blkid_driver_has_major()
Signed-off-by: Karel Zak <>
2009-09-18 13:07:05 +02:00
Karel Zak 77f5744c98 rtcwake: add S5 support
Based on patch from
   Piergiorgio Sartor <>

Piergiorgio's note about S5:
> According to the ACPI specifications, chapter "Real Time
> Clock Alarm", the wakeup from RTC, when supported, should work from
> *sleep* state S1-S3 and, optionally, from S4.
> Note 3 (same chapter) says that S5 is *not* a sleep state and should
> not be supported. Actually it also says that: "The OS will disable
> the RTC_EN bit prior to entering the G2/S5 or G3 states regardless."
> Nevertheless, on all PC supporting the RTC wakeup I tested, all were
> able to wake from S5.

Signed-off-by: Karel Zak <>
2009-09-07 12:04:26 +02:00
Karel Zak 14b613f3a9 include: fix _PATH_DEV
Signed-off-by: Karel Zak <>
2009-07-02 09:50:26 +02:00