X-Recipient: archive-cygwin@delorie.com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B7DF53858419
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
	s=default; t=1656654442;
	bh=gxsThCxXA0QFkTQdM3iN+VYV2n0+49V/UB9nxLJVRzI=;
	h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post:
	 List-Help:List-Subscribe:From:Reply-To:From;
	b=Jdv3GqocJIOL+BHAudjUVw3R39OIKRARH06KL/ny4tjzPMx3Mdx4HXNT2ZK0MxIyP
	 GzaaL1XtOIboKnb61oW1Bkyfe2137vyShxWPdziWnZ4ibEYq1rlfbRt1XLQR7opiLV
	 afCACiCcbnKxqYgd5ocg+2byjMY7dCq/lCVkKtBs=
X-Original-To: cygwin@cygwin.com
Delivered-To: cygwin@cygwin.com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 84A313858D39
X-SBRS-Extended: Low
X-IronPortListener: ces-out
X-IronPort-AV: E=Sophos;i="5.92,236,1650945600"; d="scan'208";a="307205854"
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=hlIZEK2LLTO61O54qPZYAqRdFXtkPCiA7YltE6AwpIXi1W1zGBLQNDfJkw3C4ZzwKRQoYc91m7/puQ0GrwYIgS0rxKcsM8ERbUBuSY0rTdqelliriYaXgWSFncumXXnFpwTQuMxFrAkEnrjOAWknpNuGuywu8/bCq9TZwltoFn7STAjQNgnmE+u7okzV3Gm/8+KYezJnQp/d2kWQ0NGPvyy8Eu/ygzkZ12AI45aYcI1JuIagtNcRoVrUv64C+VfUKtRi+kwbUqEMgXOFqsbvGuYsnArhVnlNh48o/pLadrp5uMAJhHuHQHhd+hckRKBZVlXIy3DX50WD/QlMG3z6sA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=KJ4VTneJIwQEfMZHr1SHMhJTznZ5eiIDZegwN+xDtqI=;
 b=SjEfCe7ZCVqEFldbobEycSNGgEG93O5wseE3RufIn9sj0Jzl7EbkTgR0qSEUsYaj/kKp9LvRQskeWoq5Lv5NUHT+lM9Al2vtmCq94JaF6z39S/EJ0zvMJF6lKvBmsBsGoRM49TjsctC0DZPKMjadqqdPv0blOTYMjvSi4nyGYeiDhU8XneHHpskH1XYIhv3psnGjK1I1G96F1SBEP/r4bmKsFypJONqH4eH0Ly0YqNgKCv7vWhdNk/qHuq4dujdyrwfGWQ9OOd2KXQJvPVpKRwm+P3xK0vAtNnF4/It33knemJL/osetwwE5kixHbLTEN3Fow3KGPnolF21fMErh/A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=ncbi.nlm.nih.gov; dmarc=pass action=none
 header.from=ncbi.nlm.nih.gov; dkim=pass header.d=ncbi.nlm.nih.gov; arc=none
