SMBFS mount's file cannot be made executable

L A Walsh cygwin@tlinx.org
Thu Aug 15 09:23:00 GMT 2019


On 2019/08/14 19:00, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via cygwin wrote:
>> This is called by acl_to_any_text, which is called by getfacl.  Any 
>> chance you could try to debug this?
>>     
>
>   
>> I'm about to go on vacation, but I could try to help when I get back.
>>     
>
> I'm headed out of town as well.  But I get this very same EINVAL for any drive (/cygdrive/X)
> except for the local disk C: (the only local drive my PC has):
>
> $ mount
> ...
> S: on /cygdrive/s type netapp (binary,posix=0,user,noumount,auto)
> ...
> U: on /cygdrive/u type netapp (binary,posix=0,user,noumount,auto)
> ...
> Y: on /cygdrive/y type smbfs (binary,posix=0,user,noumount,auto)
>   
----
    BTW, how did you mount those? in explorer, or useing
net use?

    Another question -- what is your umask?

    I noticed some flakeyness with my execute perms as well
but more the opposite.  I tried turned execute "off". and only after
removing all acls, and renaming it to foo.txt could I get rid of execute.

my /etc/fstab shows:
# /etc/fstab
#
#    This file is read once by the first process in a Cygwin process tree.
#    To pick up changes, restart all Cygwin processes.  For a description
#    see https://cygwin.com/cygwin-ug-net/using.html#mount-table

# This is default anyway:
none / cygdrive binary,posix=0,user 0 0
and my mount output shows:
C:/bin on /usr/bin type ntfs (binary,auto)
C:/lib on /usr/lib type ntfs (binary,auto)
C: on / type ntfs (binary,auto)
B: on /b type smbfs (binary,user,noumount,auto)
D: on /d type smbfs (binary,user,noumount,auto)
F: on /f type iso9660 (binary,user,noumount,auto)
H: on /h type smbfs (binary,user,noumount,auto)
I: on /i type smbfs (binary,user,noumount,auto)
M: on /m type smbfs (binary,user,noumount,auto)
P: on /p type smbfs (binary,user,noumount,auto)
R: on /r type smbfs (binary,user,noumount,auto)
S: on /s type smbfs (binary,user,noumount,auto)
T: on /t type smbfs (binary,user,noumount,auto)

-------------------
/tmp> ll foo*
-r-xr-xr-x 1 34323 Feb  3  2017 foo.txt*
/tmp> chmod -x foo.txt
/tmp> ll foo.txt
-r--r--r-- 1 34323 Feb  3  2017 foo.txt
/tmp> cd /h #-- h is an exported samba drive from my server
/h> ll foo.txt
-r--r--r-- 1 34323 Feb  3  2017 foo.txt
/h> +x foo.txt
/h> ll foo.txt
-r-xr-xr-x 1 34323 Feb  3  2017 foo.txt*
---
And it does work (was originally a copy of 'cat.exe')
But notice this :
/h> chmod -x foo.txt
/h> umask 111
/h> ll foo.txt
-r--r--r-- 1 34323 Feb  3  2017 foo.txt
/h> chmod +x foo.txt
/h> ll foo.txt
-r--r--r-- 1 34323 Feb  3  2017 foo.txt


chmod didn't turn on execution flags because I had the execute bit
masked out in my umask.  I change my umask back to my norm:
/h> umask 002
/h> ll foo.txt
-r--r--r-- 1 34323 Feb  3  2017 foo.txt
/h> chmod +x foo.txt
/h> ll foo.txt
-r-xr-xr-x 1 34323 Feb  3  2017 foo.txt*

Now chmod +x works again.

so...what's your umask?




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