summaryrefslogtreecommitdiffstats
path: root/login-utils
Commit message (Collapse)AuthorAgeFilesLines
* chfn: don't append extra tailing commasKarel Zak2019-08-191-1/+1
| | | | | | | | | | | | | | | | | | | # grep kzak /etc/passwd kzak:x:1000:1000::/home/kzak:/bin/bash # chfn kzak ... grep kzak /etc/passwd old version: kzak:x:1000:1000:Karel Zak,,,,:/home/kzak:/bin/bash fixed version: kzak:x:1000:1000:Karel Zak:/home/kzak:/bin/bash Reported-by: Filip Dvorak <fdvorak@redhat.com> References: f723cbf544a7eac2927634f2cb6d802437a2d519 Signed-off-by: Karel Zak <kzak@redhat.com>
* login: simplify string handlingSami Kerola2019-07-241-4/+1Star
| | | | Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* last: replace strncat() with more robust mem2strcpy()Sami Kerola2019-07-241-2/+1Star
| | | | Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* su: More descriptive error message on malformed user entryJakub Hrozek2019-05-311-1/+3
| | | | | | | | | | | With users coming from LDAP, it is often the case that the entry in LDAP does not contain one or more attributes required by su or, because of misconfigured access control rights, the attribute might not be readable by the LDAP client. In that case, su just tells the user that the user does not exist. It might be more user-friendly to tell the user to check the user entry for all required fields.
* login: retire use of __FUNCTION__ macroKarel Zak2019-05-271-4/+3Star
| | | | | | | | | | | | | | This fixes following warning about deprecatd __FUNCTION__ that is another name for __func__ since GCC (pre 2.95, released July 1999). login-utils/login.c:860:10: warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic] Co-Author: Sami Kerola <kerolasa@iki.fi> Reference: https://c0x.coding-guidelines.com/6.4.2.2.html Reference: https://github.com/karelzak/util-linux/pull/802 Signed-off-by: Sami Kerola <kerolasa@iki.fi> Signed-off-by: Karel Zak <kzak@redhat.com>
* vipw: use xstrncpy()Karel Zak2019-05-201-6/+6
| | | | | | It's already used by vipw, so use it everywhere. Signed-off-by: Karel Zak <kzak@redhat.com>
* Merge branch '2019wk19' of https://github.com/kerolasa/util-linuxKarel Zak2019-05-201-4/+5
|\ | | | | | | | | | | | | | | | | | | | | * '2019wk19' of https://github.com/kerolasa/util-linux: lib/colors: remove redundant if statement wipefs: fix variable / function shadowing [cppcheck] sulogin: fix variable / function shadowing [cppcheck] lscpu: remove redundant condition check [cppcheck] libmount: avoid possible null pointer dereference [cppcheck] lib/mangle: fix possible null pointer dereference [cppcheck] sfdisk: remove unnecessary size check [cppcheck]
| * sulogin: fix variable / function shadowing [cppcheck]Sami Kerola2019-05-181-4/+5
| | | | | | | | | | | | | | | | | | [login-utils/sulogin.c:398] -> [login-utils/sulogin.c:171]: (style) Local variable set shadows outer function [login-utils/sulogin.c:398] -> [login-utils/sulogin.c:830]: (style) Local variable set shadows outer function Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* | utmpdump: check ftello() return valueKarel Zak2019-05-161-0/+3
|/ | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: make comment more friedly to 'make checkxalloc'Karel Zak2019-04-241-1/+1
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: Fix discrepancies of SYS_UID_MINStanislav Brabec2019-04-242-4/+4
| | | | | | | | | | | | | | | | | | | | util-linux does not contain useradd. Its most popular implementation comes from shadow. SYS_UID_MIN is one of common parameters. Its hardcoded fallback value is equal to 101 in shadow useradd (see shadow-4.6/libmisc/find_new_uid.c: get_ranges()), but 201 in login-utils/lslogins.c. Let lslogins use the same fallback as useradd from shadow. Hopefully most distros define its custom value of SYS_UID_MIN in /etc/login.defs, so this problem is not visible. login-utils/lslogins.1 does not mention its default at all. Add a reference and improve text of lslogins(1) to prevent off-by-one interpretation. Signed-off-by: Stanislav Brabec <sbrabec@suse.cz> Signed-off-by: Karel Zak <kzak@redhat.com>
* misc: consolidate version printing and close_stdout()Karel Zak2019-04-1613-37/+25Star
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: change error messageKarel Zak2019-03-251-1/+1
| | | | | | | | | We use PAM and if pam_strerror() returns nothing we have no clue why authentication failed. It's mistake to blame incorrect password if there are many possible reason... Addresses: https://github.com/karelzak/util-linux/issues/778 Signed-off-by: Karel Zak <kzak@redhat.com>
* su: add note about ECHO on --ptyKarel Zak2019-03-062-0/+8
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: be sensitive to another SIGCHLD ssi_codesKarel Zak2019-03-061-1/+4
| | | | | | See the same issue for script: 27afe5016842c22d256ea9f88b598d637ca0df84 Signed-off-by: Karel Zak <kzak@redhat.com>
* su: fix --pty terminal initializationKarel Zak2019-03-061-13/+12Star
| | | | | | | | | | | | * use proper winsize rather than uninitialized variable (Oops...) * set the current terminal to the raw mode * disable ECHO for non-terminal execution to be compatible with non-pty output Addresses: https://github.com/karelzak/util-linux/issues/767 Signed-off-by: Karel Zak <kzak@redhat.com>
* su/runuser: don't mark --pty as experimental, add it to runuser.1 tooKarel Zak2019-03-042-3/+9
| | | | | | | | | * let's assume that --pty is stable enough that we do not have to remove it ;-) * add --pty to the runuser.1 man page Addresses: https://github.com/karelzak/util-linux/issues/760 Signed-off-by: Karel Zak <kzak@redhat.com>
* last: do not use non-standard __UT_NAMESIZEPatrick Steinhardt2019-03-041-1/+1
| | | | | | | | | | | | | | | In commit b22332dd4 (last: fix wtmp user name buffer overflow [asan], 2019-01-13), we started to make sure that the `ut_user` field of the `utmpx` struct is always NUL-terminated. The implementation makes use of the `__UT_NAMESIZE` define to determine the position of the last character in that array. The problem is that this is a non-standard define that is not necessarily available on non-glibc platforms. As there is no standardized define, we should just use `sizeof`. This fixes compilation on musl libc based systems. Signed-off-by: Patrick Steinhardt <ps@pks.im>
* docs: fix typos [codespell]Sami Kerola2019-02-181-1/+1
| | | | | Reference: https://github.com/codespell-project/codespell Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* last: fix wtmp user name buffer overflow [asan]Sami Kerola2019-01-131-0/+1
| | | | | | | | Ensure utmp user name field is null terminated. Without that getpwnam() can buffer overflow, when wtmp file is malformed. Addresses: https://github.com/karelzak/util-linux/issues/715 Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* login: add support for login.defs(5) LASTLOG_UID_MAXKarel Zak2019-01-112-0/+14
| | | | | | | | | | This new variable allows to keep lastlog file small and filter out things like huge nfsnobody UIDs. The variable is also supported by shadow-utils (adduser, etc.). Addresses: https://github.com/shadow-maint/shadow/pull/142/ Signed-off-by: Karel Zak <kzak@redhat.com>
* login-utils/logindefs: clenaup APIKarel Zak2019-01-112-2/+2
| | | | | | The default value should be unsigned if the result is also unsigned... Signed-off-by: Karel Zak <kzak@redhat.com>
* su-common.c: prefer ENV_SUPATH over ENV_ROOTPATHStanislav Brabec2019-01-104-5/+5
| | | | | | | | ENV_SUPATH and ENV_ROOTPATH are equivalent and ENV_ROOTPATH takes precedence in both login and su. It makes no sense. More logical would be precedence of ENV_SUPATH in su and ENV_ROOTPATH in login. Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
* su-common.c: prefer /etc/default/su over login.defsStanislav Brabec2019-01-101-1/+1
| | | | | | | | | | | | | | | | su(1) documentation says: /etc/default/su command specific logindef config file /etc/login.defs global logindef config file It indirectly indicates that /etc/default/su should take precedence over /etc/login.defs. But the reverse is true. It is not possible to define ENV_PATH in /etc/login.defs and then make su specific customization in /etc/default/su. We need to change read order to match the documented behavior. Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
* utmpdump: fix word swapping in manual pageCarlos Santos2019-01-081-1/+1
| | | | | | | | | | From The only binary version of the utmp(5) is standardised. To Only the binary version of the utmp(5) is standardised. Change-Id: I0033f6cf055d569c7dfca5e05e918f735ea72582 Signed-off-by: Carlos Santos <casantos@datacom.com.br>
* lslogins: make valid_pwd() more robustKarel Zak2018-12-111-2/+8
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: remove duplicate NULL checkSami Kerola2018-12-101-1/+1
| | | | | | | | | | | Having this excess NULL check in place causes small performance penalty, and makes compiler to guess wrong if a null should be checked. To me getting rid of false positive warning is more useful. login-utils/lslogins.c:634:7: warning: potential null pointer dereference [-Wnull-dereference] Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* su: cleanup code to copy to log stringsKarel Zak2018-10-031-3/+3
| | | | | | | | man utmp: String fields are terminated by a null byte ('\0') if they are shorter than the size of the field. Signed-off-by: Karel Zak <kzak@redhat.com>
* login: cleanup code to copy to log stringsKarel Zak2018-10-031-12/+12
| | | | | | | | man utmp: String fields are terminated by a null byte ('\0') if they are shorter than the size of the field. Signed-off-by: Karel Zak <kzak@redhat.com>
* last: make sure domain is zero terminatedKarel Zak2018-10-031-9/+2Star
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: add note about merged /usrKarel Zak2018-08-222-0/+6
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* sulogin: restore signals after failed exec() onlyKarel Zak2018-08-161-7/+5Star
| | | | | | | | | | | * removes unnecessary variable * the current code restores signals always when shell has not been executed -- this is correct as function sushell() modify signal mask, but in all another cases we do not need touch the mask. Especially when we ask for the password in endless while() loop... Signed-off-by: Karel Zak <kzak@redhat.com>
* sulogin: do not use plain 0 as NULLKarel Zak2018-08-161-4/+5
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* Fix man page typosJakub Wilk2018-08-161-1/+1
| | | | Signed-off-by: Jakub Wilk <jwilk@jwilk.net>
* su: add --whitelist-environmentKarel Zak2018-08-153-16/+120
| | | | | | | | | | | | | | | | | | | * usable with --login to whitelist specified environment variables * the list is ignored for the core variables like HOME, SHELL, USER, LOGNAME and PATH (su --login always resets these variables) Note that su(1) requires password and after successful authentication user has full control over the session, so he can set arbitrary environment variables. The whitelist makes things more user friendly only. The patch removes unnecessary optimization when allocate environ[]. It seems better to keep all in glibc hands and just reset the environment array only. Addresses: https://github.com/karelzak/util-linux/issues/221 Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: return 1 on "lslogins nonexisting"Karel Zak2018-08-132-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | The default behavior for -l and -g is to silently ignore unknown login names, but this is very confusing when you explicitly specify just one login name. Note that the current implementation also prints empty "Last log" for nonexisting user. It seems ugly. # lslogins nonexisting Last logs: new version: # lslogins nonexisting lt-lslogins: cannot found 'nonexisting' # echo $? 1 The -l and -g behaviour has not been changed. Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1614967 Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: add info about single-user output modeKarel Zak2018-08-132-2/+11
| | | | | | | | | | | | The supported command line synopsis is also lslogins foo and it provides different output than lslogins -l foo Signed-off-by: Karel Zak <kzak@redhat.com>
* man pages: Remove "left" (or change to "l") in the column formats of tablesBjarni Ingi Gislason2018-08-061-1/+1
| | | | | | | | | A developmental version of "groff" issued a warning, for example with "test-groff -b -e -mandoc -T utf8 -rF0 -t -w w -z": troff: <logger.1>:299: warning: can't find font 't' Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
* su: add note about SIGKILL to the man pageKarel Zak2018-08-031-2/+3
| | | | | Addresses: https://github.com/karelzak/util-linux/issues/443 Signed-off-by: Karel Zak <kzak@redhat.com>
* login: use const qualifier for username from PAM or struct passwd [-Wcast-qual]Karel Zak2018-07-231-6/+11
| | | | | | | | | It seems more robust to use 'const' qualifier for username if this variable points to external resources like PAM or struct passwd. The patch introduces new variable cmd_username for username specified on login(1) command line. Signed-off-by: Karel Zak <kzak@redhat.com>
* setterm: fix compiler warnings [-Wcast-qual]Karel Zak2018-07-231-3/+3
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: remove redundant conditionKarel Zak2018-07-181-1/+1
| | | | | | | [util-linux-2.32.1/login-utils/lslogins.c:601]: (style) Redundant condition: If '!EXPR', the comparison 'EXPR != '$'' is always true. Reported-by: David Binderman <dcb314@hotmail.com> Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: add -o+<COLNAME> supportKarel Zak2018-05-232-17/+20
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: add PWD-METHOD columnKarel Zak2018-05-231-1/+16
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* lslogins: fix password verificationKarel Zak2018-05-231-4/+74
| | | | | | | | | | | Let's follow the standard $id$salt$encrypted password format in verification code. The current code is useless and for example PWD-LOCK column is always FALSE. Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1581611 Signed-off-by: Karel Zak <kzak@redhat.com>
* man: Change the only argument to two for the two-fonts macrosBjarni Ingi Gislason2018-05-232-3/+3
| | | | | | | Punctuation marks have been left in the only argument of two-fonts macros, instead of being separated from it to make the second one. Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
* man: Use the correct macro for a font change of one argumentBjarni Ingi Gislason2018-05-233-12/+12
| | | | | | | | Use the correct macro (I, B) for the font change of one argument, not those that are used for alternating two fonts, like "BR", "IR", "RB", or "RI". Signed-off-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
* Merge branch 'output-all' of https://github.com/kerolasa/lelux-utiliteetitKarel Zak2018-05-102-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'output-all' of https://github.com/kerolasa/lelux-utiliteetit: zramctl: add --output-all option swapon: add --output-all option rfkill: add --output-all option partx: add --output-all option lsns: add --output-all option lsmem: add --output-all option lslogins: add --output-all option lslocks: add --output-all option lscpu: add --output-all option losetup: add --output-all option findmnt: add --output-all option
| * lslogins: add --output-all optionSami Kerola2018-05-032-0/+10
| | | | | | | | Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* | last: fix false positive compiler warningSami Kerola2018-05-101-1/+1
|/ | | | | | | | | | | | | login-utils/last.c: In function ‘list’: login-utils/last.c:398:36: warning: argument to ‘sizeof’ in ‘strncat’ call is the same expression as the source; did you mean to use the size of the destination? [-Wsizeof-pointer-memaccess] strncat(utline, p->ut_line, sizeof(p->ut_line)); The sizeof(utline) is defined as sizeof(p->ut_line) + 1, so the compiler got that wrong. Lets truncate strncat() otherway around to keep gcc 8.1 happy. Signed-off-by: Sami Kerola <kerolasa@iki.fi>