This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cygwin 1.7.13-1: can't execute shell scripts on samba share


On Apr 23 13:53, Corinna Vinschen wrote:
> On Apr 23 13:02, Michel Bardiaux wrote:
> > [snip]
> > 
> > > lgiambro@lorien ~
> > > $ cat len.sh
> > > #!/bin/sh
> > > echo it works
> > 
> > And man sh states " --norc Do  not  read  and  execute the personal
> > initialization file ~/.bashrc if the
> >               shell is interactive.  This option is on by default if the
> > shell  is  invoked
> >               as sh."
> > Which eliminates bashrc as a possible culprit.
> > 
> > I have also tried the same as you did (len.sh on a samba share) and saw
> > the same problem. Then I saw that the len.sh got a (cygwin *and* linux)
> > mode of -rwxrw-r-- *without* doing any chmod. Then I saw that *every*
> > file I create on the samba share, gets the same mode!
> > 
> > First things first, is there a workaround? Yes, chmod 777 len.sh *done
> > on linux* works. And it actually works too when done on cygwin.
> > 
> > However, recreating len.sh on cygwin, then a chmod 700 len.sh again on
> > cygwin, does not work, again "./len.sh: Permission denied". But the mode
> > seen on the linux side is -rwx------.
> > 
> > I have also tried deleting then recreating the file in cygwin, then
> > closing all cygwin processes and unmapping and remapping the samba
> > drive. No cigar.
> > 
> > Then I tried cacls in various situations. It turns out that with mode
> > 777, cacls reveals "Everyone:F", but with mode 700 we get:
> > 
> > len.sh <Account Domain not found>F
> >               <Account Domain not found>(special access:)
> >               Everyone:(special access:)
> > 
> > And getfacl says:
> > 
> > # file: len.sh
> > # owner: ????????
> > # group: ????????

Just to clarify:  The unknown owner and group accounts in the getfacl
output above are almost certainly the fake SIDs created by Samba to
generate an unambiguous Unix UID/GID to Windows SID mapping.  This
occurs if you don't use winbind on the Samba side to generate a real
UID/GID to SID mapping.

The fake SIDs created by Samba are of the form

  S-1-22-1-UID
  S-1-22-2-GID

You can add them to your /etc/passwd and /etc/group files by using the
`mkpasswd/mkgroup -U option, see
http://cygwin.com/cygwin-ug-net/using-utils.html#mkpasswd and
http://cygwin.com/cygwin-ug-net/using-utils.html#mkgroup

For instance:

  $ mkpasswd -o 20000 -U root,corinna -L my_samba_server
  Unix User\root:unused:20000:99999:,S-1-22-1-0::
  Unix User\corinna:unused:20500:99999:,S-1-22-1-500::
  $ mkgroup -o 20000 -U root,vinschen -L calimero
  Unix Group\root:S-1-22-2-0:20000:
  Unix Group\vinschen:S-1-22-2-11125:31125:

This gives a useful output in ls, getfacl or stat.

> You could mount the samba share with "noacl", see
> http://cygwin.com/cygwin-ug-net/using.html#mount-table


Corinna

--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]