Como trabalhar em torno do diretório home mudando para / root ao usar o sudo?

0

Com o Natty saindo em breve, eu estive no trabalho atualizando meu script de implantação e de autoconfiguração para fazer a minha área de trabalho funcionar em 11.04 e ter a aparência que eu quero.

Uma chatice é que o dbus parece ter mudado e não permite, da mesma maneira que Lucid e Maverick fizeram, a autenticação do usuário atual por chamada de terminal usando grep e cat.

Idealmente, para executar o script, eu sudo -s e, em seguida, inicio como

# chmod +x install && ./install

Em vez de retornar meu nome de usuário, ele agora retorna o root e aplica as alterações no perfil de raiz e aborta sempre que os caminhos não corresponderem.

Aqui está o cabeçalho do meu script:

#!/bin/bash

ON_USER=$(echo ~ | awk -F'/' '{ print $1 $2 $3 }' | sed 's/home//g')

export $(grep -v "^#" ~/.dbus/session-bus/'cat /var/lib/dbus/machine-id'-0)

if sudo -u $ON_USER test -z "$DBUS_SESSION_BUS_ADDRESS" ;
then eval 'sudo -u $ON_USER dbus-launch --sh-syntax --exit-with-session'
fi

RELEASE=$(lsb_release -cs)

Como eu poderia fazê-lo retornar o usuário atual agora que o natty está chegando?

Obrigado pela ajuda

    
por Kees Cook 11.03.2011 / 23:11

1 resposta

1

Parece que $HOME está sendo alterado para /root no ambiente do seu script. Tente usar $SUDO_USER em vez de $ON_USER e $(eval echo ~$SUDO_USER) em vez de ~ :

ak@myo5a:~$ echo "$(grep -v "^#" ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-0)"
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-qH8a0TOc6f,guid=873a5a81a7abe448ef2c293000000012
DBUS_SESSION_BUS_PID=2013
DBUS_SESSION_BUS_WINDOWID=8388609
ak@myo5a:~$ sudo -sH
root@myo5a:/home/ak# echo "USER=$USER; HOME=$HOME; SUDO_USER=$SUDO_USER; SUDO_HOME=$(eval echo ~$SUDO_USER)"
USER=root; HOME=/root; SUDO_USER=ak; SUDO_HOME=/home/ak
root@myo5a:/home/ak# echo "$(grep -v "^#" $(eval echo ~$SUDO_USER)/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-0)"
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-qH8a0TOc6f,guid=873a5a81a7abe448ef2c293000000012
DBUS_SESSION_BUS_PID=2013
DBUS_SESSION_BUS_WINDOWID=8388609
root@myo5a:/home/ak# sudo -u $SUDO_USER touch /cant_touch_this
touch: cannot touch '/cant_touch_this': Permission denied
    
por ændrük 12.03.2011 / 02:36