diff mbox

[1/1] Fix umask settings for non-bash shells for root user

Message ID 1434378026-15007-1-git-send-email-vorel@jablocom.com
State Superseded
Headers show

Commit Message

Petr Vorel June 15, 2015, 2:20 p.m. UTC
From: Petr Vorel <petr.vorel@gmail.com>

.bash_profile is not readed by some shells (e.g. busybox), so move umask into
.profile. Here it's also loaded .bashrc, when presented and shell is
bash.

CREDITS: inspired by Debian skeleton files.

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
 system/skeleton/root/.bash_profile |  7 -------
 system/skeleton/root/.profile      | 10 ++++++++++
 2 files changed, 10 insertions(+), 7 deletions(-)
 delete mode 100644 system/skeleton/root/.bash_profile
 create mode 100644 system/skeleton/root/.profile

Comments

Thomas Petazzoni Aug. 29, 2015, 8:57 a.m. UTC | #1
Dear Petr Vorel,

Adding Yann, Arnout and Peter in Cc.

On Mon, 15 Jun 2015 16:20:26 +0200, Petr Vorel wrote:
> From: Petr Vorel <petr.vorel@gmail.com>
> 
> .bash_profile is not readed by some shells (e.g. busybox), so move umask into
> .profile. Here it's also loaded .bashrc, when presented and shell is
> bash.
> 
> CREDITS: inspired by Debian skeleton files.
> 
> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> ---
>  system/skeleton/root/.bash_profile |  7 -------
>  system/skeleton/root/.profile      | 10 ++++++++++
>  2 files changed, 10 insertions(+), 7 deletions(-)
>  delete mode 100644 system/skeleton/root/.bash_profile
>  create mode 100644 system/skeleton/root/.profile
> 
> diff --git a/system/skeleton/root/.bash_profile b/system/skeleton/root/.bash_profile
> deleted file mode 100644
> index 0ee04a3..0000000
> --- a/system/skeleton/root/.bash_profile
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -# .bash_profile
> -
> -umask 022
> -
> -if [ -f ~/.bashrc ]; then
> -    source ~/.bashrc
> -fi
> diff --git a/system/skeleton/root/.profile b/system/skeleton/root/.profile
> new file mode 100644
> index 0000000..452ae20
> --- /dev/null
> +++ b/system/skeleton/root/.profile
> @@ -0,0 +1,10 @@
> +# ~/.profile: executed by the command interpreter for login shells.
> +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
> +# exists.
> +umask 022
> +
> +if [ -n "$BASH_VERSION" ]; then
> +    if [ -f ~/.bashrc ]; then
> +        source ~/.bashrc
> +    fi
> +fi

Well, actually, I am wondering if we need to bundle a .profile file at
all. Our system/skeleton/root/ directory contains:

-rw-r--r--  1 thomas thomas    0 oct.   4  2014 .bash_history
-rw-r--r--  1 thomas thomas  175 oct.   4  2014 .bash_logout
-rw-rw-r--  1 thomas thomas   78 mars   5 15:40 .bash_profile

I don't really see why we need any of those three files in our default
skeleton. Maybe we should simply remove them, use the default behavior
of whatever shell is installed, and let users provide their own custom
configuration if needed through a post-build script or rootfs overlay.

Yann, Arnout, Peter, your thoughts?

Thomas
Yann E. MORIN Aug. 29, 2015, 9:20 a.m. UTC | #2
Petr, All,

