È possibile cambiare la proprietà di un file senza accesso root?


21

Se un utente A possiede file.txt, l'utente A può modificare la proprietà del file in utente B senza accesso root? Quando eseguo un file.txt B chown come utente A, ottengo un errore Operazione non consentita. Mi sembra che dal momento che l'utente A possiede il file, dovrebbero essere in grado di cambiare la proprietà, ma non vedo un modo per farlo. Grazie per l'aiuto!


4
Potresti inserire dati incriminanti in un file e cambiarne la proprietà per inquadrare qualcuno :) Immagino che sia un argomento contrario a consentire ciò che suggerisci.
Roadmr

1
Piccola aggiunta: AFAIU si può cambiare il gruppo proprietario di un file che si possiede, a condizione che sei un membro del gruppo che si sta modificando a .
Matthijs Kooijman,

Risposte:


7

Se l'utente A possiede file.txt, non può cambiare la proprietà dell'autorizzazione file.txtsenza accesso root / sudo. Questa è una funzione e non un bug. E uno dei tanti motivi per cui gli anziani hanno scelto di inserire questa funzione, è stato spiegato in un commento alla tua domanda da roadmr

In conclusione: è possibile modificare le autorizzazioni del file utilizzando chmodse si è il proprietario di quel file senza le autorizzazioni root / sudo ma non è possibile modificare la proprietà, utente o gruppo (utilizzando uno chowno chgrp), di un file anche se si è il proprietario del file senza autorizzazioni root / sudo. Questa è una funzione e non un bug.


2
Parte di questo sbagliato. Gli utenti non root possono cambiare il gruppo di altri gruppi di cui sono membri. Prova touch t; ls -l t; chgrp lpadmin t; ls -l t(Supponendo di essere nel gruppo lpadmin). Vedi anche la mia risposta e la domanda collegata.
Mark Stosberg,

1
Gli anziani hanno sbagliato. Se sono utente A e sono anche utente B, allora dovrei essere in grado di cambiare la proprietà da A a B, se sono registrato come A e ho anche la password di B o viceversa.
aishu,

@aishu In linea di principio, puoi farlo copiando il file come B e poi cancellandolo come A. Tuttavia, non è molto pratico per file di grandi dimensioni.
Holger Böhnke,

4

No, non è possibile modificare il proprietario di un file senza accesso, ma se si possiede il file, è possibile modificare le autorizzazioni del file chmode modificare il gruppo con chgrpun altro gruppo di cui si è membri.

Domanda correlata: chown è consentito all'utente non root?


2

se hai accesso all'utente B, puoi semplicemente copiare il file mentre hai effettuato l'accesso come B. Se hai anche accesso all'utente A, puoi quindi accedere ed eliminare il file originale. E infine rinominare il file copiato, con il nome originale (sempre come B), lasciandoti essenzialmente con lo stesso file, di proprietà di un altro utente.

Ovviamente non è il file SAME, ma se ti importa solo del contenuto del file, questo è il trucco


1

È possibile modificare la proprietà di un file o di una cartella senza sudo, a condizione che si disponga delle autorizzazioni di lettura / scrittura sull'oggetto e si può solo cambiare il proprietario in VOI, non in un utente arbitrario. Il trucco è semplicemente copiare qualunque cosa sia, eliminare l'originale e spostare la copia al suo posto. Questo, sfortunatamente, implica fare una copia completa di tutto, ma cosa fai.

ad es. chuser.sh:

#!/bin/bash

TMP="some_temporary_filename_this_is_dumb"

RECURSIVE=""
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"

case $key in
    -r|--recursive)
    RECURSIVE="-r"
    shift # past argument
    ;;
    *)    # unknown option
    POSITIONAL+=("$1") # save it in an array for later
    shift # past argument
    ;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional parameters

cp -d --preserve=all $RECURSIVE $1 $TMP || exit 1
rm $RECURSIVE $1
mv $TMP $1
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.