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ě:
#!/bin/bash
function1(){
echo `whoami`
<můj skript>
}
export -f function1
su username -c "bash -c function1"
exit 0
Také jsem zkoušel:
#!/usr/bin/env bash
whoami
sudo -i -u someuser bash << EOF
echo "In"
<můj skript>
whoami
EOF
echo "Out"
whoami
V ani z jednom příkladů skript nefungoval. Děkuji Vám všem za tipy.