Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754639AbdLTIpM (ORCPT ); Wed, 20 Dec 2017 03:45:12 -0500 Received: from mail-wm0-f49.google.com ([74.125.82.49]:32796 "EHLO mail-wm0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754167AbdLTIpJ (ORCPT ); Wed, 20 Dec 2017 03:45:09 -0500 X-Google-Smtp-Source: ACJfBovvRqfjFYGgUIbKRK9KNavnRE4nYkpgsXO/0TBWDG19hDhub2gfVyWrhgVWbs7jxvUUlLSCIz16zoYuvUOYctU= MIME-Version: 1.0 Reply-To: mtk.manpages@gmail.com In-Reply-To: References: <20171219094848.GE2787@dhcp22.suse.cz> From: "Michael Kerrisk (man-pages)" Date: Wed, 20 Dec 2017 09:44:47 +0100 Message-ID: Subject: Re: shmctl(SHM_STAT) vs. /proc/sysvipc/shm permissions discrepancies To: "Dr. Manfred Spraul" Cc: Michal Hocko , Linux API , Andrew Morton , Al Viro , Kees Cook , Linus Torvalds , Mike Waychison , LKML , "linux-mm@kvack.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1670 Lines: 49 Hi Manfred, On 20 December 2017 at 09:32, Dr. Manfred Spraul wrote: > Hi Michal, > > On 12/19/2017 10:48 AM, Michal Hocko wrote: >> >> Hi, >> we have been contacted by our partner about the following permission >> discrepancy >> 1. Create a shared memory segment with permissions 600 with user A using >> shmget(key, 1024, 0600 | IPC_CREAT) >> 2. ipcs -m should return an output as follows: >> >> ------ Shared Memory Segments -------- >> key shmid owner perms bytes nattch status >> 0x58b74326 759562241 A 600 1024 0 >> >> 3. Try to read the metadata with shmctl(0, SHM_STAT,...) as user B. >> 4. shmctl will return -EACCES >> >> The supper set information provided by shmctl can be retrieved by >> reading /proc/sysvipc/shm which does not require read permissions >> because it is 444. >> >> It seems that the discrepancy is there since ae7817745eef ("[PATCH] ipc: >> add generic struct ipc_ids seq_file iteration") when the proc interface >> has been introduced. The changelog is really modest on information or >> intention but I suspect this just got overlooked during review. SHM_STAT >> has always been about read permission and it is explicitly documented >> that way. > > Are you sure that this patch changed the behavior? > The proc interface is much older. Yes, I think that's correct. The /proc/sysvipc interface appeared in 2.3.x, and AFAIK the behavior was already different from *_STAT back then. Cheers, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/