openbox - Как переключить пользователя без выхода?

Если вы хотите иметь возможность выполнять псевдонимы другого пользователя как root без необходимости выполнять дополнительную работу (например, копировать определения псевдонимов в файл профиля root, преобразовывать псевдонимы пользователя в сценарии оболочки), тогда вы можете извлечь команду псевдонима и передать ее оболочке.

Пример:

sudo su - otheruser -s /bin/bash -c "alias ll | sed -E \"s/.+='(.+)'/\1/\" | bash"

Или вы можете использовать мою общую функцию «запустить как»:

runas() {
  if [ $# -eq 2 ]; then
    # Check if user exists
    id -u $1 > /dev/null 2>&1
    if [ $? -gt 0 ]; then
      echo "$FUNCNAME: no such user"
      return 1
    fi
    # Check if alias exists
    sudo su - $1 -s /bin/bash -c "alias $2" > /dev/null 2>&1
    if [ $? -eq 0 ]; then
      # Alias is defined; execute $2 as alias
      sudo su - $1 -s /bin/bash -c "alias $2 | sed -E \"s/.+='(.+)'/\1/; s/'\\\'//g\" | bash"
    else
      # Alias is not defined; execute $2 as command
      sudo su - $1 -s /bin/bash -c "$2"
    fi
  else
    echo "Execute a command or alias as another user"
    echo "Usage: $FUNCNAME USER ALIAS"
    return 2
  fi
}
1
29.02.2016, 13:40
1 ответ

Это можно сделать с помощью следующей команды для lightdm:

/usr/bin/dm-tool switch-to-greeter
1
27.01.2020, 23:48

Теги

Похожие вопросы