Eu tropecei em uma diferença no modo sudo
alters env
variables entre o CentOS 7.3 e o CentOS 7.4.
Aqui está um script que eu executei no CentOS 7.3 e 7.4:
#!/bin/bash
env | grep USER
sudo env | grep USER
unset USERNAME
env | grep USER
sudo env | grep USER
No CentOS 7.3 isso dá (formatado):
USER=gncs
USERNAME=gncs
[sudo] password for gncs:
USERNAME=gncs
USER=root
SUDO_USER=gncs
USER=gncs
USER=root
USERNAME=root
SUDO_USER=gncs
No CentOS 7.4 isso dá (formatado):
USER=gncs
USERNAME=gncs
[sudo] password for gncs:
USERNAME=gncs
USER=gncs # !!!
SUDO_USER=gncs
USER=gncs
USER=root
USERNAME=root
SUDO_USER=gncs
Por que USER
ainda gncs
quando executo env
com sudo
no CentOS 7.4?
Depois que eu desconfigurar a variável USERNAME
, o comportamento é o mesmo.
Eu me deparei com esse problema ao executar o seguinte programa python com sudo
:
import getpass
getpass.getuser()
Sob o Centos 7.3, ele retorna root
, sob 7,4 gncs
.
Acredito que isso esteja relacionado às variáveis de ambiente mencionadas acima.
Informações adicionais:
$ sudo --version
Sudo version 1.8.19p2
Sudoers policy plugin version 1.8.19p2
Sudoers file grammar version 45
Sudoers I/O plugin version 1.8.19p2
$ sudo grep -r env /etc/sudo*
[sudo] password for gncs:
/etc/sudoers:# is already set when the the env_reset option is enabled, so
/etc/sudoers:# env_reset is disabled or HOME is present in the env_keep list.
/etc/sudoers:Defaults env_reset
/etc/sudoers:Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
/etc/sudoers:Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
/etc/sudoers:Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
/etc/sudoers:Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
/etc/sudoers:Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
/etc/sudoers:# Adding HOME to env_keep may enable a user to run unrestricted
/etc/sudoers:# Defaults env_keep += "HOME"