Server

Server setup and administration

Server Initialization

Initial Linux server setup steps:

  1. Login to server as root: ssh root@<ip>
  2. Create new admin user: sudo adduser <user>
  3. Add user to sudo group: sudo usermod -aG sudo <user>
  4. Disable root login
    1. Open SSH configuration: sudo vi /etc/ssh/sshd_config
    2. Set PermitRootLogin to no
  5. Configure Uncomplicated Firewall (UFW)
    1. Allow SSH connections: sudo ufw allow OpenSSH
    2. Open port 80 and 443 for Apache: sudo ufw allow 'Apache Full'
    3. Turn on firewall: sudo ufw enable
    4. Check: sudo ufw status verbose
  6. Reboot the server: sudo reboot
  7. Login as new user: ssh <user>@<ip>
  8. Check for package updates apt list --upgradable 1, Upgrade packages sudo apt upgrade
  9. Show system info: uname -a
  10. Even though the kernel was updated, need to reboot to take effect: sudo reboot
  11. Just to be sure: sudo apt update && sudo apt upgrade
  12. Shutdown for backup/snapshot sudo shutdown -h now
  13. After snapshot, navigate to provider website and restart machine

Permissions

Syntax

General: _rwxrwxrwx 1 owner group

_ | rwx | rwx | rwx = Special | Owner | Group | All Users

Shorthand

  • 4 | r = Read
  • 2 | w = Write
  • 1 | x = Execute

Detailed

  • 0 = ---
  • 1 = --x
  • 2 = -w-
  • 3 = -wx
  • 4 = r-
  • 5 = r-x
  • 6 = rw-
  • 7 = rwx

Commands

chgrp = Change group

Example: sudo chgrp -R <group> <folder>

chown = Change ownership

Example: sudo chown -R <user>:<group> <file/folder>

chmod = Change permissions

Example: sudo chmod -R 774 <file/folder>

Make new files inherit the group: sudo chmod g+s <folder>

Example

Create a shared directory for a group.

  1. Create a shared directory for users to access: /share

  2. Assign users to a common group (staff): sudo usermod -a -G staff <user>

  3. Verify user groups: groups <user>

  4. Create shared directory and assign permissions:

    sudo mkdir /share && \
    sudo chgrp -R staff /share && \  # assign group
    sudo chmod -R g+w /share && \  # permissions
    sudo chmod -R +s /share  # inherit permissions for newly created files/folders