Setup sftp server on debian8 (chroot)

Let’s start by:

su -
groupadd sftp_users
usermod -G sftp_users my_username

Then:

emacs /etc/ssh/sshd_config
 
# Search the line below and replace it
Subsystem sftp /usr/lib/openssh/sftp-server
# by this one
Subsystem sftp internal-sftp
 
# Now each time that a user connects from the sftp group, 
# we are gonna apply theses rules:
 
Match Group sftp_users
 X11Forwarding no
 AllowTcpForwarding no
 ChrootDirectory /home
 ForceCommand internal-sftp

Finally:

systemctl restart ssh

https://serverfault.com/questions/660160/openssh-difference-between-internal-sftp-and-sftp-server

Edit: If you need to remove a user from a group:

gpasswd -d user group

or debian includes a tool:

deluser user group

https://unix.stackexchange.com/questions/29570/how-do-i-remove-a-user-from-a-group

SQL – From timestamptz A to timestamptz B

For PostgreSQL (tested on 9.4)

CREATE TABLE tests(id serial not null, created_on timestamptz);
INSERT INTO tests (created_on) VALUES (now());
2016-02-16 19:26:13.823126-05

I guess you have configured your timezone in your postgresql.conf file. I have for information ‘America/Toronto’.

SELECT created_on  AT TIME ZONE ‘Europe/Paris’ FROM tests;
2016-02-17 01:26:13.823126

shell – code de retour par une commande

Comment lire le code de retour d’une commande comme pwd ?

chaque commande executée vous renverra un code d’erreur situé entre 0 et 255. 0 pour opération réussie, sinon toute autre chiffre signifiera qu’une erreur s’est déroulée lors de l’exécution.

Le code de retour est disponible dans cette variable:

$?

Pour exemple

~ pwd toto
pwd: too many arguments
~ echo $?
~ 1

~ pwd
~ /home/user
~ echo $?
~ 0

Stay tuned

shell – La commande read

La commande read lit l’entrée standard et affecte à la variable passé en paramètre la valeur:

~ read variable_1
foobar
~ echo $variable_1
~ foobar

Si vous voulez que le premier mot soit stocké dans la variable_1 et que le reste soit accessible à travers la variable nommée variable_2

~ read variable_1 variable_2

Le premier mot sera stocké dans la variable variable_1 et tout le reste de la chaine de caractère sera dans variable_2. Vous pouvez continuer ainsi de suite …

Autre découverte: rajouté l’option -s et vous pourrez cacher la saisie. Intéréssant pour saisir un mot de passe.

read -s mot_de_passe

Stay tuned

Modèle de données

Je vous cite aujourd’hui une belle définition d’un modèle de données tiré de l’ouvrage Introduction aux bases de données de Chris J. Date

Un modèle de données et une définition logique, indépendante, abstraite des objets et opérateurs qui, ensemble, constituent une machine abstraite avec laquelle les utilisateurs interagissent. Les objets nous permettent de modéliser les structures des données. Les opérateurs nous permettent de modéliser le comportement.

Qui s’en suit avec:

Une implémentation d’un modèle de données est une réalisation physique, sur une machine réelle, des différents composants de la machine abstraite qui, une fois réunis constituent le modèle.

Pour finir sur:

Le modèle correspond à ce que les utilisateurs doivent savoir; l’implémentation est ce que les utilisateurs ne doivent pas savoir

Stay tuned

Publier pour ne pas oublier