Ubuntu

From Got Opinion Wiki
Jump to navigation Jump to search

Shell commands

Enable root account (not recommended):

$sudo passwd root

Disable root account you lock root account:

$sudo passwd -l root

Want to use root @ console:

$sudo -i

Windows Dual Boot page

Recovering Ubuntu After Windows Install

Grub2 on Ubuntu wiki

Grub2 GUI Customizer

For support-related question you can use Launchpad. You can also search the complete history of questions and answers.

Ubuntu web forums

Grub 2 basics

Enable SSH server

apt-get install openssh-server

Secure SSH server using /etc/hosts.allow

Add a User

Example adding a user with username johndoe. Follow the instructions provided by the command.

sudo adduser johndoe

sudo group stuff

Add user to sudo group

sudo usermod -aG sudo <USER_NAME>

Verify user belongs to sudo group

groups <USER_NAME>

Verify sudo access

su - <USER_NAME>

Remove user from sudo group

sudo deluser <USER_NAME> sudo

Networking utilities

See IP address information

ip a

Configure hostname

How to change hostname on Ubuntu 18 04

systemctl

Verify which processes run on Ubuntu 18.04 start up use $ sudo systemctl list-unit-files.

Check version of Ubuntu

$ cat /etc/os-release

CLI Software Management

Synchronize package index from Internet. Location of repositories /etc/apt/sources.list

sudo apt update

Install newest versions of all software packages

sudo apt upgrade

Update distribution

sudo apt-get dist-upgrade

Install package (if already installed, will attempt to update package)

apt-get install package-name

List installed packages

apt list --installed

List installed packages that start with 'python'

$ apt list -a --installed python*

To upgrade Ubuntu release, see How To Upgrade Your Release

Python on Ubuntu Notes

See My Python Notes for information not specific to Ubuntu and Python.

Verify Python 3 is installed

anon@hammerhead:~$ python --version

Command 'python' not found, but can be installed with:

sudo apt install python3       
sudo apt install python        
sudo apt install python-minimal

You also have python3 installed, you can run 'python3' instead.

anon@hammerhead:~$ python3 --version <----- Python 3 installed.
Python 3.6.7 <----- Version 3.6.7

Verify Python 3 PIP installed

$ pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

To install Python 3 PIP

$ sudo apt-get install -y python3-pip

I use Python virtual environments. Verify Python venv module is installed

$ apt list -a --installed *venv* <----- If nothing with Python 3 venv comes back then you most install venv module

To install Python 3 venv module

$ sudo apt-get install -y python3-venv

Create virtual environment. I keep my Python virtual environments in a single directory. To create directory $ mkdir python-venv

Switch do directory $ cd python-venv/

Create virtual environment

$ python3 -m venv udmey-django

Activate virtual environment

$ source udmey-django/bin/activate

Prompt changes to reflect virtual environment

(udmey-django) anon@hammerhead:~/python-venv$

Note: Within virtual environment, you can use the command python instead of python3, and pip instead of pip3.

Deactivate virtual environment and prompt returns to normal

$ deactivate

mongoDB

My MongoDB notes

PostgreSQL

Install PostgreSQL

$ sudo apt install postgresql postgresql-contrib
...
Success. You can now start the database server using:

    /usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start

Ver Cluster Port Status Owner    Data directory              Log file
10  main    5432 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives: using /usr/share/postgresql/10/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
Setting up postgresql (10+190) ...
Setting up postgresql-contrib (10+190) ...
Processing triggers for systemd (237-3ubuntu10.11) ...
Processing triggers for ureadahead (0.100.0-20) ...

Use PostgreSQL

Switch to postgres account

sudo -i postgres

Access PostgreSQL prompt

psql

Exit PostgreSQL prompt

\q

Log directly into PostgreSQL prompt with postgres user

sudo -u postgres psql

Add user (username must be same as PostgreSQL role and database)

sudo adduser user_name

Check current connection information

\conninfo

While logged in as postgres user...

Create a new role. Use man createuser for more information.

createuser --interactive

Create new database

createdb db_name

Same user connect to different database

psql -d postgres

Nginx

My Nginx notes

Install Nginx with virtual hosts and SSL certificates

Apache 2

Resources

Ubuntu server guide to HTTPD

Ubuntu Open SSL guide

Ubuntu Certificates and Security

SSL Certificate HOWTO not Ubuntu specific

Configure Apache for SSL client certificate authentication

Installation

Update all your software and install Apache 2

# apt-get update
# apt-get upgrade
# apt install apache2

Verify Apache is running

# systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Sun 2018-10-21 14:44:30 CDT; 11min ago
 Main PID: 17131 (apache2)
    Tasks: 55 (limit: 4181)
   CGroup: /system.slice/apache2.service
           ├─17131 /usr/sbin/apache2 -k start
           ├─17132 /usr/sbin/apache2 -k start
           └─17134 /usr/sbin/apache2 -k start