To: "'cygwin@cygwin.com'" <cygwin@cygwin.com>
Subject: Weird issue with file permissions
Thread-Topic: Weird issue with file permissions
Thread-Index: AdiNDXVeWrE4qIEITUO9Wn6ddETWwA==
Date: Fri, 1 Jul 2022 05:46:44 +0000
Message-ID: <DM8PR09MB709508104694224E0803C069A5BD9@DM8PR09MB7095.namprd09.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9a0b0693-dc39-4617-4046-08da5b251469
x-ms-traffictypediagnostic: DM6PR09MB4775:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: /W2+5rgKW908xBLhICoqyxWrqhT1Knb4yWtLgBtwAsizuAVM3mnFtSsJZ1LBVMYy2siOexXrjADy6WtGG4kZFVb9zGCHH8af9l0hkwigXGnv9ttoD3HVbCNQK+3bym4X8N+PDVFNyInULpE5OxK7J2jcaKM67XxNa3BMUAn+4wbhgwcO6EOuNxHKdbLE9d0GfwksMtgbGPydVNwb1aRW/sjj5jN0JfZ0SyS2BCmYGHENS1gTo0/FqvFhEOR/aBGz4G3B/o4qdb2DVVIfWIUZ7xCZECKFFu8RvsBtEX8dj6hZHHIBDqopdDtKQKVuyLErOlhOlKltPzPeYR8f9GjNrntxU0PmhMhEUvwphXm7kW91SljdciLPkYQ0SNM0obSAQoCnQ2GXgVqxzn16kzUGGz5LF2wFosNe335OWtkIRJaSUcvCfxhrc2BFEzY6eI1Uf2C/hdYDGV85ObvOA5mAfoI6MY09OnYpzudVg10bZRje8+sbIKuHsIAJyM+CWV8ec8Qh1l8Mo4Sda+5svRXfEvu2fG6XMEEE+5n58XHSSOmFFAUJzPb20HiCjuzZAkguiXo+AMwkTO0kHLcIKiApUMdEIIJfGtR91ivYu12jCV3LkGOYC++/4ePyOfiJ8U1JSSL/B+aozSUpI+BUEAZo1vweCsvAEK1Z/UdnZrgWnxzFhbsIF+EGInqhlSgbnkgfLM0Dm/VLwfjpQL473L6ON7fJWSIEXJz73lly3Q+rQ+AAHvNyKpzSavxW3ahJzmnmkPCME3mWrZDq9UHpCrHrEde1xzmS8KWOmPHyjr0cBn4JBH/vzj/v+OHstxiI25iqd2Q1rKYKIxjad+es59LFUA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM8PR09MB7095.namprd09.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230016)(4636009)(366004)(38100700002)(186003)(83380400001)(64756008)(76116006)(8676002)(66446008)(66476007)(66946007)(71200400001)(66556008)(122000001)(55016003)(7696005)(52536014)(6916009)(6506007)(33656002)(8936002)(38070700005)(26005)(2906002)(86362001)(9686003)(498600001)(5660300002)(491001);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?nrEYAjpM6gJ3QsJcs0J7m+4u1d/y9750zZTRsOajiUMr+xZf+ob3V0Y/liP/?=
 =?us-ascii?Q?aAkFGBLv/IlRi3KyMGJZTPiDGML5i7YkP+mld8H/eZ6l0Y2arhl9IACvV672?=
 =?us-ascii?Q?aJUxI8tEpQGVc5JtK05WZPonZ7D6tcw8C/VYAwfP5yXxowbW3568HZIBGIon?=
 =?us-ascii?Q?YG2p61oAx1TL04R4y7LdJAhQ5cNLk+LOVrce/Cqk7Fe+1l+8s/fCcT8r8J9A?=
 =?us-ascii?Q?FucDajgvFvf5ULILBK/wVoVFF26+XeBymCYy0o9Ekh3Uv9lv3dXyqMW9cRtM?=
 =?us-ascii?Q?c0c2JD+aezGcO1jHoj1LkztDayC6VynhMiCIgJHeSj9P92UHtoTiLkpVYb3g?=
 =?us-ascii?Q?FTH/tF6Et3mn5lEZoVMfHuY3BADSU9rknt9qp08JTAK292XHYKGMqD3Ce77F?=
 =?us-ascii?Q?PxHdGEFL5S5UGXehxbPKWz94uV8RQqT2+WbEWst9np4AG3WmTWcOTj+3d4tx?=
 =?us-ascii?Q?O1PcszXqTVJ0m/vFPfzPsSJrrc/GaSABYBSYQl4ZHzryq4l7DfN3fLOtxdEI?=
 =?us-ascii?Q?9pvQfvGqnag7AzRqzpE7DYZ7vxP0w65oCkqhBpdvfSESYPiDtdwJ4urPj18J?=
 =?us-ascii?Q?CVZIad2VwwVEFKYVP6Ezjb8TZkZ9uT7HHuCPi+G3SwzAnEC8mk9pUKd40oBI?=
 =?us-ascii?Q?8GkCvLtgb4csnoV1XNBYKM2KDA3Pn6gs4oPg4dBFZmGDoyfa7a08FBlhEFtP?=
 =?us-ascii?Q?IdCurXzxACPdLsLhvmS0kAKvxfNtsneFs0lExdTQBdQxR7+gBQgQ8sJTanZI?=
 =?us-ascii?Q?K+cnGYclaZd/fT7Gs9vhbrieuvcqak4lx1GscqEXhG9E1QLpLR+Gj1KGMWOB?=
 =?us-ascii?Q?0i0a9Z1TCgxMGlat8VU3kCYoavYJ5zwDzPHcrpT+mJbwJ7qVsyGmlv7vDulg?=
 =?us-ascii?Q?iZlSEkB/QJgNmGdC8QGHFPNrRxD0ur4P3qiG7TeNKPMp4iKGUamJGU+ETGqq?=
 =?us-ascii?Q?YuyeUAKSt+/jox3lKm1P6FFCwhLyHoLIUJub3bddkRN9mN3BSVK2IGGmUvRx?=
 =?us-ascii?Q?vsyLcx6nPClLJXSHIVgwIu5YP2XIPkraFGuc21rOL/pB6AOxb8JWTSXf46FT?=
 =?us-ascii?Q?wDd1pphhnV9O6O8teUl6LiTTyMxZ9CR+7XMjTCXzsuUUjv0+xEinoE1QyV5c?=
 =?us-ascii?Q?UGgufEZu2oy7CC7MNOFh4wyBZoz3bIP32cRrbrxFZ/IWgGjNJJOvsy8aoWSh?=
 =?us-ascii?Q?t7SG0YHrs8RQSYTHiWrGHVYbRrjwo6aC3s/xxaOVzZQHb8gUDuIhc8CZifxD?=
 =?us-ascii?Q?gJz9nFJB9Fmg3ecOU7EyJwi5HoSe6WfrceVO+IadH5i3LnDSioUn/C5i0D/g?=
 =?us-ascii?Q?u2XAdUDmi38Khx0QuqrKOnWHtenI2bQXq6iqmK6LDOTanyssH9En1uxAwOI3?=
 =?us-ascii?Q?v4EhQdefBCWBF6Nku9CZ8q6Cj7kRtUjkR/U17LjkHg1qnL2TiCys6Koloiaz?=
 =?us-ascii?Q?vkTgaq10j/ozPSkt76tzyERHL2m9kaI5swBpSs1gIqPZh08QGEti4mW2tVEp?=
 =?us-ascii?Q?jPjEdQImcSZed7QGPDBEWksKoEj+OX3fHWQDJflFE9OfrBcBDRSMeqAva6gy?=
 =?us-ascii?Q?lZuMRv2dESEKgS5daZ4=3D?=
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM8PR09MB7095.namprd09.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9a0b0693-dc39-4617-4046-08da5b251469
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2022 05:46:44.0237 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 14b77578-9773-42d5-8507-251ca2dc2b06
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR09MB4775
X-OriginatorOrg: ncbi.nlm.nih.gov
X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED,
 DKIM_VALID, DKIM_VALID_EF, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE,
 T_SPF_HELO_PERMERROR autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
 server2.sourceware.org
