DebianConfigs/README.md

3.7 KiB

My standard configuration files for Debian and basic services

This is a collection of several configuration files that I use when setting up a BASIC bare-bones Debian system. Quite often, such a system will become something else like a webserver, git-server, cloud platform, programming workstation, etc. Therefore, only a few core files applicable to nearly every conceivable installation are included here.

Included files

bash template files

bash.rc

Included are .bashrc files for both new users (in the /etc/skel/ directory) and the root user. These files are the Debian default files. They are included and copied so that user profiles start out at baseline settings and pull all initial customizations from /etc/bash.bashrc. Users are free to alter their .bashrc as they see fit and those settings will override or add to the ones I've included in /etc/bash.bashrc

profile

This is the Debian default profile and is copied to /etc/profile to return the system to a baseline configuration. Again, this is done to ensure that only /etc/bash.bashrc is providing initial customizations to users.

bash.bashrc

Of the bash customization files, this is the only one that is NOT in a default configuration. I have added the following customizations I find useful especially for new users and system admins:

  • colourized directory listings with built-in automatic colour settings
  • changed prompt to include 24-hour clock, username, hostname and current directory display
    • username changes to RED when working as ROOT (uid=0)
  • added the following command aliases
    alias full command explanation
    ll ls -l default 'ls' output
    l ls -lAsh --group-directories-first far more useful and robust file display including sizes, permissions and owners
    rm rm -i confirmation prompt when deleting file
    mv mv -i confirmation prompt when moving file would result in overwriting existing file
    cp cp -i confirmation prompt when copying file would result in overwriting existing file

nano defaults (nanorc)

The following options have been enabled/set in nano to provide what I feel is an easier editing experience especially for people coming from a Windows background and new users/admins.

  • 'rebind' numeric keypad to fix problems with using keypad with some SSH clients
  • set 'smart home' some home key is useful
  • allow opening multiple files at once
  • always display line numbers
  • constantly display cursor position at the bottom of the screen
  • set vim lock-files
  • autoindent ON, tab-size of 4 spaces
  • convert tabs to spaces
  • turn off hard line wrapping
  • turn ON soft line wrapping for ease of readability
  • closing 'brackets' (for alignment purposes) set as: "')>]}
  • cut to end of line by default
  • set proper bracket matching (ie. "<" matches ">", etc.)
  • turned on default colours so nano doesn't look so drab
  • added the following key-bindings
binding fuction
alt-c/alt-C copy selected text
alt-x/alt-X cut selected text
alt-v/alt-V paste text on clipboard

time syncronization settings (timesyncd.conf)

This file configures systemd-timesyncd.service and allows for very simple NTP-sync setup. Simply edit the *NTP= to list your desired timeservers, each separated by a single space. In the event those timeservers are not available, you can configure back servers by listing them on the FallbackNTP= line, again space delimited.

I've set the default in this file to be the worldwide NTP.org servers. This should work for pretty much anyone that uses this file, but you really should customize the list to use geographically closer timeservers or the timeserver on your LAN, etc.

SSH server configuration (sshd_config)