Oct 21 14:44:30 apu02 systemd[1]: Starting The Apache HTTP Server...
Oct 21 14:44:30 apu02 apachectl[17120]: AH00558: apache2: Could not reliably determine the server's
Oct 21 14:44:30 apu02 systemd[1]: Started The Apache HTTP Server.

Firewall

Update firewall to allow only port 443 (default HTTPS TCP port)

# ufw app list
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

# ufw allow 'Apache Secure'

# ufw status verbose | grep 443
443/tcp (Apache Secure)    ALLOW IN    Anywhere
443/tcp (Apache Secure (v6)) ALLOW IN    Anywhere (v6)

Teamspeak 3 setup on Ubuntu 16.04 and 18.x via command line

Followed steps at How to install Teamspeak 3 server on Ubuntu 16.04 64-bit to install Teamspeak 3 and get basic server running.

If you want to customize the server port follow next steps.

Install simple command-line program named sqlite3. How to use sqlite

robot00@apu00:~$ sudo apt install sqlite3

Launch sqlite3 using Teamspeak 3 sqlite database file:

robot00@apu00:~$ sudo sqlite3 /home/teamspeak/ts3server.sqlitedb
SQLite version 3.11.0 2016-02-15 17:29:24
Enter ".help" for usage hints.

Update port command:

sqlite> update servers set server_port=<CUSTOM UDP Port>;

Restart Teamspeak 3 server

robot00@apu00:~$ systemctl restart teamspeak.service

Test your connection using the <CUSTOM UDP Port>

Upgrade Teamspeak3 server

original steps

Login to SSH as root

Stop your current Teamspeak 3 Server systemctl stop teamspeak.service

Change to your teamspeak user cd /home/teamspeak/;su teamspeak

Download Teamspeak, extract it, update and tidy up.

wget https://files.teamspeak-services.com/releases/server/3.9.1/teamspeak3-server_linux_amd64-3.9.1.tar.bz2
tar xvfj teamspeak3-server_linux_amd64-3.9.1.tar.bz2
cd teamspeak3-server_linux_amd64
cp * -R /home/teamspeak
cd ..
rm -r teamspeak3-server_linux_amd64
rm teamspeak3-server_linux_amd64-3.9.1.tar.bz2

Return to root and start the Teamspeak server

exit
systemctl start teamspeak.service

Check to make you can connect to Teamspeak 3 server

Factorio Headless Setup

My Factorio Info

Hardware

Identify video card:

paul@congo:~$ lspci -nn | grep VGA
01:00.0 VGA compatible controller [0300]: nVidia Corporation G92 [GeForce 8800 GT] [10de:0611] (rev a2)

Verify interface speed

cat /sys/class/net/<interface>/speed

replace <interface> with name of your NIC (e.g. eth0)

Ubuntu video card

Resizing logical volume

Background

A 2 TB SSD was physically installed in the system ox and after installation, the LVM used 100 GB.

Reference How To Make ubuntu-vg-ubuntu-lv Use 100% Free Disc Space

anon@ox:~$ sudo pvs
  PV             VG        Fmt  Attr PSize  PFree 
  /dev/nvme0n1p3 ubuntu-vg lvm2 a--  <1.82t <1.72t

anon@ox:~$ sudo vgs
  VG        #PV #LV #SN Attr   VSize  VFree 
  ubuntu-vg   1   1   0 wz--n- <1.82t <1.72t

anon@ox:~$ sudo lvs
  LV        VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ubuntu-lv ubuntu-vg -wi-ao---- 100.00g # <----------- This shows 100 GB and I want 1.8T.
  
anon@ox:~$ sudo lvresize -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <1.82 TiB (476150 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.

anon@ox:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 233
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 487577600 (4k) blocks long.

anon@ox:~$ sudo pvs
  PV             VG        Fmt  Attr PSize  PFree
  /dev/nvme0n1p3 ubuntu-vg lvm2 a--  <1.82t    0 

anon@ox:~$ sudo vgs
  VG        #PV #LV #SN Attr   VSize  VFree
  ubuntu-vg   1   1   0 wz--n- <1.82t    0 

anon@ox:~$ sudo lvs
  LV        VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ubuntu-lv ubuntu-vg -wi-ao---- <1.82t # <----------- This was 100 GB Size, now it's 1.8T.

anon@ox:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              6.3G  1.9M  6.3G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  1.8T   37G  1.7T   3% / # <----------- This was 100 GB Size, now it's 1.8T.
tmpfs                               32G  200K   32G   1% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/nvme0n1p2                     2.0G  252M  1.6G  14% /boot
/dev/nvme0n1p1                     1.1G  6.1M  1.1G   1% /boot/efi
tmpfs                              6.3G  4.0K  6.3G   1% /run/user/1001
tmpfs                              6.3G  4.0K  6.3G   1% /run/user/1000
To Linux