Portál AbcLinuxu, 17. prosince 2025 19:43
/bin/systemctl start mysqld.service
/usr/sbin/apachectl start
Funguje to, ale musím pro každý příkaz zadávat heslo správce.
Chtěl bych využít Sudoers, ale neumím s tím pracovat.
Našel jsem soubor
/etc/sudoers, sudoers.dist
a adresář
sudoers.d
Jméno přihlášeného uživatele je p, do souboru /etc/sudoers jsem tedy napsal:
User_Alias PADMIN = p
Cmnd_Alias STARTAPACHE = apachectl start
Cmnd_Alias STARTMYSQL = systemctl start mysqld.service
PADMIN ALL = NOPASSWD: STARTAPACHE
PADMIN ALL = NOPASSWD: STARTMYSQL
Po spuštění mého souboru start.sh ale pořád dialog vyžaduje 2x heslo. Co je špatně?
Díky za rady.
Řešení dotazu:
/opt/my_at_start # priecinok, kde je ulozeny program pri starte /opt/my_at_start/program_at_start # program, kt. sa bude spustat s pravami root /opt/my_at_start/program_at_start.c # program v c /opt/my_at_start/my_start_script.sh # skript v (ba)sh, ktory spustasPotom: obsah program_at_start.c
#include <stdib.h>
#include <unistd.h>
int main(int argc, char **argv)
{
setuid(0); // you can set it at run time also
system("/opt/my_at_start/my_start_script.sh");
return 0;
}
preklad program z c
gcc /opt/my_at_start/program_at_start.c -o /opt/my_at_start/program_at_startnastavenei prav na setuid (ako root)
chmod 1000 /opt/my_at_start/program_at_start chmod +s /opt/my_at_start/program_at_startobsah skripty
# u mna dmesg moze spustat iba root, tak som napr. nim to testoval dmesgSpustenie skriptu ako bezny uzivatel s pravami root
$ /opt/my_at_start/program_at_startPodklady, skompletizovane, upravene a odskusane z unix.stackexchange.com.
sudoedit /etc/sudoers.d/p-user p ALL = (ALL) NOPASSWD: /usr/local/bin/my_start.shA pak zavoláš z uživatele "p"
sudo /usr/local/bin/my_start.shNebo :
sudoedit /etc/sudoers.d/p-user p ALL=NOPASSWD: /bin/systemctl start mysqld.service p ALL=NOPASSWD: /bin/systemctl stop mysqld.service p ALL=NOPASSWD: /usr/sbin/apachectl start p ALL=NOPASSWD: /usr/sbin/apachectl stopA pak zavoláš z uživatele "p"
sudo /bin/systemctl start mysqld.service ...Zdar Max
sudo /bin/systemctl start mysqld.service
jsem si vytvořil na ploše ještě soubor start.sh a ten spouštím myší.
Jen se mi při jeho startu ukazuje okno, které píše:
Chcete spustit "start.sh" nebo zobrazit jeho obsah?
"start.sh" je spustitelný textový soubor.
Je možné nastavit, aby se start.sh spustil bez tohoto dialogu?
Díky. Pavel
Co je to DE? Jak vytvořím zástupce pro skript? Díky předem za radu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.