Quando copi un file su un altro filesystem, quello che sta succedendo è che crei un nuovo file e copi il contenuto. Lo spostamento di un file su un altro filesystem avviene copiando e rimuovendo il sorgente. Quindi non hai più privilegi durante la copia di un file rispetto a qualsiasi altro momento in cui stai creando un file.
Quando crei un file, questo appartiene a te. Molte varianti di unix limitano la modifica del proprietario ( chown
) a root. Anche quelli che consentono al proprietario di un file di dargli via libera i bit setuid e setgid quando lo fanno. Le modifiche alla proprietà del gruppo ( chgrp
) cancellano anche i bit setxid a meno che non vengano invocati con i privilegi di root. E devi possedere il file o essere root per cambiarne le autorizzazioni. Pertanto non è possibile creare un file setxid per un utente o un gruppo per cui non si dispone dell'autorizzazione per eseguire programmi come.
Un vettore diverso per l'iniezione di file setxid è il montaggio del filesystem. La maggior parte delle configurazioni consente solo i bit setxid sui filesystem montati direttamente da root (come voci /etc/fstab
opposte con l'opzione user
su Linux, Samba, FUSE, ...). A volte, ad esempio con mount NFS, spetta all'amministratore di sistema assicurarsi che i filesystem siano montati con l'opzione nosuid
.