This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
-x weirdness
- From: Benoit Rochefort <Benoit dot Rochefort at gerad dot ca>
- To: cygwin at cygwin dot com
- Date: Mon, 18 Aug 2003 16:37:55 -0400
- Subject: -x weirdness
- Reply-to: benoitr at ad-opt dot com
When I installed cygwin, permissions on all the distribution looks like:
###############################################################################
$ ls -al /usr/bin/bash
-rwx------+ 1 Administ Domain U 531968 Mar 13 04:29 /usr/bin/bash*
###############################################################################
As you can see, even if I am:
###############################################################################
$ id
uid=17199(benoitr) gid=10513(Domain Users) groups=10513(Domain Users),11121(Exceed Users)
###############################################################################
I can however run bash and every other programs. I suppose
it is a Windoze weirdness. But, what is interesting is "How
can I know if a program can be executed"? Often, I write
scripts where the flow of control depend on the availability
of a particular program.
So check this out:
###############################################################################
$ [ -x /usr/bin/bash ]; echo $?
0
$ /usr/bin/test -x /usr/bin/bash; echo $?
1
$ perl -e 'print -x "/usr/bin/bash" ? 0 : 1 , "\n"'
1
###############################################################################
I guess only bash is correct...
Looking at the source code of bash (in test.c), we discover
what seems to be the "correct" way of guessing if a program
can be executed:
case 'x': /* File is executable? */
return (EACCESS (arg, X_OK) == 0);
where EACCESS is:
#if defined (AFS) || defined (__CYGWIN__)
# define EACCESS(path, mode) access(path, mode)
#else
# define EACCESS(path, mode) test_eaccess(path, mode)
#endif /* AFS */
I'd like to know if:
Someone will notice and eventually correct the bug
- or -
I'm wrong, this is not a bug
- or -
Tell me a way to interprete these results.
Do I have to mail this problem to a perl mailing list?
Thanks
--
*º¤., ¸¸,.¤º*¨¨¨*¤ Benoit Rochefort *º¤., ¸¸,.¤º*¨¨¨*¤
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/