DebianConfigs/README.md
2019-03-06 18:27:38 -07:00

90 lines
3.2 KiB
Markdown

# 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.
This archive and included script are meant to supplement my article on setting
up a Debian base-system found at my blog: [My
Techie-Thoughts](https://mytechiethoughts.com/<post_address>)
## Included files
Please refer to the `readme.md` in each subdirectory for a list and description of
each included file.
Presently, configurations are included for:
- BASH profiles (including aliases and custom prompt)
- SSHd (OpenSSH server)
- timesyncd (systemd-timesyncd configuration)
## The script file (customize.sh)
The included script file copies all the files in this archive to the proper
locations on a **default** Debian Stretch system. It makes backups of your
existing files in-place with the extension *.original*. This simply saves you
time and possible errors copying the files manually. The structure of this
archive exactly mirrors a default Debian installation, so you can use that as a
guide if you choose not to use the script.
### Running the script
Please note you must either make the script executable or call it explicitly via
BASH. In the latter case, you'd run the script as follows:
```bash
/bin/bash ./customize.sh
```
If you want to make the script executable:
```bash
chmod +x customize.sh
./customize.sh
```
Due to location of the files being replaced, **you MUST run this script as ROOT**
(the script will exit if you run as a different user) or run it via sudo like
this (assuming you made it executable):
```bash
sudo ./customize.sh
```
### Passing a custom path to the script
If you want to test out the script before having it update your actual system
configuration, you can supply an alternate destination path. This is referred
to as a 'Base Path' by the script and it will show a warning if this option is
used. Please note, your 'Base Path' MUST have the same directory structure as
an actual system. The expected directories must already exist or the script
will just throw errors and not actually copy files.
Let's assume you wanted to test the script and copy files to */testdir*. You
would do the following to prepare the directory with the expected structure:
```bash
mkdir -p /testdir/root
mkdir -p /testdir/etc/{skel,ssh,systemd}
```
Then you could invoke the script as follows (assuming you made it executable as
described above):
```bash
./customize.sh /testdir
```
The script would then copy all files into */testdir* while mirroring the
structure of a live system beneath that. Again, this is useful only for testing
and will NOT update your actual system!
## Final thoughts
Hopefully this saves you some time and helps you standardize your new system setups
with a few useful defaults. As always, if you have suggestions or want to leave
feedback for me, please do so on my [blog
post](https://mytechiethoughts.com/<post_address>) related to this script!