On 10/20/13 21:54, Theo de Raadt wrote: >> Indeed, the interpreter is not passed to execve. That's why I used >> > 'get executed' >> >instead of >> > 'are executed' >> >though the difference might not be clear. >> > >> >The kernel loads the interpreter, and the code of that interpreter >> >gets executed. So, actually, it plays as an executable. And as long >> >as code gets executed from it, it should have +x rights. >> > >> >Shouldn't it? > Absolutely not, because then someone can try to run execve on it. >
Maybe I'm missing something. I don't get what's wrong with running execve on it. In all cases, someone can load it through another executable. If I have an interpreter that I chmod as exec-only, I want this interpreter to be world-loadable without thereby letting other users copy it. The same for a library. > You are not thinking clearly. I've just given a glance to FreeBSD and NetBSD. They both check exec rights, not read rights. So it looks like I'm not the only one who does not think clearly...