From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932137AbdK2Iw7 (ORCPT ); Wed, 29 Nov 2017 03:52:59 -0500 Received: from ozlabs.org ([103.22.144.67]:40667 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751885AbdK2Iw6 (ORCPT ); Wed, 29 Nov 2017 03:52:58 -0500 From: Michael Ellerman To: Ingo Molnar , Linus Torvalds Cc: Peter Zijlstra , Thomas Gleixner , LKML , Dave Hansen , Andy Lutomirski , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Josh Poimboeuf , Rik van Riel , Daniel Gruss , Hugh Dickins , Kees Cook , linux-mm , michael.schwarz@iaik.tugraz.at, moritz.lipp@iaik.tugraz.at, richard.fellner@student.tugraz.at Subject: Re: [PATCH] vfs: Add PERM_* symbolic helpers for common file mode/permissions In-Reply-To: <20171128111214.42esi4igzgnldsx5@gmail.com> References: <20171126231403.657575796@linutronix.de> <20171126232414.563046145@linutronix.de> <20171127094156.rbq7i7it7ojsblfj@hirez.programming.kicks-ass.net> <20171127100635.kfw2nspspqbrf2qm@gmail.com> <20171128111214.42esi4igzgnldsx5@gmail.com> Date: Wed, 29 Nov 2017 19:52:56 +1100 Message-ID: <87tvxda2l3.fsf@concordia.ellerman.id.au> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ingo Molnar writes: ... > Index: tip/include/linux/stat.h > =================================================================== > --- tip.orig/include/linux/stat.h > +++ tip/include/linux/stat.h > @@ -6,6 +6,34 @@ > #include > #include > > +/* > + * Human readable symbolic definitions for common > + * file permissions: > + */ > +#define PERM_r________ 0400 > +#define PERM_r__r_____ 0440 > +#define PERM_r__r__r__ 0444 > + > +#define PERM_rw_______ 0600 > +#define PERM_rw_r_____ 0640 > +#define PERM_rw_r__r__ 0644 > +#define PERM_rw_rw_r__ 0664 > +#define PERM_rw_rw_rw_ 0666 > + > +#define PERM__w_______ 0200 > +#define PERM__w__w____ 0220 > +#define PERM__w__w__w_ 0222 > + > +#define PERM_r_x______ 0500 > +#define PERM_r_xr_x___ 0550 > +#define PERM_r_xr_xr_x 0555 > + > +#define PERM_rwx______ 0700 > +#define PERM_rwxr_x___ 0750 > +#define PERM_rwxr_xr_x 0755 > +#define PERM_rwxrwxr_x 0775 > +#define PERM_rwxrwxrwx 0777 I see what you're trying to do with all the explicit underscores, but it does make them look kinda ugly. What if you just used underscores to separate the user/group/other, and the unset permission bits are just omitted. Then the two most common cases would be: PERM_rw_r_r PERM_r_r_r Both of those read nicely I think. ie. the first is "perm read write, read, read". Full set would be: #define PERM_r 0400 #define PERM_r_r 0440 #define PERM_r_r_r 0444 #define PERM_rw 0600 #define PERM_rw_r 0640 #define PERM_rw_r_r 0644 #define PERM_rw_rw_r 0664 #define PERM_rw_rw_rw 0666 #define PERM_w 0200 #define PERM_w_w 0220 #define PERM_w_w_w 0222 #define PERM_rx 0500 #define PERM_rx_rx 0550 #define PERM_rx_rx_rx 0555 #define PERM_rwx 0700 #define PERM_rwx_rx 0750 #define PERM_rwx_rx_rx 0755 #define PERM_rwx_rwx_rx 0775 #define PERM_rwx_rwx_rwx 0777 cheers