On 2015-08-29 10:57 +0200, Thomas Petazzoni spake thusly:
> On Mon, 15 Jun 2015 16:20:26 +0200, Petr Vorel wrote:
> > From: Petr Vorel <petr.vorel@gmail.com>
> > 
> > .bash_profile is not readed by some shells (e.g. busybox), so move umask into
> > .profile. Here it's also loaded .bashrc, when presented and shell is
> > bash.
> > 
> > CREDITS: inspired by Debian skeleton files.
> > 
> > Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> > ---
> >  system/skeleton/root/.bash_profile |  7 -------
> >  system/skeleton/root/.profile      | 10 ++++++++++
> >  2 files changed, 10 insertions(+), 7 deletions(-)
> >  delete mode 100644 system/skeleton/root/.bash_profile
> >  create mode 100644 system/skeleton/root/.profile
> > 
> > diff --git a/system/skeleton/root/.bash_profile b/system/skeleton/root/.bash_profile
> > deleted file mode 100644
> > index 0ee04a3..0000000
> > --- a/system/skeleton/root/.bash_profile
> > +++ /dev/null
> > @@ -1,7 +0,0 @@
> > -# .bash_profile
> > -
> > -umask 022
> > -
> > -if [ -f ~/.bashrc ]; then
> > -    source ~/.bashrc
> > -fi
> > diff --git a/system/skeleton/root/.profile b/system/skeleton/root/.profile
> > new file mode 100644
> > index 0000000..452ae20
> > --- /dev/null
> > +++ b/system/skeleton/root/.profile
> > @@ -0,0 +1,10 @@
> > +# ~/.profile: executed by the command interpreter for login shells.
> > +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
> > +# exists.
> > +umask 022
> > +
> > +if [ -n "$BASH_VERSION" ]; then
> > +    if [ -f ~/.bashrc ]; then
> > +        source ~/.bashrc
> > +    fi
> > +fi
> 
> Well, actually, I am wondering if we need to bundle a .profile file at
> all. Our system/skeleton/root/ directory contains:
> 
> -rw-r--r--  1 thomas thomas    0 oct.   4  2014 .bash_history
> -rw-r--r--  1 thomas thomas  175 oct.   4  2014 .bash_logout
> -rw-rw-r--  1 thomas thomas   78 mars   5 15:40 .bash_profile
> 
> I don't really see why we need any of those three files in our default
> skeleton. Maybe we should simply remove them, use the default behavior
> of whatever shell is installed, and let users provide their own custom
> configuration if needed through a post-build script or rootfs overlay.
> 
> Yann, Arnout, Peter, your thoughts?

My opinion? Here's what I'd do ;-)

    git rm system/skeleton/root/.bash_*

And maybe provide a simple .profile *iff* needed.

As for bash, our bash.mk may install those .bash_* files in /root/ .

Furthermore, I'd also like /etc/profile be cleaned-up of all the mess,
moving each (interesting) parts to separate files in /etc/profile.d/ .

And while at it:

    git rm system/skeleton/root/.empty

Regards,
Yann E. MORIN.
Thomas Petazzoni Aug. 29, 2015, 9:29 a.m. UTC | #3
Dear Yann E. MORIN,

On Sat, 29 Aug 2015 11:20:37 +0200, Yann E. MORIN wrote:

> > Yann, Arnout, Peter, your thoughts?
> 
> My opinion? Here's what I'd do ;-)
> 
>     git rm system/skeleton/root/.bash_*

That's also what I want to do.

> And maybe provide a simple .profile *iff* needed.

Can you check if a .profile is really needed? If so, can you submit a
patch series cleaning up .bash_* ?

> As for bash, our bash.mk may install those .bash_* files in /root/ .

Right.

> Furthermore, I'd also like /etc/profile be cleaned-up of all the mess,
> moving each (interesting) parts to separate files in /etc/profile.d/ .

Why not, but let's say it's a separate matter.

> And while at it:
> 
>     git rm system/skeleton/root/.empty

Why? Git doesn't track empty directories, so we have those .empty files
all over the place. I don't see what would recreate the root/ directory
for the root user if we don't keep it in the skeleton. Am I missing
something?

Thomas
Yann E. MORIN Aug. 29, 2015, 9:33 a.m. UTC | #4
Thomas, All,

On 2015-08-29 11:29 +0200, Thomas Petazzoni spake thusly:
> On Sat, 29 Aug 2015 11:20:37 +0200, Yann E. MORIN wrote:
> > > Yann, Arnout, Peter, your thoughts?
> > 
> > My opinion? Here's what I'd do ;-)
> >     git rm system/skeleton/root/.bash_*
> 
> That's also what I want to do.
> 
> > And maybe provide a simple .profile *iff* needed.
> 
> Can you check if a .profile is really needed? If so, can you submit a
> patch series cleaning up .bash_* ?

After the release, maybe?

> > Furthermore, I'd also like /etc/profile be cleaned-up of all the mess,
> > moving each (interesting) parts to separate files in /etc/profile.d/ .
> 
> Why not, but let's say it's a separate matter.

Yes.

> > And while at it:
> > 
> >     git rm system/skeleton/root/.empty
> 
> Why? Git doesn't track empty directories, so we have those .empty files
> all over the place. I don't see what would recreate the root/ directory
> for the root user if we don't keep it in the skeleton. Am I missing
> something?

Right. I was thinking of keeping a .profile in that directory. If there
is a .profile, there is no need for .empty . If there is no .profile
(and no other file), we need to keep .empty , yes.

Regards,
Yann E. MORIN.
Thomas Petazzoni Aug. 29, 2015, 9:36 a.m. UTC | #5
Dear Yann E. MORIN,

