Portál AbcLinuxu, 10. května 2025 16:44
/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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.