Solusi 1:
Gunakan perintah 'find' jika Anda telah menginstal findutils versi 4.3.0 atau yang lebih baru:
Untuk semua file di bawah direktori saat ini yang dapat ditulis oleh pengguna saat ini:
find . -writable
Untuk semua file di bawah direktori saat ini yang tidak dapat ditulis oleh pengguna saat ini:
find . ! -writable
Menurut halaman manual:
Pengujian ini menggunakan panggilan sistem access(2), sehingga dapat diakali oleh server NFS yang melakukan pemetaan UID (atau root-squashing), karena banyak sistem yang menerapkan akses(2) di kernel klien sehingga tidak dapat menggunakan pemetaan UID informasi yang disimpan di server.
Solusi 2:
Anda dapat membuat skrip Perl (writable.pl
) seperti ini:
#!/usr/bin/perl
use strict;
sub recurse {
my $path = shift;
my @files = glob "$path/{*,.*}";
for my $file (@files) {
if (-d $file) {
if ($file !~ /\/\.$/ && $file !~ /\/\.\.$/) {
recurse($file);
}
} else {
print "$file\n" if -w $file;
}
}
}
print "Writable files for " . getlogin() . "\n";
recurse($ARGV[0]);
lalu gunakan skrip ini, sebagai root, sebagai berikut:
su USERNAME -c "./writable.pl DIRECTORY"
isikan USERNAME
dan DIRECTORY
sebagaimana mestinya.
Solusi 3:
Perintah ini akan menemukan semua direktori yang dapat ditulisi, Anda dapat mengubah izin sesuai keinginan Anda:
find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;