On Sat, 29 Aug 2015 11:33:17 +0200, Yann E. MORIN wrote:

> > > And maybe provide a simple .profile *iff* needed.
> > 
> > Can you check if a .profile is really needed? If so, can you submit a
> > patch series cleaning up .bash_* ?
> 
> After the release, maybe?

Absolutely, this is post 2015.08 stuff.

> > Why? Git doesn't track empty directories, so we have those .empty files
> > all over the place. I don't see what would recreate the root/ directory
> > for the root user if we don't keep it in the skeleton. Am I missing
> > something?
> 
> Right. I was thinking of keeping a .profile in that directory. If there
> is a .profile, there is no need for .empty . If there is no .profile
> (and no other file), we need to keep .empty , yes.

Ah, ok, I see. We're on the same line then. Thanks!

Thomas
Arnout Vandecappelle Aug. 29, 2015, 10:07 a.m. UTC | #6
On 29-08-15 11:20, Yann E. MORIN wrote:
> Petr, All,
> 
> On 2015-08-29 10:57 +0200, Thomas Petazzoni spake thusly:
[snip]
>> Well, actually, I am wondering if we need to bundle a .profile file at
>> all. Our system/skeleton/root/ directory contains:
>>
>> -rw-r--r--  1 thomas thomas    0 oct.   4  2014 .bash_history
>> -rw-r--r--  1 thomas thomas  175 oct.   4  2014 .bash_logout
>> -rw-rw-r--  1 thomas thomas   78 mars   5 15:40 .bash_profile
>>
>> I don't really see why we need any of those three files in our default
>> skeleton. Maybe we should simply remove them, use the default behavior
>> of whatever shell is installed, and let users provide their own custom
>> configuration if needed through a post-build script or rootfs overlay.
>>
>> Yann, Arnout, Peter, your thoughts?
> 
> My opinion? Here's what I'd do ;-)
> 
>     git rm system/skeleton/root/.bash_*

 +1

 Even when bash is the default shell, none of these are needed IMHO.


 Regards,
 Arnout

> 
> And maybe provide a simple .profile *iff* needed.
> 
> As for bash, our bash.mk may install those .bash_* files in /root/ .
> 
> Furthermore, I'd also like /etc/profile be cleaned-up of all the mess,
> moving each (interesting) parts to separate files in /etc/profile.d/ .
> 
> And while at it:
> 
>     git rm system/skeleton/root/.empty
> 
> Regards,
> Yann E. MORIN.
>
Peter Korsgaard Aug. 29, 2015, 11:44 a.m. UTC | #7
>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:

 >> My opinion? Here's what I'd do ;-)
 >> 
 >> git rm system/skeleton/root/.bash_*

 >  +1

 >  Even when bash is the default shell, none of these are needed IMHO.

+1 from here as well (for 2015.11).
Maxime Hadjinlian Oct. 3, 2015, 9:34 p.m. UTC | #8
Hi Petr, all

The idea behind that patch has be respinned and reworked into a series to
cleanup /etc/profile a little bit.
You can find it there:
http://lists.busybox.net/pipermail/buildroot/2015-October/140786.html

Thank you very much.

On Sat, Aug 29, 2015 at 1:44 PM, Peter Korsgaard <peter@korsgaard.com>
wrote:

> >>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:
>
>  >> My opinion? Here's what I'd do ;-)
>  >>
>  >> git rm system/skeleton/root/.bash_*
>
>  >  +1
>
>  >  Even when bash is the default shell, none of these are needed IMHO.
>
> +1 from here as well (for 2015.11).
>
> --
> Venlig hilsen,
> Peter Korsgaard
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
diff mbox

Patch

diff --git a/system/skeleton/root/.bash_profile b/system/skeleton/root/.bash_profile
deleted file mode 100644
index 0ee04a3..0000000
--- a/system/skeleton/root/.bash_profile
+++ /dev/null
@@ -1,7 +0,0 @@ 
-# .bash_profile
-
-umask 022
-
-if [ -f ~/.bashrc ]; then
-    source ~/.bashrc
-fi
diff --git a/system/skeleton/root/.profile b/system/skeleton/root/.profile
new file mode 100644
index 0000000..452ae20
--- /dev/null
+++ b/system/skeleton/root/.profile
@@ -0,0 +1,10 @@ 
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+umask 022
+
+if [ -n "$BASH_VERSION" ]; then
+    if [ -f ~/.bashrc ]; then
+        source ~/.bashrc
+    fi
+fi