Ubuntu server 16.04

De Banane Atomic
Aller à la navigationAller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

Liens

Commandes

Bash.svg
# mise à jour
adg
sudo apt-get update && sudo apt-get upgrade

# reboot
reboot

# shutdown
poweroff

.Net Core

Bash.svg
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.1
# installe les dépendances suivantes
# aspnetcore-runtime-2.1 dotnet-host dotnet-hostfxr-2.1 dotnet-runtime-2.1 dotnet-runtime-deps-2.1 dotnet-sdk-2.1
# liblttng-ust-ctl2 liblttng-ust0 liburcu4

Nginx

Bash.svg
# installation
sudo apt install nginx

# serveur nginx
systemctl status nginx
# recharger la configuration sans dropper les connexions
sudo systemctl reload nginx
nginx user: www-data

Nginx et .Net Core

Bash.svg
# activer le fichier de configuration
sudo ln -s /etc/nginx/sites-available/mydotnetcoresite.conf /etc/nginx/sites-enabled/mydotnetcoresite.conf

PHP

Bash.svg
apt install php-fpm
# installe php-common php-fpm php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline

# service
systemctl status php7.0-fpm
/etc/php/7.0/fpm/php.ini
; ne pas autoriser la correction des chemins vers les fichiers php s'ils sont incorrects
cgi.fix_pathinfo=0
/etc/nginx/sites-available/my-site.conf
server {
        listen 80;
        server_name my-site;

        root /srv/my-site;
        index index.php;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

MySql / MariaDb

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.
Bash.svg
sudo apt install mariadb-server
# définit le mot de passe root et configure mysql
sudo mysql_secure_installation
# connexion avec root après l'installation
sudo mysql

# créer un autre compte super user
create user 'mon_compte'@'localhost' identified with 'unix_socket';
grant all on *.* to 'mon_compte'@'localhost';
flush privileges;

# créer un compte system
create user 'dotnet'@'localhost' identified by 'my_password';
grant all on *.* to 'dotnet'@'localhost';
flush privileges;

# connexion avec un autre user
mysql -u <my_user> -p

systemctl status mysql
Mysql.svg
# modifier l'utilisateur root pour qu'il s'authentifie avec un mdp
alter user 'root'@'localhost' identified with 'mysql_native_password';
#alter user 'root'@'localhost' identified with mysql_native_password BY 'xxx';
flush privileges;

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Se connecter à mysql avec sudo

SQL Server

Utilisation

Bash.svg
# Connexion locale, si le password n'est pas spécifé il est demandé
sqlcmd -S localhost -U sa -P '<YourPassword>'
# pour une connexion distante, remplacer localhost par l'ip. Le port 1433 sera utilisé.

Comptes

Tsql.svg
-- The login is a server-level principle.
create login <login_name> with password = '<enterStrongPasswordHere>';  
go

use MyDatabase;
go
-- The user is a database-level principal.
create user <login_name>;
go

Installation du serveur

Bash.svg
# Import the public repository GPG keys
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# vérifier
apt-key list

# Register the Microsoft SQL Server Ubuntu repository
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
# add-apt-repository: command not found
sudo apt install software-properties-common
# vérifier
grep -h ^deb /etc/apt/sources.list /etc/apt/sources.list.d/*

# installation
sudo apt update
sudo apt install -y mssql-server

# configuration
sudo /opt/mssql/bin/mssql-conf setup
# choix de l'édition de SQL Server (Developer, Express, Web, Standard, Enterprise)
# SQL Server system administrator password

# vérifier que le service est bien démarré
systemctl status mssql-server

Installation de SQL Server command-line tools: sqlcmd and bcp

Bash.svg
# Import the public repository GPG keys
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

# Register the Microsoft Ubuntu repository
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

# installation
sudo apt-get update 
sudo apt-get install mssql-tools unixodbc-dev
# Add /opt/mssql-tools/bin/ to your PATH environment variable in a bash shell.

GUI

  • login: sa
  • instance: vide

Azure Data Studio

Bash.svg
# Pour Ubuntu: télécharger le fichier *.deb
sudo dpkg -i azuredatastudio-linux-<version string>.deb

# lancement de l'application
azuredatastudio
  • Thème dark: File → Preferences → Color Theme → Dark Azure Data Studio (default dark)
  • Restaurer un backup: clique-droit sur une connection → Manage → remonter au serveur → Restore
  • Extensions: View → Extensions
Json.svg
"poorSql.trailingCommas": true,
"poorSql.expandCommaLists": false

Backup - Restore

Bash.svg
# Backup
sqlcmd -S localhost -U MyUser -Q "BACKUP DATABASE [MyDb] TO DISK = N'/var/opt/mssql/data/MyDb.bak' WITH NOFORMAT, NOINIT, NAME = 'MyDb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
# -P password, sinon le mot de passe est demandé
# le dossier choisit doit être accessible en écriture pour l'utilisateur mssql

# Restore
sqlcmd -S localhost -U MyUser -Q "RESTORE DATABASE [MyDb] FROM DISK = N'/var/opt/mssql/data/MyDb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
# le fichier de backup doit être accessible en lecture pour l'utilisateur mssql

SSH

openssh est déjà installé et démarré.
Pour se logguer avec root:

/etc/ssh/sshd_config
PermitRootLogin yes
Bash.svg
# activer le compte root pour le terminal
sudo –i passwd root
# déverrouille le compte et définit un mot de passe

# redémarrer ssh
sudo systemctl restart sshd

netplan

/etc/netplan/50-cloud-init.yaml
network:
    version: 2
    ethernets:
        eno1:
            # DHCP
            addresses: []
            dhcp4: yes
            # IP fixe
            addresses: [192.168.0.1/24]
            gateway4: 192.168.0.254
            nameservers:
                search: [local,  home]  # DNS search domain (noms associés à l'ip locale)
                addresses: [8.8.8.8, 8.8.7.7]
            # WOL
            match:
                macaddress: xx:xx:xx:xx:xx:xx
            wakeonlan: true

            optional: true  # ne pas attendre que le réseau soit prêt lors du boot
Bash.svg
# tester la syntaxe
netplan try

netplan generate
netplan apply
# créé les fichiers /run/systemd/network/10-netplan-eno1.link et /run/systemd/network/10-netplan-eno1.network

# vérifier la configuration en cour
netplan ip leases [interface]

WOL

can't get wake-on-lan to work with netplan config file

Bash.svg
# tester si wol est activé
# installer ethtool: apt install ethtool
# lister les interfaces: ls /sys/class/net
sudo ethtool [interface]
# Supports Wake-on: pumbg
# Wake-on: d (disabled)

Utiliser netplan pour activer wol au démarrage.

Samba

Bash.svg
# installation
sudo apt install samba
# vérifier l'installation
whereis samba
# samba: /usr/sbin/samba /usr/lib/x86_64-linux-gnu/samba /etc/samba /usr/share/samba ...

sudo systemctl restart smbd

Configurer Samba
Chemin d'accès \\host\myshare

yarn

Bash.svg
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update && sudo apt install yarn

# erreur trying to overwrite '/usr/bin/yarn', which is also in package cmdtest 0.32-1
sudo apt remove cmdtest

zsh - oh my zsh

Bash.svg
apt install zsh zsh-syntax-highlighting

# install oh-my-zsh et change de shell
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
~/.zshrc
# zsh-syntax-highlighting, doit être sourcé en dernier
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

ripgrep

Bash.svg
# installation: télécharger le fichier *.deb
sudo dpkg -i ripgrep_0.8.1_amd64.deb

Mediawiki

Bash.svg
wget https://releases.wikimedia.org/mediawiki/1.32/mediawiki-1.32.0.tar.gz
tar xf mediawiki-1.32.0.tar.gz

sudo mv mediawiki-1.32.0 /srv/www/mediawiki

Compte root

Il est désactivé et vérouillé par défaut: pas de connexion possible avec root.

Bash.svg
sudo grep root /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# “x” représente un mot de passe vide. Le compte est désactivé.
sudo grep root /etc/shadow
# root:!$6$x...:17654:0:99999:7:::
# “!” représente un mot de passe verrouillé. Le compte est verrouillé.
# root:*:17647:0:99999:7:::
# “*” signifie  qu'aucun mot de passe n'a été définit.

# connexion ponctuelle au compte root
sudo -i

# activer le compte root pour le terminal
sudo -i passwd root
# déverrouille le compte et définit un mot de passe

# désactiver le compte root pour le terminal
sudo passwd -dl root
# verrouille le compte et définit un mot de passe vide

iptables

Bash.svg
apt install iptables-persistent

sudo netfilter-persistent save
sudo netfilter-persistent reload

iptables

journalctl

Bash.svg
# par défaut seul le journal courant est sauvegardé
journalctl -b -1
# Specifying boot ID has no effect, no persistent journal was found
/etc/systemd/journald.conf
[Journal]
Storage=persistent
SystemMaxUse=100M
RuntimeMaxUse=100M

Docker

Bash.svg
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update
sudo apt install docker-ce

# ajoute l'utilisateur courant au groupe docker, permet d'utiliser docker sans sudo
sudo gpasswd -a $USER docker
# Anyone added to the docker group is root equivalent

Kodi Media Player Headless

Bash.svg
docker create --name=kodi-headless \
-v $HOME/.config/kodi:/config/.kodi \
-e PGID=1000 -e PUID=1000 \
-e TZ=Europe/Paris \
-p 8080:8080 \
-p 9090:9090 \
-p 9777:9777/udp \
linuxserver/kodi-headless

Installation

Bash.svg
# ajouter un compte
sudo useradd -m -G users,sudo <username>

Erreurs

Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

Bash.svg
sudo umount /dev/sda1 
sudo fsck /dev/sda1