Karel Zak [Fri, 16 Dec 2016 11:46:45 +0000 (12:46 +0100)]
findmnt: error on --target /non-exist
The original --target implementation (< v2.27) has been based on
stat(), so it was usable for valid paths only.
The new implementation is based on search in the mountinfo file, so it
works for arbitrary crazy path. This is not backwardly compatible and
if the path does not exist then it still returns at least root
directory mount entry.
This patch forces mnt_table_find_mountpoint() to check if the path is
valid before we search in the mountinfo file.
Karel Zak [Thu, 15 Dec 2016 13:40:26 +0000 (14:40 +0100)]
more: avoid double free() on exit
On 'q' command more(1) calls end_it() function with _exit(). The
_exit() may suspend program execution due to pending I/O on very
loaded server. In this time SIGINT may be delivered due to impatient
user who will press ^C.
And then end_it() cleanup function may be executed by signal handler
too. The result is double free()...
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1403971 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Fri, 9 Dec 2016 14:11:31 +0000 (15:11 +0100)]
libmount: revert X-* and x-* meaning
Let's hope this is last change necessary to cleanup x-* usage:
x-* persistent option, stored in utab, available for umount, etc.
X-* fstab comment only
mount(8) supports x-mount.mkdir= as well as newly recommended X-mount.mkdir=
Advantages:
* less invasive
* does not require exception for x-systemd
* does not require rename x-initrd to X-initrd
The systemd and dracut users will get the new (=fixed) functionality without a
change in fstab configuration. This is the primary goal.
Disadvantages:
* not 100% compatible libmount behavior, x-* options have not been
previously stored in utab. The API is the same, options will be still
available, but on x-* libmount will write to /run/mount/utab. For now
it seems only systemd uses x-*, and they like this behavior, so...
Addresses: https://github.com/systemd/systemd/pull/4515 Signed-off-by: Karel Zak <kzak@redhat.com>
Ruediger Meier [Wed, 7 Dec 2016 19:39:02 +0000 (20:39 +0100)]
build-sys: don't clean *.img files
Don't know why this was added in d78df0ac but it can't be right that
libmount/python removes these files in the toplevel builddir. Moreover
I've never seen such *.img files appearing during build at all.
Karel Zak [Fri, 9 Dec 2016 12:48:34 +0000 (13:48 +0100)]
Merge branch doc_fixes
Rebase from
http://git.kernel.org/pub/scm/linux/kernel/git/mtk/util-linux.git doc_fixes
docs: renice(1): Add credentials(7) to SEE ALSO
docs: renice(1): Add SEE ALSO entry for sched(7)
docs: mount(8): Wording fix
docs: ionice(1): SEE ALSO: add ioprio_set(2)
docs: lsns(8): SEE ALSO: add namespaces(7)
docs: last(1): Eliminate oddball formatting
docs: last(1): SEE ALSO: add reference to wtmp(5)
docs: taskset(1): Wording fix
docs: namei(1): SEE ALSO: add symlink(7)
docs: kill(1): Wording fix
docs: various pages: Use 'UID" and "GID", not "uid" and "gid" in man pages
docs: various pages: Use "PID" not "pid" in man-pages
docs: various pages: Use "ID" not "id" in man pages
docs: various pages: Use consistent terminology (set-user-ID and set-group-ID)
docs: various pages: Format pathnames as italic (.I)
Michael Kerrisk [Mon, 5 Dec 2016 06:28:09 +0000 (07:28 +0100)]
docs: renice(1): Add SEE ALSO entry for sched(7)
The sched(7) page as of the most recent release contains detailed
information on the 'nice' value, including a discussion of
autogrouping, which has surprising interactions with the process
nice value.
Michael Kerrisk [Sun, 4 Dec 2016 19:34:54 +0000 (20:34 +0100)]
docs: various pages: Use consistent terminology (set-user-ID and set-group-ID)
Use consistent terminology for set-user-ID and set-group-ID bits.
There's much inconsistency in the pages. "suid",
"set-user-identifier", "setuid". Stick with one terminology,
"set-user-ID" and set-grout-ID, as suggested in man-pages(7).
Michael Kerrisk [Sat, 3 Dec 2016 20:13:59 +0000 (21:13 +0100)]
docs: various pages: Format pathnames as italic (.I)
In the majority of pages, pathnames are formatted as Italic,
which is the norm. However, there are several cases where they
are formatted as bold. This patch fixes a number of those
exceptions.
Signed-off-by: Michael Kerrisk <mtk.man-pages@gmail.com>
Michael Kerrisk [Fri, 9 Dec 2016 12:32:34 +0000 (13:32 +0100)]
docs: renice(1): Remove obsolete BUGS text
Already at least as far back as util-linux 2.2, renice uses
getpriority(2) to fetch the process's old nice value. Thus,
the "problem" discussed in this BUGS note disappeared long ago.
This is trivially demonstrable:
$ sleep 100 &
[1] 24322
$ renice -n 5 24322
24322 (process ID) old priority 0, new priority 5
$ renice -n 10 24322
24322 (process ID) old priority 5, new priority 10
Rather than trying to explain the ancient problem (20 years old?),
just kill this text.
Signed-off-by: Michael Kerrisk <mtk.man-pages@gmail.com> Signed-off-by: Karel Zak <kzak@redhat.com>
Michael Kerrisk [Fri, 9 Dec 2016 12:25:20 +0000 (13:25 +0100)]
docs: renice(1): Rework discussion of unprivileged users,
The BUGS section describing the limitations on what an unprivileged
user may do to the nice value is outdated, given the kernel changes
that added RLIMIT_NICE in Linux 2.6.12. So, remove that text.
The revised details for modern Linux were partially covered in NOTES,
but there were also inaccuracies there (and the use of the word
"monotonically" was unneeded). In particular, the point is that
unprivileged users can only increase the nice value. There is no
restriction particular to the range 0..+19. So, for example, the
following scenario is possible:
1. Superuser sets the nice value of an unprivileged user's
process to -20.
2. The unprivileged user can now renice that process to (say) -10.
Signed-off-by: Michael Kerrisk <mtk.man-pages@gmail.com> Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Fri, 9 Dec 2016 08:47:33 +0000 (09:47 +0100)]
hwclock: don't check for permissions
The right place to verify user permissions is kernel. The current
situation is too strict (due to previous attempts to use hwclock as
suid that has never been supported).
Karel Zak [Thu, 8 Dec 2016 13:29:44 +0000 (14:29 +0100)]
libmount: use x-systemd options as X-*
The previous patch introduces X-* options namespace for options
that have to be maintained in user space.
Unfortunately, systemd users already use mount options that are
necessary by umount or another operations. The conclusion from
discussion with systemd guys is to store all the systemd options
in userspace.
It seems better to add one line exception to libmount than force all
fstab users to rename x-systemd to X-systemd.
Addresses: https://github.com/systemd/systemd/pull/3904 Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Thu, 8 Dec 2016 13:55:02 +0000 (14:55 +0100)]
libmount: introduce X-* comments
x-* are fstab only and not stored in userspace (utab). In some cases
it's not optional solution because the option is also necessary for
umount or another operations. The X-* is exactly the same as x-*, but
stored to utab (or mtab on old systems).
It's usually bad idea to store mount options in userspace, but it's
better to provide any solution that force users to bypass mount(8)
(and friends) and implement 3rd-party incompatible solutions.
Karel Zak [Thu, 8 Dec 2016 13:24:41 +0000 (14:24 +0100)]
findmnt: add --tree to allow to enable tree output for --mtab
The --mtab output is merge from kernel and utab on all modern systems
(without classic /etc/mtab). It means we have all necessary information
to generate tree output.
For the backward compatibility --mtab is the list by default, the new
option --tree allows to override the default and enable tree always
when the table contains child-parent relations.
Ruediger Meier [Thu, 1 Dec 2016 08:52:12 +0000 (09:52 +0100)]
build-sys: check for POSIX utmpx usage
We simply check for utmpxname and updwtmpx functions to disable
all programs which are not POSIX utmpx compatible, even though
last(1) and utmpdump(1) does not use them, see below.
utmpx.h is used in:
login agetty write lslogins last runuser su utmpdump wall
Non-Posix utmpx usage:
utmpxname -> login agetty write lslogins
updwtmpx -> login agetty runuser su
_PATH_.TMP -> login agetty write lslogins last runuser su
utmpx.ut_addr_v6 -> login last utmpdump
Ruediger Meier [Thu, 1 Dec 2016 08:52:11 +0000 (09:52 +0100)]
login-utils: switch to utmpx.h
Now the build will fail on many non-Linux systems because
utmpx.h is available everywhere but we still use non-POSIX
features. We'll fix this next commit.
Previously (and as documented in the manpage) the default policy
was SCHED_RR. Now it's implicitly SCHED_OTHER (0) as the value
is not initialized explicitly anymore.
Test-command: chrt 90 echo hello
Reported-by: Patrick Pelissier <patrick.pelissier@gmail.com>
Addresses: http://bugs.debian.org/846572 Signed-off-by: Andreas Henriksson <andreas@fatal.se>
Jim Patterson [Wed, 16 Nov 2016 17:22:14 +0000 (12:22 -0500)]
wall: add --group option
The wall command on AIX supports a "-g" option to limit the message
to a group of users by gid. Add compatibility to the Linux version.
Thanks to Sami Kerola <kerolasa@iki.fi> for an initial skeleton
implementation.
[kzak@redhat.com: - rename max to ngroups
- add free_group_workspace()
- some cosmetic changes]
Reference: http://www.ibm.com/support/knowledgecenter/ssw_aix_61/com.ibm.aix.cmds6/wall.htm Signed-off-by: Jim Patterson <jimp@wegrok.net> Signed-off-by: Karel Zak <kzak@redhat.com>
Karel Zak [Wed, 30 Nov 2016 11:43:10 +0000 (12:43 +0100)]
sfdisk: support empty label use-case
By default sfdisk creates partition table when a first partition is
specified, otherwise the device is not modified. This force users to
create at least one partition.
This commit allows to create empty label without partitions if "label:
<name>" header line is specified by script.
The commit also modifies "New situation:" output to list label name
and label identifier.
Addresses: https://github.com/karelzak/util-linux/issues/374 Signed-off-by: Karel Zak <kzak@redhat.com>
Provide better cross references for namespace concepts
For each namespace that is discussed, add more explicit
references to the corresponding clone(2) flags and
add references to relevant section 7 namespace pages.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Provide better cross references for namespace concepts
For each namespace that is discussed, add more explicit
references to the corresponding clone(2) flags and
add references to relevant section 7 namespace pages.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
The sigvec(3) (not sigvec(2)) page documents ancient BSD APIs.
The right page to cross reference here is sigaction(2),
which documents the modern POSIX APIs.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
Some time back, I moved the discussion of scheduling from
sched_setscheduler(2) to a new sched(7) page. Adjust the cross
reference in the taskset(1) page accordingly.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
* Order SEE ALSO entries first by section name, then alphabetically
within section
* Adds one or two missing commas in SEE ALSO lists
* Removes one or two periods that were (inconsistently) used
at the end of SEE ALSO lists.
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>