Usaré la sintaxis de búsqueda de GNU para el indicador -perm en este ejemplo:
Básicamente, si arroja extensiones extrañas como ACL, tiene 3 opciones: propietario, grupo y "otro" acceso de escritura. Suena como un trabajo para un bucle.
Hay mucho espacio para optimizar esto, pero se lo dejaré a otra persona ... Además, nunca puedo recordar todos los detalles de encontrar y cruzar sistemas de archivos y ese tipo de tonterías. Además, asegúrese de que la salida de los grupos sea la misma que en mi sistema Linux de prueba
$ groups snoopy
snoopy : snoopy doghouse linus admin wwI woodstock
$
Este es un ejemplo aproximado de cómo encontraría los archivos que un usuario puede escribir. Esto se ejecutará como cualquier usuario, pero si lo ejecuta como un usuario que no sea uid0, solo encontrará cosas que están en directorios en los que el usuario que ejecuta el script tiene permisos de lectura y ejecución.
#!/bin/sh
user=snoopy
directory=/
# first files owned by the user and writable
find "$directory" -follow -user "$user" -perm /u+w 2> /dev/null
# now for files that are group writable with the user in that group
for groups in $(groups snoopy 2> /dev/null | cut -f2 -d:)
do
find "$directory" -follow -group "$user" -perm /g+w 2> /dev/null
done
# now for everything else
find "$directory" -follow -perm /o+w 2> /dev/null