Rechtesystem für einen Scriptaccount - SUDO oder ...?
Rechtesystem für einen Scriptaccount - SUDO oder ...?
Ich plane für meine Router gescriptete (Python) Administrationswerkzeuge zu schreiben, die dann je nach Userkonfiguration betreffende configs anpassen. Ja, ich weiß, es gibt schon Projekte hierzu und viele hatten auch immer wieder einen schlechten Ruf wegen krasser Sicherheitslücken in der Vergangenheit. Es gibt z.B. saltstack und Puppet und anderes...mir schwebt aber dennoch eine eigene speziell angepasste und eher minimalistische Lösung vor:
Nehmen wir an ich habe ein Python-Script als Service laufen unter dem Scriptaccount "admin". Dieses Script soll nun Systemkonfigurationen anpassen, bzw. Verzeichnisse erstellen usw. und braucht hierfür des öfteren ROOT Rechte. Es liegt nahe hierfür den Account "admin" in die sudoers Liste mit aufzunehmen und hierfür evtl. auch eine spezielle Konfiguration zu erstellen. Aber ist das sinnvoll oder sicher genug? Was wenn mein Python Script angreifbar ist und sich so jemand über SUDO Rechte verschaffen kann? Lieber wäre mir ich könnte ganz spezielle Dateien und einzelne Programme für den Account "admin" freigeben, ohne aber überall die Dateirechte ändern zu wollen. Was würdet ihr unter Debian als bessere Alternative zu SUDO vorschlagen?
Danke für eure Tipps und Anregungen!
Nehmen wir an ich habe ein Python-Script als Service laufen unter dem Scriptaccount "admin". Dieses Script soll nun Systemkonfigurationen anpassen, bzw. Verzeichnisse erstellen usw. und braucht hierfür des öfteren ROOT Rechte. Es liegt nahe hierfür den Account "admin" in die sudoers Liste mit aufzunehmen und hierfür evtl. auch eine spezielle Konfiguration zu erstellen. Aber ist das sinnvoll oder sicher genug? Was wenn mein Python Script angreifbar ist und sich so jemand über SUDO Rechte verschaffen kann? Lieber wäre mir ich könnte ganz spezielle Dateien und einzelne Programme für den Account "admin" freigeben, ohne aber überall die Dateirechte ändern zu wollen. Was würdet ihr unter Debian als bessere Alternative zu SUDO vorschlagen?
Danke für eure Tipps und Anregungen!
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Du kannst über die /etc/sudoers ziemlich fein einstellen, was dein "admin" darf und was nicht. Damit kannst du seine Möglichkeiten begrenzen.
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Macht es aber Sinn eher auf AppArmor oder SELinux zu setzen oder ist das mit Kanonen auf Spatzen schießen oder doch die bessere Alternative...
Es reicht bei SUDO ja das falsche Programm und schon kann ein User sich weitreichende Rechte verschaffen. Ich möchte aber verhindern, dass mein User "admin" als Einfallstor dienen kann. Wie läuft das z.B. bei anderen daemons. Die starten oft mit Root Rechten und wechseln dann auf niedrigere User/Gruppen nach dem Start.
Es reicht bei SUDO ja das falsche Programm und schon kann ein User sich weitreichende Rechte verschaffen. Ich möchte aber verhindern, dass mein User "admin" als Einfallstor dienen kann. Wie läuft das z.B. bei anderen daemons. Die starten oft mit Root Rechten und wechseln dann auf niedrigere User/Gruppen nach dem Start.
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Eine Möglichkeit wäre vielleicht noch bei gewissen Scripten SUID-Bits zu setzen?
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Was würdet ihr unter Debian als bessere Alternative zu SUDO vorschlagen?


Sind nur meine Erfahrung.
Würde nicht soviel mit sudo arbeiten, die Gefahr dabei ist das man zu Leichtsinnig wird und dabei Zustände erzeugt wie unter ein anderen bekannten BS. Lieber dafür alles tun das nur ein Nutzer erweiterte Rechte erlangen kann. PAM, Selinux würden sich da anbieten.
You Disapeared In The Darkness Of The Night...
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
SUDO kenne ich nun auch von zB Mint oder (k)ubuntu. Ist dies auf jeden Fall empfehlenswert, bei debian also nachzurüsten, oder lieber die Systenvoreinstellung so lassen und mit 1. "su" und dann Eingabe des Befehls arbeiten?
Beispiel: Unter Mint etc würde man senden "sudo mkdir /mnt/nas", jetzt unter debian tippe ich zuerst "su", um dann als root in der Konsole "mkdir" eingeben.
Beispiel: Unter Mint etc würde man senden "sudo mkdir /mnt/nas", jetzt unter debian tippe ich zuerst "su", um dann als root in der Konsole "mkdir" eingeben.
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Für solche Fälle kannst du einfach "su -c mkdir /mnt/nas" nehmen. Ist zwar ein Buchstabe mehr, aber das schafft man grad noch so. Dafür brauchst du kein sudo einzurichten.
Never change a broken system. It could be worse afterwards.
"No computer system can be absolutely secure." Intel Document Number: 336983-001
"No computer system can be absolutely secure." Intel Document Number: 336983-001
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Benötigt man ggf. "sudo" eigentlich gar nicht in debian?
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Versteh ich jetzt nicht ganz. Mit "su -c" kann man doch die Erlaubnis, "mkdir /mnt/nas" auszuführen, nicht auf einige, wenige user beschränken, wohl aber mit einer sudo-Regel in '/etc/sudoers'.Für solche Fälle kannst du einfach "su -c mkdir /mnt/nas" nehmen. Ist zwar ein Buchstabe mehr, aber das schafft man grad noch so. Dafür brauchst du kein sudo einzurichten.
Edit:
Ok, ich sehe , daß Du "su -c" als Alternative für "sudo" vorschlägst, weiter oben jedoch auf die Vorteile von sudoers Regeln hingewiesen hast.
Zuletzt geändert von WPSchulz am 18.04.2016 09:45:50, insgesamt 1-mal geändert.
Re: Rechtesystem für einen Scriptaccount - SUDO oder ...?
Also bei mir klappte der Befehl mit -c auch nicht auf Anhieb, gemäß Info vom Thomas werde ich wohl sudo auch nicht benötigen und demnach nicht einrichten.