# 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)