myślę, że raczej chciałeś napisać coś w stylu:
sudo -u root -S sh -c "echo tekst >> /control/plik" < /home/leclerck/passfile
Zauważ, że w swoim skrypcie przekierowujesz wyjście polecenia sudo, a nie echo.
Echo jest wykonane jako root, ale powłoka, z której wywołujesz sudo oczywiście nie jest, a to ona przekierowuje wejście/wyjście. Więc skoro powłoka jest uruchomiona na prawach normalnego użytkownika.. to permission denied dostajesz właśnie przy próbie przekierowania wyjścia do pliku, do kórego nie masz dostępu. Hasło jest odczytane jak najbardziej dobrze.
Nie rozumiem tylko jednego.. dlaczego wczytujesz hasło z pliku?
Czy nie lepiej byłoby tak skonfigurować sudo, żeby w ogóle nie pytał o hasło?