#!/usr/bin/perl use v5.12; use warnings; use autodie qw( :all ); my %seen; my @path=grep { !$seen{$_}++ } split /:/,$ENV{'PATH'}; for my $dirname (@path) { opendir(my $dir,$dirname); while (readdir $dir) { next if -l "$dirname/$_"; next unless -f -x _; (undef,undef,my $mode)=stat _; unless (defined $mode) { warn "Can't stat $dirname/$_: $!\n"; next; } ($mode & 06000) or next; printf("%04o %s\n",($mode & 07777),"$dirname/$_"); } closedir $dir; } #### 4511 /sbin/mount.nfs 4711 /usr/bin/newuidmap 4755 /usr/bin/pkexec 4711 /usr/bin/newgidmap 4711 /usr/bin/newgrp 2755 /usr/bin/write 2755 /usr/bin/wall 4711 /usr/bin/traceroute6 4755 /usr/bin/cgexec 4711 /usr/bin/crontab 4711 /usr/bin/expiry 4711 /usr/bin/gpasswd 2755 /usr/bin/slocate 2751 /usr/bin/xlock 4750 /usr/bin/fdmount 4711 /usr/bin/chfn 4711 /usr/bin/passwd 4711 /usr/bin/sudo 2755 /usr/bin/lockfile 4711 /usr/bin/chage 4711 /usr/bin/chsh 6755 /usr/bin/procmail 4711 /bin/ping6 4755 /bin/umount 4755 /bin/mount 4711 /bin/ping 4755 /bin/fusermount 4711 /bin/su 4511 /opt/VirtualBox/VirtualBox 4511 /opt/VirtualBox/VBoxVolInfo 4511 /opt/VirtualBox/VBoxSDL 4511 /opt/VirtualBox/VBoxNetAdpCtl 4511 /opt/VirtualBox/VBoxHeadless 4511 /opt/VirtualBox/VBoxNetDHCP 4511 /opt/VirtualBox/VBoxNetNAT 4755 /opt/exim/bin/exim-4.72-1