X-BeenThere: cygwin@cygwin.com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-request@cygwin.com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
 <mailto:cygwin-request@cygwin.com?subject=subscribe>
From: "Lavrentiev, Anton \(NIH/NLM/NCBI\) \[C\] via Cygwin" <cygwin@cygwin.com>
Reply-To: "Lavrentiev, Anton \(NIH/NLM/NCBI\) \[C\]" <lavr@ncbi.nlm.nih.gov>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie.com@cygwin.com>

Hi all,

I am having an issue with socket file permissions...

So here's a mockup of code that shows the problem:

$ cat sun.c
#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/un.h>


#define SOCKET "./.socket"

int main()
{
    struct sockaddr_un addr;
    struct stat st;
    mode_t u;
    int s;

    /* create a UNIX socket */
    if ((s = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
        perror("socket");
        return 1;
    }

    memset(&addr, 0, sizeof(addr));
    addr.sun_family = PF_UNIX;
    strcpy(addr.sun_path, SOCKET);
    unlink(SOCKET);

    u = umask(0);
    if (bind(s, (struct sockaddr*) &addr, sizeof(addr)) != 0) {
        perror("bind");
        return 1;
    }

    umask(u);
    if (fchmod(s, 0666) < 0)
        printf("fchmod: %m\n");

    if (fstat(s, &st) < 0) {
        perror("fstat");
        return 1;
    }

    printf("fstat mode = %03o\n", st.st_mode);


    if (stat(SOCKET, &st) < 0) {
        perror("stat");
        return 1;
    }

    printf("stat mode = %03o\n", st.st_mode);

    return 0;
}

$ gcc -Wall -o sun sun.c

Now, if I run this code in my Cygwin home directory (and any directory that I create using "mkdir..." under it),
I am getting the expected results:

$ ~/sun
fstat mode = 140666
stat mode = 140666

$ ls -l .socket
srw-rw-rw-+ 1 ANTON None 0 Jul  1 01:19 .socket=

However, if I run it elsewhere (different drive "cd /cygdrive/g/cygwin" -- it's NOT where Cygwin is installed,
just a folder that keeps files for Cygwin development, the installation is on C:\Cygwin64), I cannot predict
the results.  What's weird is that fstat and stat report different file modes.

$ pwd
/cygdrive/g/cygwin
$ ~/sun
fstat mode = 140666
stat mode = 140666
$ ls -l .socket
srw-rw-rw-+ 1 ANTON None 0 Jul  1 01:24 .socket=

So all's good here, BUT:

$ mkdir subdir
$ cd subdir
$ pwd
/cygdrive/g/cygwin/subdir
$ ~/sun
fstat mode = 140666
stat mode = 140664
$ ls -l .socket
srw-rw-r--+ 1 ANTON None 0 Jul  1 01:25 .socket=

Note that fstat lied!

For some reason getfacl returns "Not supported", so I could not investigate with that, but I'm showing below
the icacls outputs for both /cygwin/g/cygwin and /cygdrive/g/cygwin/subdir with their .socket files, respectively.

At any rate, it looks like fstat, despite reporting the mode, wasn't actually able to bake it on disk
using those insanely complicated Windows permissions.

What's more insane, is that using the chmod command from shell, I'm able to change the permissions to 0666,
and it sticks:

$ pwd 
/cygdrive/g/cygwin/subdir
$ chmod 0666 .socket
$ ls -l .socket
srw-rw-rw-+ 1 ANTON None 0 Jul  1 01:25 .socket=

Any insights will be highly appreciated!
Thanks.

$ pwd
/cygdrive/g/cygwin

$ icacls .
. BUILTIN\Administrators:(I)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
  NT AUTHORITY\SYSTEM:(I)(F)
  NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
  NT AUTHORITY\Authenticated Users:(I)(M)
  NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
  BUILTIN\Users:(I)(RX)
  BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)

