adduser e addgroup em $ PATH com o apt-get install

2

Após atualizar um servidor do Debian Lenny para o Squeeze, tenho um problema com as atualizações do dbus e do vsftpd.

Recebo a seguinte mensagem de erro (traduzida do alemão pelo Google Translate):

dbus (1.2.24-4 + squeeze1) is set up ...
adduser: No program called "groupadd" in $ PATH directory listing found.
dpkg: error processing dbus (- configure):
  Subprocess post-installation script returned error exit status 1
vsftpd (2.3.2-3 + squeeze2) is set up ...
configured to not write apport reports
                                       addgroup: no program named "groupadd" in $ PATH directory listing found.
dpkg: error processing vsftpd (- configure):
  Subprocess post-installation script returned error exit status 1
configured to not write apport reports
                                       Errors were encountered while processing:
  dbus
  vsftpd
E: Sub-process / usr / bin / dpkg returned an error code (1)

groupadd não pode ser encontrado em $ PATH. Minha variável PATH é:

-bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: No such file or directory

Mas o groupadd é / usr / sbin / groupadd então, de acordo com o PATH, ele deve ser encontrado. Mas o eco também mostra que um arquivo ou diretório não pôde ser encontrado, mas qual deles?

    
por Dominik 09.02.2012 / 00:24

2 respostas

2

você precisa modificar sua configuração do / etc / sudoers para conter esta linha:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Esta é uma mudança no sudo do lenny para o squeeze. Essa alteração não foi feita no arquivo sudoers para preservar suas personalizações no / etc / sudoers.

Aqui está a entrada de /usr/share/doc/sudo/NEWS.Debian.gz:

The sudo package is no longer configured using --with-secure-path.
Instead, the provided sudoers file now contains a line declaring
'Defaults secure_path=' with the same path content that was previously
hard-coded in the binary.  A consequence of this change is that if you
do not have such a definition in sudoers, the PATH searched for commands
by sudo may be empty.

Using explicit paths for each command you want to run with sudo will work
well enough to allow the sudoers file to be updated with a suitable entry
if one is not already present and you choose to not accept the updated
version provided by the package.
    
por 09.02.2012 / 23:17
0

A última mensagem de erro é informar que não existe tal diretório ou arquivo com esse nome - ou seja, com o nome de:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Eu não sei como você acabou com isso como um diretório ou nome de arquivo, mas aí está. Para definir o PATH, você geralmente quer fazer isso:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

(se você estiver usando o Bourne Shell ou o C Shell, isso será diferente.)

Além disso, certifique-se de que seu / etc / profile contenha uma configuração razoável de PATH; isso é o que será definido quando um sudo - ou su - for concluído.

Observe que $PATH produz o conteúdo da variável PATH ; o comando $PATH=/usr/bin:/bin:/usr/local/bin é um erro.

    
por 09.02.2012 / 00:46