Sample startup files are traditionally kept in
/etc/skel. If you customize your systems' startup file examples,
/usr/local/etc/skelis a reasonable place to put the modified copies.1
What is inside?
Default startup files are stored in
$ ls -al /etc/skel # total 20 # drwxr-xr-x 2 root root 4096 Sep 16 01:22 . # drwxr-xr-x 1 root root 4096 Sep 25 19:20 .. # -rw-r--r-- 1 root root 220 Feb 25 2020 .bash_logout # -rw-r--r-- 1 root root 3771 Feb 25 2020 .bashrc # -rw-r--r-- 1 root root 807 Feb 25 2020 .profile
This directory is used during the addition of users.
$ cat /etc/default/useradd # [...] # The SKEL variable specifies the directory containing "skeletal" user # files; in other words, files such as a sample .profile that will be # copied to the new user's home directory when it is created. # SKEL=/etc/skel
Customizing the startup file
In Jupyter Docker Stacks, we are customizing the startup
It is done before the creation of the default user (
jovyan), so it will benefit for this customization.
And the same goes for any other user that will be created—it’s the case when images are spawned by JupyterHub for example.
Let’s illustrate it.
# setting the color prompt by removing comment at the beginning of the line $ sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc # creating the new user $ useradd -m -s /bin/bash -N -u 1000 jovyan # login will use the customized .bashrc file $ su jovyan $ cat ~/.bashrc | grep force_color_prompt=yes # force_color_prompt=yes
Here is the result, beautiful!
/usr/local/etc/skellike advised in the book because we are working on an image and not on a system that will be updated.