$ icacls .socket
.socket NULL SID:(DENY)(Rc,S,WEA,X,DC)
        ANTON\ANTON:(R,W,D,WDAC,WO)
        ANTON\None:(DENY)(S,X)
        NT AUTHORITY\Authenticated Users:(DENY)(S,X)
        NT AUTHORITY\SYSTEM:(DENY)(S,X)
        BUILTIN\Administrators:(DENY)(S,X)
        BUILTIN\Users:(DENY)(S,X)
        ANTON\None:(RX,W)
        NT AUTHORITY\Authenticated Users:(RX,W)
        NT AUTHORITY\SYSTEM:(RX,W)
        BUILTIN\Administrators:(RX,W)
        BUILTIN\Users:(RX,W)
        Everyone:(R,W)

$ cd subdir

$ icacls .
. NULL SID:(DENY)(Rc,S,REA,WEA,X,DC)
  ANTON\ANTON:(F)
  ANTON\None:(RX)
  NT AUTHORITY\Authenticated Users:(RX,W,DC)
  NT AUTHORITY\SYSTEM:(RX,W,DC)
  BUILTIN\Administrators:(RX,W,DC)
  BUILTIN\Users:(RX)
  Everyone:(RX)
  NULL SID:(OI)(CI)(IO)(DENY)(Rc,S,REA,WEA,X,DC)
  CREATOR OWNER:(OI)(CI)(IO)(F)
  CREATOR GROUP:(OI)(CI)(IO)(RX)
  NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(RX,W,DC)
  NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(RX,W,DC)
  BUILTIN\Administrators:(OI)(CI)(IO)(RX,W,DC)
  BUILTIN\Users:(OI)(CI)(IO)(RX)
  Everyone:(OI)(CI)(IO)(RX)

As created by the program:

$ icacls .socket
.socket NULL SID:(DENY)(Rc,S,WEA,X,DC)
        ANTON\ANTON:(R,W,D,WDAC,WO)
        ANTON\None:(DENY)(S,X)
        NT AUTHORITY\Authenticated Users:(DENY)(S,X)
        NT AUTHORITY\SYSTEM:(DENY)(S,X)
        BUILTIN\Administrators:(DENY)(S,X)
        BUILTIN\Users:(DENY)(S,X)
        ANTON\None:(RX)
        NT AUTHORITY\Authenticated Users:(RX,W)
        NT AUTHORITY\SYSTEM:(RX,W)
        BUILTIN\Administrators:(RX,W)
        BUILTIN\Users:(RX)
        Everyone:(R)

After chmod:

$ icacls .socket
.socket NULL SID:(DENY)(Rc,S,WEA,X,DC)
        ANTON\ANTON:(R,W,D,WDAC,WO)
        ANTON\None:(DENY)(S,X)
        NT AUTHORITY\Authenticated Users:(DENY)(S,X)
        NT AUTHORITY\SYSTEM:(DENY)(S,X)
        BUILTIN\Administrators:(DENY)(S,X)
        BUILTIN\Users:(DENY)(S,X)
        ANTON\None:(RX)
        NT AUTHORITY\Authenticated Users:(RX,W)
        NT AUTHORITY\SYSTEM:(RX,W)
        BUILTIN\Administrators:(RX,W)
        BUILTIN\Users:(RX)
        ANTON\None:(DENY)(W,DC)
        BUILTIN\Users:(DENY)(W,DC)
        Everyone:(R,W)

Anton Lavrentiev
Contractor NIH/NLM/NCBI


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