From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from merlin.infradead.org ([205.233.59.134]:41838 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726804AbeKSCyu (ORCPT ); Sun, 18 Nov 2018 21:54:50 -0500 Subject: Re: [PATCH] proc: allow killing processes via file descriptors To: Andy Lutomirski , Daniel Colascione Cc: Christian Brauner , "Eric W. Biederman" , LKML , "Serge E. Hallyn" , Jann Horn , Andrew Morton , Oleg Nesterov , Aleksa Sarai , Al Viro , Linux FS Devel , Linux API , Tim Murray , Kees Cook , Jan Engelhardt References: <20181118111751.6142-1-christian@brauner.io> From: Randy Dunlap Message-ID: Date: Sun, 18 Nov 2018 08:33:52 -0800 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On 11/18/18 8:17 AM, Andy Lutomirski wrote: > On Sun, Nov 18, 2018 at 7:53 AM Daniel Colascione wrote: >> >> On Sun, Nov 18, 2018 at 7:38 AM, Andy Lutomirski wrote: >>> I fully agree that a more comprehensive, less expensive API for >>> managing processes would be nice. But I also think that this patch >>> (using the directory fd and ioctl) is better from a security >>> perspective than using a new file in /proc. >> >> That's an assertion, not an argument. And I'm not opposed to an >> operation on the directory FD, now that it's clear Linus has banned >> "write(2)-as-a-command" APIs. I just insist that we implement the API >> with a system call instead of a less-reliable ioctl due to the >> inherent namespace collision issues in ioctl command names. > > Linus banned it because of bugs iike the ones in the patch. > >> >>> I have an old patch to make proc directory fds pollable: >>> >>> https://lore.kernel.org/patchwork/patch/345098/ >>> >>> That patch plus the one in this thread might make a nice addition to >>> the kernel even if we expect something much better to come along >>> later. >> >> I've always commented on that patch. You never addressed my technical >> objections. Why are you bringing up this patch again as if that >> discussion had never happened? To review, that patch has various race >> conditions > > I don't think I ever saw that review. > >> and even if it were technically correct, it'd be an abuse >> of directory objects (in what other circumstance do we poll >> directories?) and not logically generalizable to a model in which we >> expose process exit status via the exit-monitoring API. > > I agree it's weird. It might be better to have /proc/PID/exit_status > and make *that* pollable. > If there is a new exit_status file, it could even be more than 8 bits of exit status: See https://lore.kernel.org/lkml/alpine.LSU.2.20.1507091257010.9602@nerf40.vanv.qr/T/#u and http://austingroupbugs.net/view.php?id=594#c1317 -- ~Randy