This should do the trick. It'll give the all the file descriptor mappings except those which:
- you don't have permission to view, or
- are for files which contain the string "Permission denied"
( find /proc -mindepth 1 -maxdepth 1 \
| grep -E [0-9]+ | xargs -n 1 -I% find %/fd \
| xargs ls -l \
| grep -v "Permission denied" ) 2>/dev/null \
| cut -d' ' -f12- | less
If you already know you only care about the mappings for certain programs, you could instead use something more along the lines of:
exec=sshd
pgrep "$exec" | xargs -n 1 ps -p
pgrep "$exec" | xargs -n 1 -I% find /proc/%/fd | xargs ls -l | cut -d' ' -f12- | less