summaryrefslogtreecommitdiffstats
path: root/login-utils/su.c
Commit message (Collapse)AuthorAgeFilesLines
* su: fix stupid typoKarel Zak2012-11-011-2/+2
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: move generic su code to su-common.cKarel Zak2012-09-041-873/+3Star
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: add --group and --supp-group optionsKarel Zak2012-09-041-4/+69
| | | | | | | | | | | | | | | | | | | These options allow to specify alternative groups. The command su(1) has to be executed by root. The implementation is based on Fedora runuser(1) command. For example: # su --group=kzak --supp-group=uuidd - # id uid=0(root) gid=1000(kzak) groups=0(root),985(uuidd),1000(kzak) non-root user: $ su --group=kzak - su: only root can specify alternative groups Signed-off-by: Karel Zak <kzak@redhat.com>
* su: use xstrdup()Karel Zak2012-07-261-3/+1Star
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: fix compiler warning [-Wmissing-prototypes]Karel Zak2012-07-161-0/+1
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: align with howto-usage-functionSami Kerola2012-07-161-26/+25Star
| | | | Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* Merge branch '2012wk23' of git://github.com/kerolasa/lelux-utiliteetitKarel Zak2012-06-151-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * '2012wk23' of git://github.com/kerolasa/lelux-utiliteetit: lsblk: use blkdev_scsi_type_to_name() blkdev: add blkdev_scsi_type_to_name() wipefs: use symbolic value for markup mode eject: inform if CD-ROM drive is not ready docs: clean up partx.8 manual include: fix void pointer arithmetics warnings sysfs: fix printf format warnings build: fix unused parameter warnings build: fix redundant redeclaration warnings include: fix spurious list.h warnings uuidd: use output redirection which works [checkbashisms] blkid: fix realloc memory leak [cppcheck] setarch: do not use -1 as array index [cppcheck]
| * build: fix redundant redeclaration warningsSami Kerola2012-06-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | env.c:24:15: warning: redundant redeclaration of 'environ' [-Wredundant-decls] su.c:81:15: warning: redundant redeclaration of 'environ' [-Wredundant-decls] fstab.c:581:14: warning: redundant redeclaration of 'strsignal' [-Wredundant-decls] kill.h:1:13: note: previous declaration of 'get_pids' was here kill.c:152:13: warning: redundant redeclaration of 'get_pids' [-Wredundant-decls] kill.c:142:5: warning: redundant redeclaration of 'main' [-Wredundant-decls] getopt.c:89:5: warning: redundant redeclaration of 'main' [-Wredundant-decls] agetty.c:536:15: warning: redundant redeclaration of 'optarg' [-Wredundant-decls] agetty.c:537:13: warning: redundant redeclaration of 'optind' [-Wredundant-decls] script.c:161:13: warning: redundant redeclaration of 'optind' [-Wredundant-decls] wall.c:96:13: warning: redundant redeclaration of 'optind' [-Wredundant-decls] libmount.h:362:26: note: previous declaration of 'mnt_update_get_fs' was here libmount.h:454:26: note: previous declaration of 'mnt_context_get_fs' was here mountP.h:383:26: warning: redundant redeclaration of 'mnt_context_get_fs' [-Wredundant-decls] mountP.h:398:26: warning: redundant redeclaration of 'mnt_update_get_fs' [-Wredundant-decls] Signed-off-by: Sami Kerola <kerolasa@iki.fi>
* | su: remove unimplemented options -u and -vBernhard Voelker2012-06-151-8/+10
|/ | | | Signed-off-by: Bernhard Voelker <mail@bernhard-voelker.de>
* su: preserve errno in cleanup_pam()Ludwig Nussel2012-06-051-0/+4
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: use BSD err function instead of gnu's error()Ludwig Nussel2012-06-051-19/+19
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: remove unused codeLudwig Nussel2012-06-051-4/+1Star
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: replace PAM_BAIL_P macro with better solutionLudwig Nussel2012-06-051-28/+28
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: introduce xsetenv globallyLudwig Nussel2012-06-051-25/+11Star
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: use ENV_PATH resp ENV_SUPATH to be consistent with loginLudwig Nussel2012-06-051-8/+16
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: use EXIT_FAILURE consistentlyLudwig Nussel2012-06-051-9/+6Star
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: don't use custom MAX macroLudwig Nussel2012-06-051-5/+1Star
| | | | Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
* su: remove program_nameKarel Zak2012-05-291-12/+6Star
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: fix compiler warning [-Wunused-parameter]Karel Zak2012-05-291-1/+1
| | | | Signed-off-by: Karel Zak <kzak@redhat.com>
* su: Don't include the unused <sys/fsuid.h>Thomas Schwinge2012-05-291-2/+0Star
| | | | | Signed-off-by: Thomas Schwinge <thomas@codesourcery.com> Signed-off-by: Karel Zak <kzak@redhat.com>
* use existing logindefs.c and pathnames.hLudwig Nussel2012-05-251-15/+18
| | | | | | I'm not sure having /usr/local in _PATH_DEFPATH_ROOT and even putting it in front is such a good idea though. /usr/local might be on NFS so could prevent root from logging in if the network is down.
* syslog alwaysLudwig Nussel2012-05-251-29/+4Star
|
* remove non pam codeLudwig Nussel2012-05-251-115/+20Star
|
* make su build as part of util-linuxLudwig Nussel2012-05-241-36/+39
|
* call setsid() when called with -cTim Waugh2012-05-241-5/+35
| | | | | | Prevents command injection via TIOCSTI https://bugzilla.redhat.com/show_bug.cgi?id=173008
* make sure /sbin resp /usr/sbin are in PATHWerner Fink2012-05-241-0/+127
|
* honor settings in /etc/default/su resp /etc/login.defsLudwig Nussel2012-05-241-11/+20
|
* set sane default pathLudwig Nussel2012-05-241-10/+2Star
|
* log all su attemptsLudwig Nussel2012-05-241-0/+3
|
* pam support for suLudwig Nussel2012-05-241-6/+264
|
* Help translators include translation team's web or email address.Jim Meyering2007-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * src/system.h (emit_bug_reporting_address): New function. * src/base64.c: Use it rather than a literal printf. * src/basename.c, src/cat.c, src/chgrp.c, src/chmod.c: * src/chown.c, src/chroot.c, src/cksum.c, src/comm.c, src/cp.c: * src/csplit.c, src/cut.c, src/date.c, src/dd.c, src/df.c: * src/dircolors.c, src/dirname.c, src/du.c, src/echo.c, src/env.c: * src/expand.c, src/expr.c, src/factor.c, src/fmt.c, src/fold.c: * src/head.c, src/hostid.c, src/hostname.c, src/id.c, src/install.c: * src/join.c, src/kill.c, src/link.c, src/ln.c, src/logname.c: * src/ls.c, src/md5sum.c, src/mkdir.c, src/mkfifo.c, src/mknod.c: * src/mv.c, src/nice.c, src/nl.c, src/nohup.c, src/od.c: * src/paste.c, src/pathchk.c, src/pinky.c, src/pr.c, src/printenv.c: * src/printf.c, src/ptx.c, src/pwd.c, src/readlink.c, src/rm.c: * src/rmdir.c, src/seq.c, src/setuidgid.c, src/shred.c, src/shuf.c: * src/sleep.c, src/sort.c, src/split.c, src/stat.c, src/stty.c: * src/su.c, src/sum.c, src/sync.c, src/system.h, src/tac.c: * src/tail.c, src/tee.c, src/test.c, src/touch.c, src/tr.c: * src/true.c, src/tsort.c, src/tty.c, src/uname.c, src/unexpand.c: * src/uniq.c, src/unlink.c, src/uptime.c, src/users.c, src/wc.c: * src/who.c, src/whoami.c, src/yes.c: Likewise.
* Don't include dirname.h, since system.h does it now.Paul Eggert2006-09-031-1/+0Star
|
* Add a bootstrap procedure, so that the CVS version contains fewerPaul Eggert2006-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | files and we bootstrap the rest from gnulib, gettext, etc. * README-cvs: New file. * bootstrap: New file. * bootstrap.conf: New file. * .x-sc_trailing_blank: Remove config-log, .gdb-history. Add .po. * configure.ac (AC_PREREQ): Move here from m4/*.m4, for benefit of gnulib-tool. (gl_DEFAULT_POSIX2_VERSION, gl_USE_SYSTEM_EXTENSIONS, gl_PERL): (gl_IGNORE_UNUSED_LIBRARIES): Remove; now done by gnulib. (gl_EARLY): Add. (gl_MACROS): Call just after gl_EARLY, just for clarity. * src/c99-to-c98.diff: Remove patch to ls.c; no longer needed. * src/kill.c (strtoimax): Remove decl. * src/ls.c: Include "wcwidth.h" instead of rolling it ourselves. * src/wc.c: Likewise. * src/ls.c (sort_files): Rewrite to avoid need for C99-style declaration, so that we don't need to patch this file. * src/printf.c (strtoimax, strtoumax): Remove decls. * src/su.c: Include getpass.h. (getpass): remove. * src/system.h: Include mempcpy.h, stpcpy.h, strpbrk.h. Include inttypes.h unconditionally; remove decls it handles. * lib/Makefile.am: include gnulib.mk, so that we can remove most of this file. (AM_CPPFLAGS): Don't mention -I$(srcdir), since that's now done for us. (noinst_LIBRARIES, LDDADD, DEFS): Remove. (libcoreutils_a_SOURCES): Trim down greatly, just to the files that aren't in gnulib. Remove defns gnulib does for us. * m4/check-decl.m4 (gl_CHECK_DECLS): Don't include stdio.h, string.h, stdlib.h, unistd.h, sys/time.h, time.h. Use AC_CHECK_DECLS_ONCE for free, getenv, geteuid, getlogin, getuid, lseek, malloc, memchr, realloc. Don't check for getutent, memrchr, nanosleep, stpcpy, strndup, strnlen, strstr, strtoul, strtoull. (_gl_DECL_HEADERS): Remove; all uses removed. * m4/jm-macros.m4 (gl_MACROS): Move AC_PREREQ into configure.ac for the benefit of gnulib-tool. Call gl_INIT. Do not call or require macros that gnulib will handle for us. Don't check for fchmod, hasmntopt, isascii, lchown, listmntent, mempcpy, realpath, wcrtomb, tzset. (gl_CHECK_ALL_HEADERS): Don't check for sys/statvfs.h, sys/vfs.h, sys/mount.h. (gl_CHECK_ALL_TYPES): Require AC_TYPE_UNSIGNED_LONG_LONG_INT. Don't check for struct stat.st_blksize. Don't require AC_STRUCT_ST_DM_MODE, gt_TYPE_SSIZE_T, gl_AC_TYPE_UINT32_T, gl_AC_TYPE_UINTMAX_T, gl_AC_TYPE_UINTPTR_T, gl_AC_TYPE_UNSIGNED_LONG_LONG. * m4/prereq.m4 (gl_PREREQ): Require gl_FUNC_XFTS, gl_ROOT_DEV_INO. Don't require macros that gnulib does for us. * m4/stat-prog.m4 (cu_PREREQ_STAT_PROG): Don't check for sys/sysmacros.h. Don't check for statvfs. Use AC_CHECK_HEADERS_ONCE for netinet/in.h, nfs/nfs_clnt.h, nfs/vfs.h. Don't require gl_AC_TYPE_LONG_LONG, gt_HEADER_INTTYPES_H.
* * src/su.c (usage): Correct typo in --help output: s/commmand/command/Jim Meyering2006-07-211-23/+1Star
| | | | | Reported by Tim Waugh. Also remove the comment duplicating much of --help output.
* (log_su, run_shell): Use new last_component, in place of base_name.Jim Meyering2006-03-261-4/+4
|
* Remove unnecessary parens in `#if defined (SYMBOL)' expressions.Jim Meyering2005-08-231-2/+2
|
* Update FSF postal mail address.Jim Meyering2005-05-141-1/+1
|
* Update FSF postal mail address.Jim Meyering2005-05-141-1/+1
|
* (run_shell): Pass a new n_additional_args arg, so thatPaul Eggert2004-08-041-127/+91Star
| | | | | | | | | | | | | | | | | | | | | | the callee doesn't have to count 'em. All callers changed. Don't allocate more space for the arg vector than we'll need. Use memcpy to copy the args rather than rolling our own loop. Use size_t for sizes. (fast_startup, simulate_login, change_environment, log_su, correct_password, restricted_shell, main): Use bool for booleans. (longopts): Don't assume change_environment is an int. Use NULL, not 0, for pointers. (xsetenv): New function, replacing xputenv and concat. All callers changed. (elements): Remove; no longer needed. (log_su, correct_passwd, main): Prefer !x to x==NULL. (log_su): 2 -> STDERR_FILENO. (modify_environment, main): Don't assume that getenv's returned value has an indefinite lifetime. (modify_environment): Allocate a larger environ. (main): Remove an impossible 'case 0'; if it happens now, it'll get diagnosed. Don't assume getpwnam results outlive endpwent. Check for null or empty pw_name, pw_dir and for null pw_passwd.
* (correct_password, restricted_shell, main):Jim Meyering2004-06-011-3/+3
| | | | Prefer the notation `STREQ (a, b)' over `strcmp (a, b) == 0'.
* (usage): Use EXIT_SUCCESS, not 0, for clarity.Jim Meyering2004-01-221-9/+10
| | | | | | | (main): Initialize exit_failure to EXIT_FAIL. (main): Use EXIT_ENOENT and EXIT_CANNOT_INVOKE rather than roll-your-own symbols or integers.
* Most .c files (AUTHORS): Revert the WRITTEN_BY/AUTHORS changeJim Meyering2003-10-181-2/+2
| | | | | | | | | of 2003-09-19. Now, AUTHORS is a comma-separated list of strings. Update the call to parse_long_options so that `AUTHORS, NULL' are the last parameters. * src/true.c (main): Append NULL to version_etc argument list. * src/sys2.h (case_GETOPT_VERSION_CHAR): Likewise.
* (WRITTEN_BY): Rename from AUTHORS.Jim Meyering2003-09-191-2/+2
| | | | | Begin each WRITTEN_BY string with `Written by ' and end it with `.'. Mark each WRITTEN_BY string as translatable.
* Don't include headers already included by system.h:Jim Meyering2003-07-231-1/+0Star
| | | | Don't include closeout.h.
* (usage): Don't call close_stdout here.Jim Meyering2003-07-181-1/+2
| | | | | | | (main): Use close_stdout via atexit. Now `su --version > /dev/full' fails, as it should. Somehow, the change of 2000-05-07 that purports to fix this was not checked in.
* (main): Call initialize_main.Jim Meyering2003-06-171-0/+1
|
* Remove anachronistic casts of xmalloc,Jim Meyering2003-04-111-5/+5
| | | | xrealloc, and xcalloc return values and of xrealloc's first argument.
* Change `exit (0)' to `exit (EXIT_SUCCESS)',Jim Meyering2002-08-311-2/+2
| | | | | `exit (1)' to `exit (EXIT_FAILURE)', and `usage (1)' to `usage (EXIT_FAILURE)'.
* Change `error (1, ...' to `error (EXIT_FAILURE, ...'.Jim Meyering2002-08-311-5/+5
|
* (run_shell): Exit with status 126 or 127 when execvp orJim Meyering2002-08-011-2/+6
| | | | execv fails, for consistency with POSIX commands like env and nice.