On 2014-04-08 Tue 07:17 AM |, Andres Perera wrote:
> 
> You do that with `sudo -c - -l`:
> 
> $ sudo -c - -i 'ulimit -a; env' > eb
> $ diff -u ea e
> --- ea Tue Apr  8 07:13:11 2014
> +++ eb Tue Apr  8 07:14:22 2014
> @@ -1,29 +1,24 @@
> -LOGNAME=a
> +LOGNAME=root
> 
> Also see `use_loginclass` in sudoers(5).
> 

Unfortunately Andres, that doesn't work here for non-root:

$ userinfo $LOGNAME | fgrep class
class   staff
        ^^^^^
$ echo $LOGNAME; echo $PATH; echo $MAIL; umask
craig
/usr/bin:/bin:/usr/sbin:.../usr/site/bin:/usr/site/sbin:/home/craig/bin
/var/mail/craig
027

$ userinfo david | fgrep class
class
$ sudo -c - -i -u david
$ userinfo $LOGNAME | fgrep class
class
        ^^^^^
$ echo $LOGNAME; echo $PATH; echo $MAIL; umask
david
/usr/bin:/bin:/usr/sbin:.../usr/site/bin:/usr/site/sbin:/home/craig/bin
                                                              ^^^^^
/var/mail/craig
          ^^^^^
027
  ^

$ exit
$ fgrep use_loginclass /etc/sudoers
Defaults always_set_home, ignore_dot, use_loginclass

$ login david
Password:
$ echo $LOGNAME; echo $PATH; echo $MAIL; umask
david
/usr/bin:/bin:/usr/local/bin:/usr/site/bin:/home/david/bin
                                                 ^^^^^
/var/mail/david
          ^^^^^
022
  ^
$ /usr/sbin/userinfo $LOGNAME | fgrep class
class
        ^^^^^




/etc/login.conf:
...
...
default:\
        :path=/usr/bin /bin /usr/local/bin /usr/site/bin ~/bin:\
        :umask=022:\
        :datasize....
                         
staff:\
        :path=/usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin 
/usr/site/bin /usr/site/sbin ~/bin:\
        :umask=027:\
        :ignorenologin:\
        :datasize...


$ sudo -c default -i -u david
sudo: only root can use -c default


>From what I'm seeing, "sudo -iu username" isn't setting
$PATH, $MAIL & umask, as set by login/su -l, rather than shell dotfiles.

Reply via email to