Condividi una directory con uno (non tutti) altri utenti non root su Linux (nessun privilegio di root)


3

È possibile condividere una directory con un altro utente non root, ma solo questa, senza privilegi di root?

  • Il sistema è Ubuntu con il kernel 4.4.0.

  • Non ho i privilegi di root.

  • Il sistema ha un gran numero di utenti; è improbabile che gli amministratori acconsentano a creare un nuovo gruppo solo per me.

  • Il sistema non mi permette di usare setfacl (probabilmente nessun pacchetto ACL installato)

Approccio 1: utilizzo del gruppo per utente (non funziona)

Se avessi i privilegi di root, potrei aggiungere l'altro utente al mio gruppo di utenti e concedere a quel gruppo i diritti sulla directory (supponiamo che gli utenti siano user_a (io e user_b (l'altro) e la directory è ~/shared_directory ):

sudo usermod -a -G user_a user_b

(questo aggiungerebbe user_b al gruppo user_a, user_a il gruppo di utenti di)

chgrp user_a ~/shared_directory

(questo imposta il gruppo proprietario di ~/shared_directory a user_a; in quasi tutti i casi questo dovrebbe già essere il gruppo proprietario e il comando non dovrebbe essere necessario)

chmod g=rwx ~/shared_directory

(questo dà al gruppo tutti i diritti di leggere, scrivere ed eseguire (accedere) alla directory).

Tuttavia, non ho accesso root e non sono autorizzato a eseguire usermod o scrivere sul file pertinente /etc/group (che sarebbe male!).

Approccio 2: utilizzo degli elenchi di controllo dell'accesso ai file (ACL) (non funziona)

Inoltre, non posso né eseguire setfacl né individuare questo eseguibile; probabilmente perché il pacchetto acl non è installato. Di conseguenza non posso tentare di utilizzare l'approccio suggerito in questa risposta :

setfacl -m u:user_b:rwx ~/shared_directory

(Questo darebbe user_b accedere alla directory come desiderato, a condizione che il filesystem e il kernel supportino ACL.)

La mia sensazione è ancora che l'approccio 1 (gruppo di utenti e permessi) dovrebbe essere la chiave per risolvere questo problema

Non dovrei avere il permesso di controllare chi fa parte del mio gruppo di utenti? Oppure sto fraintendendo lo scopo dei gruppi di utenti identici con nome?

Alcune delle risposte a questo la domanda in Unix e Linux ha discusso il ruolo, i diritti e lo scopo dei gruppi per utente.

O c'è un altro modo per ottenere ciò che non richiede i privilegi di root?


1
Sospetto che tu abbia bisogno di lavorare con i tuoi amministratori di sistema.
Zoredache

1
Se la funzione è implementata nelle opzioni del kernel (Ubuntu? È), non è disabilitata ("noacl" non è usato per / home o simili) e allo stesso modo il punto di mount consente l'esecuzione ("noexec" non è usato per / home) quindi non avere il comando installato non impedirà l'esecuzione di una versione locale del comando. Potresti semplicemente scaricare i pacchetti (incluse le dipendenze), decomprimerli da qualche parte nella tua directory utente, e con alcuni accorgimenti (LD_LIBRARY_PATH ...) esegui il comando da lì. Ma se ciò fosse ritenuto vietato, gli amministratori di sistema potrebbero semplicemente aggiungere le due opzioni sopra per prevenirlo comunque
A.B

1
ovviamente setfacl non richiede i privilegi di root. avere sia il tuo account che l'altro account con un comune dedito il gruppo richiede il privilegio di root per aggiungerlo. Altrimenti puoi scegliere un gruppo generico comune se esiste. ad esempio: entrambi gli utenti nel gruppo cdrom? questo è un gruppo comune. Sperando che non ci sia interazione con apparmor / selinux
A.B

@ A.B Questa è una bella idea. Posso scaricare ed eseguire getfacl e setfacl, anche senza alcun problema con le dipendenze della libreria. Tuttavia, hai ragione che questo non funzionerà se è disabilitato nel kernel; Sto arrivando Operation not supported. Indovina che il kernel non lo consente.
0range
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.