GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso trasformare un file in un subuid senza sudo

I subuidi non sono pensati per funzionare nel modo in cui ti aspetti che funzionino. Sono progettati per mappare gli UID in uno spazio dei nomi utente a diversi UID al di fuori di tale spazio dei nomi, il che è utile (e in realtà è stato progettato) per i contenitori.

Tuttavia, un processo può ancora avere un solo UID impostato (spazio dei nomi utente) e agli utenti non è consentito modificare la proprietà dei file, per ovvi motivi di sicurezza. Non importa, per quanto riguarda il processo stesso, se l'utente è effettivamente qualcun altro al di fuori dello spazio dei nomi.

Ecco perché chown comando fallisce:non importa se potresti avere qualche altro UID, se lo spazio dei nomi fosse diverso , in quel momento non hai quell'UID e, quindi, non puoi cambiare la proprietà di alcun file (visto che non sei root).

Per quanto riguarda il motivo per cui puoi rimuovere il file:in realtà non ha nulla a che fare con i subuid, invece, tutto dipende dal fatto che tu abbia la proprietà della directory in cui risiede il file. Poiché l'eliminazione del file cambia la directory e non il file stesso, se puoi scrivere la directory, puoi rimuovere qualsiasi file da essa (ad eccezione delle directory "appiccicose").


C'è un programma lxc-usernsexec che accompagna lxc . Ciò consente di rimappare gli ID utente utilizzando le mappe /etc/subuid e /etc/subgid .

Nello specifico, puoi fare quanto segue.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test mostrerà che il file è owner:group uguale alla prima coppia subuid:subgid nella tua mappa.
  3. rm /tmp/test dovrebbe dare un errore poiché al momento non hai l'uid/gid corretto.
  4. lxc-usernsexec -- rm /tmp/test dovrebbe rimuovere il file.

Spero che sia di aiuto! Quanto sopra probabilmente richiede varie impostazioni per l'uso del contenitore LXC senza privilegi. In particolare, penso a /proc/sys/kernel/unprivileged_userns_clone dovrebbe essere 1.


Il tuo problema non ha nulla a che fare con subuid .

Secondo https://superuser.com/questions/697608/chown-operation-not-permitted

Gli utenti non privilegiati (non root) non possono eseguire il chown dei file con altri nomi utente. Per utilizzare chown, un utente deve disporre dei privilegi dell'utente di destinazione. In altre parole, solo root può dare un file a un altro utente.


Linux
  1. Come sapere se un utente ha diritti sudo

  2. Come posso collegare simbolicamente un file in Linux?

  3. Come può un file manager montare un'unità senza root?

  4. Come posso inviare un comando a un file, senza ottenere un file vuoto per errore?

  5. Come posso usare sudo per verificare se esiste un file?

Come aggiungere utenti ai sudoer in Debian

Come modificare il proprietario di file/gruppi con il comando chown in Linux

Come eseguire il comando Sudo senza password

In che modo File Manager monta un'unità esterna senza Sudo?

Come eseguire comandi Sudo senza password

Come eseguire sudo comandi senza password