Difference between revisions of "Ubuntu"
m (→Apache 2) |
|||
(40 intermediate revisions by the same user not shown) | |||
Line 35: | Line 35: | ||
<code>sudo adduser johndoe</code> | <code>sudo adduser johndoe</code> | ||
==== sudo group stuff ==== | |||
Add user to sudo group | |||
<code>sudo usermod -aG sudo <USER_NAME></code> | |||
Verify user belongs to sudo group | |||
<code>groups <USER_NAME></code> | |||
Verify sudo access | |||
<code>su - <USER_NAME></code> | |||
Remove user from sudo group | |||
<code>sudo deluser <USER_NAME> sudo</code> | |||
=== Networking utilities === | === Networking utilities === | ||
Line 41: | Line 59: | ||
<code>ip a</code> | <code>ip a</code> | ||
==== Configure hostname ==== | |||
[https://linuxize.com/post/how-to-change-hostname-on-ubuntu-18-04/ How to change hostname on Ubuntu 18 04] | |||
==== systemctl ==== | |||
Verify which processes run on Ubuntu 18.04 start up use <code>$ sudo systemctl list-unit-files</code>. | |||
=== Check version of Ubuntu === | |||
<code>$ cat /etc/os-release</code> | |||
== CLI Software Management == | == CLI Software Management == | ||
Synchronize package index from Internet. Location of repositories <code>/etc/apt/sources.list</code> | Synchronize package index from Internet. Location of repositories <code>/etc/apt/sources.list</code> | ||
<pre>sudo apt | <pre>sudo apt update</pre> | ||
Install newest versions of all software packages | Install newest versions of all software packages | ||
<pre>sudo apt | <pre>sudo apt upgrade</pre> | ||
Update distribution | Update distribution | ||
<pre>sudo apt-get dist-upgrade</pre> | <pre>sudo apt-get dist-upgrade</pre> | ||
Line 54: | Line 83: | ||
List installed packages | List installed packages | ||
<pre>apt list --installed</pre> | <pre>apt list --installed</pre> | ||
List installed packages that start with 'python' | |||
<pre>$ apt list -a --installed python*</pre> | |||
To upgrade Ubuntu release, see [https://ubuntu.com/server/docs/how-to-upgrade-your-release How To Upgrade Your Release] | |||
== Python on Ubuntu Notes == | |||
See [[ Python | My Python Notes]] for information not specific to Ubuntu and Python. | |||
Verify Python 3 is installed | |||
<pre>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</pre> | |||
Verify Python 3 PIP installed | |||
<pre>$ pip3 --version | |||
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)</pre> | |||
To install Python 3 PIP | |||
<pre>$ sudo apt-get install -y python3-pip</pre> | |||
I use Python virtual environments. Verify Python venv module is installed | |||
<pre>$ apt list -a --installed *venv* <----- If nothing with Python 3 venv comes back then you most install venv module</pre> | |||
To install Python 3 venv module | |||
<pre>$ sudo apt-get install -y python3-venv</pre> | |||
Create virtual environment. I keep my Python virtual environments in a single directory. To create directory <code>$ mkdir python-venv</code> | |||
Switch do directory <code>$ cd python-venv/</code> | |||
Create virtual environment | |||
<pre>$ python3 -m venv udmey-django</pre> | |||
Activate virtual environment | |||
<pre>$ source udmey-django/bin/activate</pre> | |||
Prompt changes to reflect virtual environment | |||
<pre>(udmey-django) anon@hammerhead:~/python-venv$</pre> | |||
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 | |||
<pre>$ deactivate</pre> | |||
== mongoDB == | |||
[[My MongoDB notes]] | |||
== PostgreSQL == | |||
=== Install PostgreSQL === | |||
<pre>$ 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) ...</pre> | |||
=== Use PostgreSQL === | |||
Switch to postgres account | |||
<pre>sudo -i postgres</pre> | |||
Access PostgreSQL prompt | |||
<pre>psql</pre> | |||
Exit PostgreSQL prompt | |||
<pre>\q</pre> | |||
Log directly into PostgreSQL prompt with postgres user | |||
<pre>sudo -u postgres psql</pre> | |||
Add user (username must be same as PostgreSQL role and database) | |||
<pre>sudo adduser user_name</pre> | |||
Check current connection information | |||
<pre>\conninfo</pre> | |||
<b>While logged in as postgres user...</b> | |||
Create a new role. Use <code>man createuser</code> for more information. | |||
<pre>createuser --interactive</pre> | |||
Create new database | |||
<pre>createdb db_name</pre> | |||
Same user connect to different database | |||
<pre>psql -d postgres</pre> | |||
== Nginx == | |||
[[My Nginx notes]] | |||
[https://www.tecmint.com/install-nginx-with-virtual-hosts-and-ssl-certificate/ Install Nginx with virtual hosts and SSL certificates] | |||
== Apache 2 == | == Apache 2 == | ||
=== Resources === | |||
[https://help.ubuntu.com/lts/serverguide/httpd.html Ubuntu server guide to HTTPD] | |||
[https://help.ubuntu.com/community/OpenSSL#SSL_Certificates Ubuntu Open SSL guide] | |||
[https://help.ubuntu.com/lts/serverguide/certificates-and-security.html.en Ubuntu Certificates and Security] | |||
[http://tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html SSL Certificate HOWTO] not Ubuntu specific | |||
[https://stuff-things.net/2015/09/28/configuring-apache-for-ssl-client-certificate-authentication/ Configure Apache for SSL client certificate authentication] | |||
=== Installation === | |||
Update all your software and install Apache 2 | Update all your software and install Apache 2 | ||
Line 98: | Line 247: | ||
443/tcp (Apache Secure (v6)) ALLOW IN Anywhere (v6)</pre> | 443/tcp (Apache Secure (v6)) ALLOW IN Anywhere (v6)</pre> | ||
== | == Teamspeak 3 setup on Ubuntu 16.04 and 18.x via command line == | ||
Followed steps at [https://www.vultr.com/docs/how-to-install-teamspeak-3-server-on-ubuntu-16-04-64-bit How to install Teamspeak 3 server on Ubuntu 16.04 64-bit] to install Teamspeak 3 and get basic server running. | Followed steps at [https://www.vultr.com/docs/how-to-install-teamspeak-3-server-on-ubuntu-16-04-64-bit How to install Teamspeak 3 server on Ubuntu 16.04 64-bit] to install Teamspeak 3 and get basic server running. | ||
Line 147: | Line 272: | ||
Test your connection using the <CUSTOM UDP Port> | Test your connection using the <CUSTOM UDP Port> | ||
== | === Upgrade Teamspeak3 server === | ||
[https://www.gazblog.com/2019/01/update-teamspeak-3-server-on-ubuntu-18-04/ original steps] | |||
Login to SSH as root | |||
< | Stop your current Teamspeak 3 Server <code>systemctl stop teamspeak.service</code> | ||
Change to your teamspeak user <code>cd /home/teamspeak/;su teamspeak</code> | |||
Download Teamspeak, extract it, update and tidy up. | |||
<pre> | <pre>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</pre> | |||
Return to root and start the Teamspeak server | |||
<pre>exit | |||
systemctl start teamspeak.service | |||
</pre> | |||
Check to make you can connect to Teamspeak 3 server | |||
== Factorio Headless Setup == | |||
[[My Factorio Info]] | |||
== Hardware == | |||
Identify video card: | |||
<pre>paul@congo:~$ lspci -nn | grep VGA | |||
01:00.0 VGA compatible controller [0300]: nVidia Corporation G92 [GeForce 8800 GT] [10de:0611] (rev a2)</pre> | |||
Verify | Verify interface speed | ||
<code>cat /sys/class/net/<interface>/speed</code> | |||
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 [https://community.spiceworks.com/topic/2325763-how-can-i-make-ubuntu-vg-ubuntu-lv-consume-the-entire-disk-space-available How To Make ubuntu-vg-ubuntu-lv Use 100% Free Disc Space] | |||
<pre>anon@ox:~$ sudo pvs | |||
<pre> | 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</pre> | |||
<center>[[Linux|To Linux]]</center> | <center>[[Linux|To Linux]]</center> |
Latest revision as of 11:29, 28 August 2024
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.
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
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
Install Nginx with virtual hosts and SSL certificates
Apache 2
Resources
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
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
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)
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