GNU/Linux >> Znalost Linux >  >> Linux

Je možné, aby root provedl příkaz jako jiný než root?

Krátká odpověď:"Ano, je to možné."

pokud chcete spustit aplikaci, která není X, použijte následující příkaz:

sudo -u abc příkaz

Pokud chcete spouštět nějakou X aplikaci jako jiný uživatel, ale s vlastní pracovní plochou si nejprve musíte vytvořit pomocný skript, který vám usnadní život

  • vytvořte ve svém domovském adresáři složku bin:

mkdir -p ~/bin

a pomocí svého oblíbeného textového editoru vytvořte soubor ~/bin/xsudo takto:

#!/bin/bash
# (C) serge 2012
# The script is licensed to all users of StackExchange family free of charge
# Fixes/Enhancements to the script are greatly appreciated. 
# 
# SUDO_ASKPASS has to be set to the path of ssh-askpass
# fix the following two lines if your distribution does not match this autodetection
. /etc/profile.d/gnome-ssh-askpass.sh
export SUDO_ASKPASS="${SSH_ASKPASS}"

SUDOUSERNAME="$1"
shift
xauth nlist "${DISPLAY}"|sudo -HA -u $SUDOUSERNAME env --unset=XAUTHORITY \
bash -c "xauth nmerge - ; $*"

pak jej udělejte spustitelným:

chmod +x ~/bin/xsudo

a použijte jej stejným způsobem jako sudo ale bez jakýchkoli přepínačů:

xsudo uživatelská aplikace

Užijte si to.

P.S. Počínaje xsession z root důrazně nedoporučujeme!


Přenosné řešení by bylo:

su abc -c google-chrome

Protože však google-chrome vyžaduje přístup X11, pravděpodobně to selže, pokud jej nezrušíte, což by byl velmi špatný nápad, zvláště když běžíte jako root.

Pokud je povoleno tunelování/předávání X11, lepší způsob by byl

ssh -X [email protected] google-chrome

nebo

ssh -Y [email protected] google-chrome

Linux
  1. Nastavte datum a čas pro každý příkaz, který provedete v historii Bash

  2. Proveďte příkaz, kde je nalezen soubor?

  3. Konfigurace sudo pro povolení příkazů pro uživatele bez oprávnění root v systému Linux

  1. Proveďte příkaz pro každý soubor v aktuálním adresáři

  2. Vytvořit příkaz pro Windows – možné možnosti?

  3. jiný shell pro uživatele root a uživatele bez root

  1. Příklady příkazů DNF pro začátečníky

  2. Provést příkaz ve vzdáleném aktivním terminálu?

  3. Pěstování kořene LVM