211
Server / Jak spustit příkaz jako jiný uživate sudo/su něco
« kdy: 28. 02. 2019, 18:00:16 »
Ahoj všem, prosím Vás o radu při nejspíš pro Vás banálním problému, který mě jako amatérovi dává zabrat. Prosím Vás o radu.
Máte prosím nějaký typ, jak skript spustit rootem, ale tělo skriptu se spustilo jako jiný uživatel? Myslím alternativu funkčního spouštění celého skriptu následovně: "su - postgres -c /path/to/pgbackup.sh"
Mám na CentOS skript, který potřebuji spouštět rootem, ale zároveň tam jsou části skriptu, které potřebuji spouštět jiným uživatelem, ale navzájem ty části kódu na sebe musí vidět a umět spolu spolupracovat. Jedná se například o příkazy psql a pg_dump, se kterými root neumí pracovat a zároveň ho nechci vytvářet jako roli v postgresql databázi. příkazy bych raději spouštěl uživatelem, který je pro tento účel vytvořen.
Zkoušel jsem celý obsah skriptu obalit funkcí následovně:
Také jsem zkoušel:
V ani z jednom příkladů skript nefungoval. Děkuji Vám všem za tipy.
Máte prosím nějaký typ, jak skript spustit rootem, ale tělo skriptu se spustilo jako jiný uživatel? Myslím alternativu funkčního spouštění celého skriptu následovně: "su - postgres -c /path/to/pgbackup.sh"
Mám na CentOS skript, který potřebuji spouštět rootem, ale zároveň tam jsou části skriptu, které potřebuji spouštět jiným uživatelem, ale navzájem ty části kódu na sebe musí vidět a umět spolu spolupracovat. Jedná se například o příkazy psql a pg_dump, se kterými root neumí pracovat a zároveň ho nechci vytvářet jako roli v postgresql databázi. příkazy bych raději spouštěl uživatelem, který je pro tento účel vytvořen.
Zkoušel jsem celý obsah skriptu obalit funkcí následovně:
Kód: [Vybrat]
#!/bin/bash
function1(){
echo `whoami`
<můj skript>
}
export -f function1
su username -c "bash -c function1"
exit 0Také jsem zkoušel:
Kód: [Vybrat]
#!/usr/bin/env bash
whoami
sudo -i -u someuser bash << EOF
echo "In"
<můj skript>
whoami
EOF
echo "Out"
whoamiV ani z jednom příkladů skript nefungoval. Děkuji Vám všem za tipy.