Why /usr/bin/*.dll must be executable?

Mike Kaganski mikekaganski@gmail.com
Fri Apr 20 22:10:00 GMT 2012


On 4/21/2012 5:21 AM, De-Jian Zhao wrote:
> ...
> Then, what limitations does the Windows loader have?
> As far as I know, there is no x bits for windows, right? How does the 
> "chmod a-x" affect the file behavior under Windows if this is a 
> Windows thing? I am completely confused. When I ran "chmod a-x *.dll", 
> I assumed that these dll files were not executed directly under Cygwin 
> or Windows; they were just some files storing the required functions 
> or something; removing the x bits should not affect the behavior of 
> Cygwin and Windows. If have run "chmod a-x" on the Windows system dll 
> files, that will lead to the corruption of Windows, right? Thank God. 
> I didn't do that.
>
>
>
> -- 
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>
The term "Executable" is not limited to the files that are run directly. 
It rather shows that this file contains executable code, and in case of 
DLLs, this is almost always true (unless they are resource-only DLLs; 
note that sometimes unaware programmers create DLLs wich contain only 
resources, but fail to create proper resource-only DLLs, ant they still 
contain loading and unloading code).
Any code that may be executed (directly or indirectly) must have "x" 
under *nix. Windows had tried to make somewhat similar (with the same 
security concerns in mind) in its NT family, but it had to deal with 
file systems that have no notion of "executability" (FAT), so the notion 
was introduced in NTFS, but is not honored (thus, "execute" ACL 
permission is useless in Windows).
As Cygwin tries to emulate *nix, I suppose, it explicitly checks 
executable bit on loading files. So it's not correct to state that "this 
is completely Windows loader thing", but this thing is conceptually 
correct, so live with it.

-- 
Best regards, Mike.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list