sudo
precisa de pelo menos um bit de execução configurado para executar o arquivo, ou seja, você precisa definir o bit de execução para (pelo menos) usuário ou grupo ou outros. Se nenhum bit de execução estiver definido, você não poderá executar o arquivo como sudo ./script
.
Este exemplo vai deixar você claro:
$ ls -l test_scr
-rw-rw-r-- 1 user user 30 May 4 03:50 test_scr
$ sudo ./test_scr
sudo: ./test_scr: command not found
$ ./test_scr
bash: ./test_scr: Permission denied
$ chmod u+x test_scr
$ sudo ./test_scr
Hello world
$ ./test_scr
Hello world
Observe também que você não precisa tornar o arquivo executável, você pode executar o arquivo como um argumento para o binário do shell para executá-lo:
$ bash test_scr
Hello world
$ sudo bash test_scr
Hello world