Frage von XUserZ, 34

Linux: Sind Rechte von Befehlen änderbar?

Kann man in Linux die Ausführrechte für einen Befehl einem bestimmten Nutzer zuweisen? Z.B. dass echo nur noch vom root ausgeführt werden darf?

Expertenantwort
von guenterhalt, Community-Experte für Linux, 13

ein Befehl ist auch nur eine Datei und die verfügt über die gleichen Metadaten , zu denen dann auch die Zugriffsrechte (die Ausführungsrechte eingeschlossen) gehören.

Binaries gehören normalerweise alle dem Superuser root und die Ausführungsrechte sind so gesetzt, das sie jeder ausführen darf.

Man könnte zwar über die Rechte das anders regeln, das wird aber trotzdem aus Sicherheitsgründen nicht gemacht.

fdisk z.B. besitzt die Rechte "-rwxr-xr-x 1 root root  ... " und trotzdem darf  nicht jeder damit arbeiten. Das ist dann aber im Code enthalten und dar erwartet die User-Id 0 , die nur dem Superuser gehört.

Mit chmod 500 /usr/bin/echo (natürlich mit root-Rechten ausgeführt) verhindert der Superuser, dass auch andere echo benutzen können.

Deine Frage zu alias-Definitionen kann  so beantwortet werden:

Ein alias definiert einen anderen Namen und/oder Parameter, die dann nicht geschrieben werden müssen.
Dahinter "versteckt" sich aber immer das zugehörige Binary (ausführbares Programm)

alias liste=ls

mit liste macht man dann nichts anderes als  mit ls

aber

alias liste='ls -la'

benutzt dann ls mit den Parametern.

Wo solche aliase definiert sind?  Da gibt es verschieden Dateien:

/etc/profile , /etc/bash.bashrc , ~/.profile , ~/.bashrc ...

in diesen Dateien können dann auch wieder andere Dateien stehen, so z.B.

~/.alias

Mit aliassen kann man aber nie die Zugriffsrechte auf Binaries umgehen.

Antwort
von valvaris, 34

Ja.

Frei nach dem Motto "Everything is a File" kannst du das Prrogramm "/usr/bin/echo" auch nach /usr/sbin verschieben
oder die Rechte auf 500 (r-x --- ---) ändern

Kommentar von XUserZ ,

Geht das auch für alias? Bzw. wo befindet sich die Datei dafür?

Kommentar von valvaris ,

gib mal "whereis alias" ein.

Kommentar von XUserZ ,

Dann bekomme ich die Ausgabe: "alias: " ... mit locate komme ich auch auf keinen grünen Zweig (zu viel Output).

Kommentar von valvaris ,

dann findet whereis den Befehl nicht...

versuch mal 

sudo find / -name alias
(sudo nur, wenn du nicht eh als root unterwegs bist - wovon ich abrate, wenn du schon befehle für die Sicherheit einschränken willst)

Da kriege ich /usr/share/bash-completion/completions/alias

Kommentar von XUserZ ,

Super, vielen Dank!

Kommentar von guenterhalt ,

damit kannst aber nicht viel anfangen.

Alias ist "nur" ein in die Shell eingebautes Kommando. Als ausführbares Programm gibt es das nicht und ohne Shell ( hier die bash ) kann man auch nicht auf die Übersetzung und Erweiterung zurückgreifen.

Kommentar von valvaris ,

Okay, hatte es nicht genauer ausprobiert, aber dass "whereis" das Kommando nicht findet, weist schon drauf hin.

Danke für die Ergänzung.

Antwort
von flaglich, 6

Wie Guenterhalt heraus gestellt hat lassen sich über Dateirechte, für Befehle die nicht in der Bash eingebaut sind, die Ausführrechte vergeben. Ergänzend geht auch setfacl wenn die Partition mit der erweiterten ACL-Unterstützung gemountet wurde. Damit lassen sich die Rechte feiner einstellen als mit chmod.

Antwort
von DataWraith, 31

Mit SELinux wäre das möglich. Da musst Dich aber etwas einlesen.

Kommentar von valvaris ,

Ist SELinux nicht ein Zusatz für Android ?

Kommentar von DataWraith ,

Nein. SELinux (Security Enhanced Linux) ist ein must-have für Systeme, die sicher sein sollen (zB Firewall, Webserver, etc.)

Kommentar von valvaris ,

Okay, danke für den Tip, aber ich würde da gern noch weiter Nachforschen, da die NSA ihre Finger im Spiel hatte - Nenn es paranoid, aber ich vertrau nichts, was durch diesen Schnüffelverein auch nur mal schräg von hinten angeschaut wurde, denn meist sind dann da irgendwelche "Hintertürchen" eingeflogen, auch wenns OpenSource ist.

Kommentar von DataWraith ,

Das ist auch der Grund, warum ich es als erstes nach jeder Installation deaktiviere. Damit nimmt man sich aber auch die Möglichkeit, die Sicherheit dementsprechend zu konfigurieren. Aber es gibt ja auch andere Möglichkeiten, ein System halbwegs sicher zu bekommen.

Kommentar von valvaris ,

Das erste, was ich bei neuen Handy immer direkt deaktiviere ist Android Knox - Auch so ein NSA-Abfallproodukt ^^ aber gut, da sind sich die meisten eh einig. So sehr sogar, dass die App SU beim Check nach Root-Rechten sogar direkt fragt, ob man es gleich deaktivieren will :D

Kommentar von DataWraith ,

Oder man benutzt ein alternatives Mod, zB CyanogenMod

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten