delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/07/31/05:41:07

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Date: Wed, 31 Jul 2002 11:40:49 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Problems with CPAN
Message-ID: <20020731114049.D3921@cygbert.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <31CB870AD5AA384BB5419025DD9F7A84104355 AT dailymail DOT cfs DOT ac DOT uk> <31CB870AD5AA384BB5419025DD9F7A8410435A AT dailymail DOT cfs DOT ac DOT uk>
Mime-Version: 1.0
In-Reply-To: <31CB870AD5AA384BB5419025DD9F7A8410435A@dailymail.cfs.ac.uk>
User-Agent: Mutt/1.3.22.1i

On Wed, Jul 31, 2002 at 09:40:46AM +0100, Tony Arnold wrote:
> Turns out that this problem was due to incorrect permissions and
> ownership of files in /usr/bin. The perl binary was owned by
> administrator and had permission of 700. I changed this to 755 and
> everything worked. Curiusly, I could still run perl from a bash prompt,
> but the MakeMaker module in Perl could not execute it. I guess this is
> perl internally only looking at cygwin permissions, but somehow bash
> looks at the NT permissions.

Nooooo.  It's way easier.  If an application uses stat() and
checks the uid against the posix permission bits, it fails
since your uid is definitely not the uid of the admins group.

If, OTOH, an application uses access(file, X_OK) to check if
you are allowed to run a file, it will succeed since Cygwin
checks the whole ACL against the user and group memberships
(as far as Cygwin knows it).

If OTOH, an application *not* checks, neither with stat() nor
with access(), it will just call exec(file,...) and the system
decides whether it runs or not.

This means, bash() tries to make it right by checking permission
bits.  Other applications just ignore them.  That's the whole
magic.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin AT cygwin DOT com
Red Hat, Inc.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019