perms powstał, ponieważ wkurzało mnie wklepywanie co jakiś czas:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Zamiast tego napisałem sobie skrypt w pythonie, który nie dość że jest dużo bardziej przyjazny w użytkowaniu, to jeszcze jest wielokrotnie szybszy.

Wywołanie:

perms [options] [directory]

gdzie:

-d|–dir oct_dir_perms
Jeśli podane, pozwala na określenie jakie prawa dostępu zostaną ustawione dla katalogów. Jeśli nie zostanie podany ten parametr, to prawa dostępu do katalogów nie zostaną zmienione.
-f|–file oct_file_perms
To samo co -d, ale w odniesieniu dla plików.
-o|–owner owner_name
Jeśli podane, zmienia właściciela plików/katalogów na owner_name (na razie nie ma możliwości podania bezpośrednio uid’u użytkownika). Podany użytkownik musi istnieć w systemie.
-a|–owner-affect all|file|dir
Pozwala na określenie, czy opcja ‘-o’ będzie zmieniać właściciela plików (’file’), katalogów (’dir’) czy też i plików, i katalogów(’all’). Ignorowane jeśli nie podano opcji ‘-o’.
-g|–group group_name
Jeśli podane, zmienia grupę plików/katalogów na group_name (na razie nie ma możliwości podania bezpośrednio gid’u grupy). Podana grupa musi istnieć w systemie.
-b|–group-affect all|file|dir
Pozwala na określenie, czy opcja ‘-g’ będzie zmieniać grupę plików (’file’), katalogów (’dir’) czy też i plików, i katalogów(’all’). Ignorowane jeśli nie podano opcji ‘-g’.
-v|–version
Wypisuje wersję programu.
-h|–help
Wypisuje pomoc.
directory
Katalog w którym będą dokonywane zmiany.

Katalog musi zawsze zostać podany.

Wszelkie uwagi, prośby i bugreporty proszę słać na email.

TODO:

  • Możliwość określenia głębokości na jaką ma ‘zaglądać’ skrypt.

DONE:

  • Jeśli będzie dodany tylko jeden parametr (-d lub -f), to drugi nie będzie uwzględniany, np przy wywołaniu perms -d 755 dir prawa dostępu dla plików nie zostaną zmienione.
  • Zmiana właściciela plików i katalogów (osobno dla katalogów i osobno dla plików ?)