O uso de sudo mudou no Debian 7?

2

Vou tentar explicar a minha situação primeiro. Atualmente, estou executando 6 servidores Debian virtualizados em uma máquina host ESXi. Os servidores virtuais onde instalados com um Debian Linux 6 (Lenny).

Recentemente atualizei os servidores para o debian Wheezy

root@ares> lsb_release -a                                                                                                    /home/vincent
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.1 (wheezy)
Release:        7.1
Codename:       wheezy

Chegou ao meu conhecimento que desde esta atualização o comando 'sudo' está exibindo um comportamento estranho. Na verdade, parece não ter efeito algum. Eu verifiquei o arquivo / etc / visudo e tudo parece ok. Sudo também pede minha senha, mas não parece rodar as coisas como root. Um exemplo é o comando 'ifconfig':

user@ares> ifconfig 
zsh: command not found: ifconfig
[127] user@ares> sudo ifconfig
sudo: ifconfig: command not found
[1] user@ares> sudo su
root@ares>ifconfig  
output shows    

alguém que possa me ajudar aqui?

    
por Goez 02.08.2013 / 08:36

2 respostas

5

Seu PATH provavelmente difere entre seu usuário normal e o usuário raiz, provavelmente diretórios ausentes, como /sbin e / ou /usr/sbin , em que utilitários administrativos como ifconfig normalmente vivem.

    
por 02.08.2013 / 08:44
2

A resposta de Michael está correta, mas eu queria adicionar um comentário:

Não é obrigatório adicionar o caminho dos comandos administrativos ( /sbin , /usr/sbin , /usr/local/sbin ) a um usuário não privilegiado, desde que a diretiva secure_path esteja configurada em /etc/sudoers on em seu servidor LDAP , se você usar um back-end do LDAP:

$ ip a s
-rbash: ip: command not found

$ sudo ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
    link/ether 00:0c:29:57:80:d9 brd ff:ff:ff:ff:ff:ff
    inet 172.22.197.38/24 brd 172.22.197.255 scope global eth0

$ echo $PATH
/home/dawud/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin

$ sudo -l | awk '$0~/secure_path/ {print $1}'
secure_path=/bin\:/usr/bin\:/sbin\:/usr/sbin\:/usr/local/bin\:/usr/local/sbin

Verifique man 5 sudoers para referência futura sobre secure_path (também de interesse são exempt_group e env_reset ).

 secure_path   Path used for every command run from sudo.  If you don’t trust the people running sudo to have a sane PATH environment variable you may want to use this.  Another use is if you want to
               have the “root path” be separate from the “user path”.  Users in the group specified by the exempt_group option are not affected by secure_path.  This option is not set by default.
    
por 02.08.2013 / 09:10

Tags