Liens
Commandes
|
adg
sudo apt update && sudo apt upgrade
reboot
poweroff
|
Astuces
|
\cp
hostnamectl
sudo useradd -r -s /usr/sbin/nologin -N -g nogroup <user>
|
Claim space
|
journalctl --disk-usage
sudo journalctl --vacuum-time=30d
sudo apt autoremove
sudo du -sh /var/cache/apt
sudo apt autoclean
|
- Dossier de déploiement des web sites /var/www/html
- Dossier des configurations des web sites /etc/apache2/sites-available
|
systemctl restart apache2
|
 |
Utiliseur Apache: www-data |
PHP
|
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt update && sudo apt upgrade
|
Uninstall old versions
|
dpkg -l "php*"
sudo systemctl stop php5.6-fpm
sudo systemctl disable php5.6-fpm
ls /etc/apache2/conf-enabled/php*
sudo apt purge php5.6-common
|
 |
L'utilisateur root utilise par défaut l'authentification unix_socket.
Il faut donc utiliser sudo pour se connecter avec root et non pas le mdp. |
|
sudo apt install mariadb-server
sudo mysql
systemctl status mysql
|
|
sudo apt-get install apt-transport-https curl
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc 'https://mariadb.org/mariadb_release_signing_key.asc'
|
Add the repo
/etc/apt/sources.list.d/mariadb.list
|
deb https://mirrors.ircam.fr/pub/mariadb/repo/10.10/ubuntu bionic main
|
|
sc-stop mariadb
ai mariadb-server
sc-start mariadb
|
|
sudo apt install phpmyadmin
|
|
GRANT ALL ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
|
Upgrade
|
sudo a2dissite mediawiki.conf
sc-reload apache2
wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.6.tar.gz
tar xf mediawiki-*.tar.gz
cd /var/www
sudo mv mediawiki mediawiki.bak
sudo mv -T ~/downloads/mediawiki-* mediawiki
sudo chown -R root:root mediawiki
sudo chown -R www-data:www-data mediawiki/cache
sudo chown -R www-data:www-data mediawiki/images
sudo cp -R mediawiki.bak/images/* mediawiki/images
sudo cp -R mediawiki.bak/extensions/MyCustomExtension mediawiki/extensions
sudo cp mediawiki.bak/LocalSettings.php mediawiki
cd mediawiki
php maintenance/update.php
sudo a2ensite mediawiki.conf
sc-reload apache2
sudo rm -rf mediawiki.bak
|
Install
|
wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.6.tar.gz
tar xf mediawiki-*.tar.gz
sudo mv -T mediawiki-* /var/www/mediawiki
|
|
CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE my_wiki;
USE my_wiki;
GRANT ALL ON my_wiki.* TO 'my_user'@'localhost';
|
SSH
openssh est déjà installé et démarré.
|
sudo apt install sshfs
|
OpenVPN
CA certificate
 |
Avec Ubuntu les serveurs CA et VPN sont sur la même machine. |
~/openvpn-ca/vars
|
export KEY_COUNTRY="FR"
export KEY_PROVINCE="Paris"
export KEY_CITY="Paris"
export KEY_ORG="MyOrg"
export KEY_EMAIL="admin@domain.fr"
export KEY_OU="MyUnit"
export KEY_NAME="myservername"
|
|
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
source ./vars
./clean-all
./build-ca
|
Server certificate
|
ln -s openssl-1.0.0.cnf openssl.cnf
dd if=/dev/urandom of=$HOME/.rnd bs=256 count=1
./build-key-server myservername
./build-dh
openvpn --genkey --secret keys/ta.key
cd keys/
cp ca.crt myservername.crt myservername.key ta.key dh2048.pem /etc/openvpn/server
|
Client certificate
|
source ./vars
./build-key --pass [client-name]
./revoke-full [client-name]
|
 |
Le fichier keys/index.txt contient la liste des certificats valides et révoqués. |
|
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server
sudo gzip -d /etc/openvpn/server/server.conf.gz
|
/etc/openvpn/server/server.conf
|
ca ca.crt
cert [server-name].crt
key [server-name].key
dh dh2048.pem
tls-auth ta.key 0
|
|
sc-start openvpn-server@[server-name]
|
IP forward
/etc/sysctl.conf
|
net.ipv4.ip_forward=1
|
|
sudo sysctl -p /etc/sysctl.conf
sudo /etc/init.d/procps restart
|
|
sudo ufw allow 1194/udp comment 'OpenVPN udp port 1194'
|
/etc/default/ufw
|
DEFAULT_FORWARD_POLICY="ACCEPT"
|
/etc/ufw/before.rules
|
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
*filter
|
|
apt install zsh zsh-syntax-highlighting
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
|
~/.zshrc
|
plugins=(common-aliases debian extract git sudo systemd wd)
setopt HIST_IGNORE_SPACE
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
dpkg -l "network-manager"
sc-status NetworkManager
nmcli c show
nmcli c show <NAME>
|
/etc/netplan/01-netcfg.yaml
|
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.0.x/24]
gateway4: 192.168.0.y
nameservers:
addresses: [192.168.0.x, 192.168.0.y]
|
 |
Renderers: NetworkManager networkd |
|
sudo netplan try
sudo netplan generate
sudo netplan apply
netplan ip leases [interface]
|
|
sudo apt install python3-pip
pip install [package]
|
.zshenv
|
export PATH=$PATH:"$HOME/.local/bin"
|
 |
Add /usr/local/bin to your PATH |
|
sudo -H pip-safe --system install <package>
pip-safe list
sudo mkdir -p /opt/pip-safe
sudo chown [current-user]:[current-group] /opt/pip-safe
python3 -m venv /opt/pip-safe/pip-safe
/opt/pip-safe/pip-safe/bin/pip install pip-safe
sudo chown root:root -R /opt/pip-safe
sudo ln -s /opt/pip-safe/pip-safe/bin/pip-safe /usr/local/bin/pip-safe
|
Let's Encrypt
 |
certbot version 0.27 is available via apt.
To get a newer version, use pip or pip-safe. |
|
sudo -H pip-safe --system install certbot-dns-ovh
sudo ln -s /opt/pip-safe/certbot-dns-ovh/bin/certbot /usr/local/bin/certbot
sudo python3 -m pip install -U certbot certbot-dns-ovh
|
Install useful bash tools with cargo
|
cargo install fd-find
cargo install du-dust
cargo install ripgrep
cargo install bat
cargo install --list
|
~/.zshenv
|
export PATH=$PATH:"$HOME/.cargo/bin"
|
Service web équivalent à top. Service accessible via host:61208
|
apt install glances
glances -w
|
/etc/apache2/sites-available/000-default.conf
|
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^https?://[^/]+/glances
RewriteCond %{REQUEST_URI} !^/glances
RewriteCond %{THE_REQUEST} ^GET
RewriteRule ^/(.*) /glances/$1 [QSA,R]
ProxyPass /glances/ http://localhost:61208/
ProxyPassReverse /glances/ http://localhost:61208/
Redirect permanent /glances http://n2/glances/
|
/etc/systemd/system/glances-web-ui.service
|
[Unit]
Description=Glances Web UI
After=network.target
[Service]
ExecStart=/usr/bin/glances -w
Restart=on-abort
[Install]
WantedBy=multi-user.target
|
|
sudo apt install transmission-daemon
sc-status transmission-daemon
|
/etc/transmission-daemon/settings.json
|
{
"rpc-port": 9091,
"rpc-whitelist": "127.0.0.1,192.168.x.x",
"peer-port": 51413,
"download-dir": "/var/lib/transmission-daemon/downloads",
"incomplete-dir": "/var/lib/transmission-daemon/downloads",
"incomplete-dir-enabled": false,
}
|
|
sudo apt install amule-daemon
sc-status amule-daemon
useradd -r -d /var/lib/amule-daemon -s /usr/sbin/nologin amule
echo -n password | md5sum | cut -d ' ' -f1
|
/etc/default/amule-daemon
|
AMULED_USER="amule"
AMULED_HOME="/var/lib/amule-daemon"
|
/var/lib/amule-daemon/.aMule/amule.conf
|
Port=4662
UDPPort=4672
TempDir=/var/lib/amule-daemon/.aMule/Temp
IncomingDir=/var/lib/amule-daemon/.aMule/Incoming
[ExternalConnect]
ECPort=4712
ECPassword=ef7628c92bff39c0b3532d36a617cf09
|
|
sudo apt install minidlna
|
.NET Core
 |
ARM64 support requires Linux kernel 4.14 or higher. |
Installation
|
wget https://download.visualstudio.microsoft.com/download/.../aspnetcore-runtime-x-linux-arm64.tar.gz
mkdir dotnet
tar zxf aspnetcore-runtime-x-linux-arm64.tar.gz -C dotnet
sudo mv dotnet /usr/share
sudo chown root:root -R /usr/share/dotnet
export DOTNET_ROOT=/usr/share/dotnet
export PATH=$PATH:/usr/share/dotnet
dotnet --info
wget https://download.visualstudio.microsoft.com/download/.../dotnet-sdk-x-linux-arm64.tar.gz
tar xzf dotnet-sdk-x-linux-arm64.tar.gz
|
~/.zshenv
|
export DOTNET_ROOT="/usr/share/dotnet"
export PATH=$PATH:"/usr/share/dotnet"
|
Console
|
dotnet new console -o dotnet-console
cd dotnet-console
dotnet build
bin/Debug/netcoreapp3.1/dotnet-console
|
ASP.NET Core with React.js and Redux
|
dotnet new reactredux -o dotnet-reactredux
sudo apt install nodejs npm
cd dotnet-reactredux
dotnet build
dotnet run
|
 |
SQL Server is not supported on ARM architecture. |
Gitweb
|
sudo apt install gitweb
sudo apachectl -M | grep cgi
sudo a2enmod cgid
|
Use gitolite repositories
/etc/gitweb.conf
|
$projectroot = "/var/lib/gitolite3/repositories";
|
|
sudo setfacl -RPm u:www-data:rX /var/lib/gitolite3/repositories
|
|
sudo apt install gitolite3
ssh gitolite3@<server> info
git clone gitolite3@<server>:gitolite-admin
git remote add origin gitolite3@<server>:<project>
git push --set-upstream origin master
|
conf/gitolite.conf
|
repo new_repo
RW+ = @all
|
 |
Commit and push to apply changes. |
 |
Not supported on ARM architecture |
|
sudo apt install curl openssh-server ca-certificates postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ce
|
Roundcube
 |
Version available 1.3.6 supports PHP version >=5.4 <=7.3 |
/etc/apache2/sites-available/roundcube.conf
|
<FilesMatch "\.php$">
# force php 7.4
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
SSLOptions +StdEnvVars
</FilesMatch>
|
Installation
|
sudo useradd -m -G users,sudo <username>
sudo passwd <username>
locale
locale -a
sudo locale-gen fr_CH.UTF-8
update-locale LANG=fr_CH.UTF-8
timedatectl status
timedatectl list-timezones
sudo timedatectl set-timezone Europe/Paris
|
Errors
|
sudo apt install apparmor-utils
sudo aa-disable /usr/bin/man
|