GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso tranquillamente dare una conchiglia a qualcuno?

Uno dei modi più semplici/efficienti per controllare ciò che un utente può fare è lshell.

lshell è una shell codificata in Python, che consente di limitare l'ambiente di un utente a set limitati di comandi, scegliere di abilitare/disabilitare qualsiasi comando su SSH (ad es. SCP, SFTP, rsync, ecc.), registrare i comandi dell'utente, implementare la limitazione temporale, e altro ancora.


Se dai a qualcuno un account shell, può vedere tutti i file leggibili da tutti. Questo include molti file in /etc necessari per il funzionamento del sistema, incluso /etc/passwd (che contiene nomi utente ma non password).

Se consenti all'utente di accedere solo all'interno di un chroot, non potrà vedere i file all'esterno del chroot. Ciò significa che devi inserire un numero sufficiente di programmi, librerie, ecc. all'interno del chroot:tutto ciò a cui l'utente deve avere accesso e anche ogni dipendenza di questi.

Si noti che un chroot protegge solo l'accesso diretto ai file. L'utente può curiosare su varie cose, inclusi i nomi e gli argomenti dei processi in esecuzione di tutti gli utenti (a meno che non si impostino protezioni aggiuntive come SELinux). Se l'utente non avrà bisogno di fare molto, puoi impostare restrizioni più rigide (incluso impedire all'utente di creare i propri eseguibili) con una shell limitata, ma impostare correttamente una shell limitata è molto complicato, quindi non lo faccio Non lo consiglio.

Al giorno d'oggi, le macchine virtuali sono molto economiche. Hai molte implementazioni gratuite tra cui scegliere (Modalità utente Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, ...) e lo spazio su disco utilizzato da un'installazione di sistema aggiuntiva è minimo (e potresti comunque averne bisogno per chroot). Una macchina virtuale isola praticamente tutto:file, processi, rete, ... A meno che tu non abbia vincoli molto insoliti, questa è la strada da percorrere.


Un'opzione è metterli in una sessione di shell ristretta, come rbash [bash -r].

Non è chiaro a questo punto cosa, esattamente, desideri realizzare, tuttavia, in superficie posix acl per 'altro' si applicherà al nuovo account così come a qualsiasi gruppo acl per i gruppi a cui appartiene l'account, come 'utenti' per esempio.


Linux
  1. Come eliminare i privilegi di root negli script della shell?

  2. Come rinominare un utente in modo sicuro?

  3. CentOS / RHEL:come modificare la shell di accesso dell'utente

  4. Impossibile aggiungere l'utente al gruppo docker

  5. Di quanti gruppi Unix può far parte un utente?

Come posso eseguire la divisione con le variabili in una shell Linux?

Come posso trovare la mia versione della shell usando un comando Linux?

Come si può sapere se un file binario è sicuro per concedere autorizzazioni sudo a un utente non attendibile?

Come posso modificare il gruppo predefinito di un utente in Linux?

(Come) posso creare un tmpfs come utente normale (non root)?

Come posso assegnare una password iniziale/predefinita a un utente in Linux?