You are not logged in.

#1 2018-03-19 18:59:28

richcocoa
Member
From: India
Registered: 2013-05-31
Posts: 21

[SOLVED] Strange behaviour with `sudo -s`

I am encountering somewhat unusual behaviour on arch when using sudo -s.

According to the documentation, running sudo -s should preserve the home directory unless set_home is specified. However I end up with the root user's home directory.

$ sudo -s
[root@richcocoa-laptop-arch richcocoa]# cd
[root@richcocoa-laptop-arch ~]# pwd
/root
[root@richcocoa-laptop-arch ~]# 

My sudoers file:

## sudoers file.                                                                                                                       
##                                                                                                                                     
## This file MUST be edited with the 'visudo' command as root.                                                                         
## Failure to use 'visudo' may result in syntax or file permission errors                                                              
## that prevent sudo from running.                                                                                                     
##                                                                                                                                     
## See the sudoers man page for the details on how to write a sudoers file.                                                            
##                                                                                                                                     
                                                                                                                                       
##                                                                                                                                     
## Host alias specification                                                                                                            
##                                                                                                                                     
## Groups of machines. These may include host names (optionally with wildcards),                                                       
## IP addresses, network numbers or netgroups.                                                                                         
# Host_Alias    WEBSERVERS = www1, www2, www3                                                                                          
                                                                                                                                       
##                                                                                                                                     
## User alias specification                                                                                                            
##                                                                                                                                     
## Groups of users.  These may consist of user names, uids, Unix groups,                                                               
## or netgroups.                                                                                                                       
# User_Alias    ADMINS = millert, dowdy, mikef                                                                                         
                                                                                                                                       
##                                                                                                                                     
## Cmnd alias specification                                                                                                         ## Groups of commands.  Often used to group related commands together.
# Cmnd_Alias    PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
#                           /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias    REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff

##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file.  Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods.  Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

##                                                                                                                                     
## Uncomment to use a hard-coded PATH instead of the user's to find commands                                                           
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"                                                  
##                                                                                                                                     
## Uncomment to send mail if the user does not enter the correct password.                                                             
# Defaults mail_badpass                                                                                                                
##                                                                                                                                     
## Uncomment to enable logging of a command's output, except for                                                                       
## sudoreplay and reboot.  Use sudoreplay to play back logged sessions.                                                                
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output

##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw  # Ask for the password of the target user
# ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'

## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

Also sudo is not aliased to anything:

$ alias sudo
bash: alias: sudo: not found

EDIT:
My /etc/sudoers.d directory is empty.

I would appreciate any help in figuring out why it is behaving like this. This is not causing any issues per se. I am simply curious about this behaviour that is all.

Last edited by richcocoa (2018-03-19 19:25:06)

Offline

#2 2018-03-19 19:16:26

paulkerry
Member
From: Sheffield, UK
Registered: 2014-10-02
Posts: 611

Re: [SOLVED] Strange behaviour with `sudo -s`

richcocoa wrote:

I am encountering somewhat unusual behaviour on arch when using sudo -s.
According to the documentation, running sudo -s should preserve the home directory unless set_home is specified. However I end up with the root user's home directory.

Which documentation are you reading, because reading...

man sudo

"-s" doesn't do what you say.

Offline

#3 2018-03-19 19:17:34

richcocoa
Member
From: India
Registered: 2013-05-31
Posts: 21

Re: [SOLVED] Strange behaviour with `sudo -s`

Nevermind. Found the answer at askUbuntu.

The gist of it is there are compile time options that configure default behaviour in addition to entries in sudoers. You can check compile time options with `sudo -V`.

Offline

#4 2018-03-19 19:23:34

richcocoa
Member
From: India
Registered: 2013-05-31
Posts: 21

Re: [SOLVED] Strange behaviour with `sudo -s`

paulkerry wrote:

Which documentation are you reading, because reading...

man sudo

"-s" doesn't do what you say.

In the man page, near the bottom, in the ENVIRONMENT section, check the entry for HOME:

     HOME             Set to the home directory of the target user when the -i or -H options are specified, when the -s option is
                      specified and set_home is set in sudoers, when always_set_home is enabled in sudoers, or when env_reset is
                      enabled in sudoers and HOME is not present in the env_keep list.

Offline

Board footer

Powered by FluxBB