Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-11-2019 09:02:37

Erutluc
Membre
Inscription : 25-12-2017

Autoriser l'éxécution d'une commande qu’à certaine heure

Salut
Je voudrais savoir quel outil permet d'autoriser l’exécution de certaine commande qu’a certaine heure.
Par exemple on peut exécuter la commande ls qu'entre 10:00 et 10:30.

Dernière modification par Erutluc (03-11-2019 09:03:36)

Hors ligne

#2 03-11-2019 12:18:55

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : Autoriser l'éxécution d'une commande qu’à certaine heure

Salut,
C'est quoi le but exact ? Tu voudrais faire du control parental sur la ligne de commande ?

Tu veux choisir une ligne de commande précise ou toute ?
Parce que tu peux virer l'accés à l’icône du Terminal en déplaçant le .desktop du terminal avec cron à l'heure que tu souhaites.

Je te déconseille de changer les droits sur chaque commande (chmod -x ls), des applis peuvent en avoir besoin.

Tu dois pouvoir modifier l'alias de la commande pour qu'elle ne fasse rien, et ce pour un utilisateur uniquement :

alias ls='ls --color=auto'


devient

alias ls='echo'



Ce qui devrait renvoyer les arguments de la commande plutôt que de l’exécuter

Avoir plusieurs sessions avec des droits différents me semble pas mal aussi

A tester, parce-que ça à l'air assez casse gueule comme truc....
Cordialement,
Kao

Hors ligne

#3 03-11-2019 22:03:00

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian bullseye (testing)
Noyau : Linux 5.10.0-5-amd64
(G)UI : LightDM et Xfce4.16
Inscription : 29-04-2015

Re : Autoriser l'éxécution d'une commande qu’à certaine heure

Je suis en phase avec kao, « ça à l'air assez casse gueule… ».

Autant laisser un terrain ouvert et placer un champ de mine au milieu.

Imagine que l'utilisateur lance un script avec ses droits à 9H59 que va t-il se passer lorsque les dix coups de 10H00 vont sonner, plantage sans conséquences, perte de fichier ???

Peut-être vaudrait-il mieux te tourner vers le blocage total de l'accès aux terminaux voir là : restrictions_horaires

Chaque siècle fera son œuvre, aujourd’hui civique, demain humaine. Aujourd’hui la question du droit, demain la question du salaire. Salaire et droit, au fond c’est le même mot. L’homme ne vit pas pour n’être point payé ; Dieu en donnant la vie contracte une dette ; le droit, c’est le salaire inné ; le salaire, c’est le droit acquis.
             Quatrevingt-treize
             Victor Hugo.

Hors ligne

#4 30-11-2019 11:05:55

Erutluc
Membre
Inscription : 25-12-2017

Re : Autoriser l'éxécution d'une commande qu’à certaine heure

Salut,
Merci pour les informations. C’est bien d’une restriction horaire dont j’ai besoin.

J’ai besoin de bloquer Internet via le pare-feu à partir d’une certaine heure.
C’est pour moi. C’est pour éviter de passer trop de temps sur Internet la nuit. Mais j’ai quand même besoin de ma machine allumé.

Donc pour faire ça je pense qu’il faut :
+ bloquer et débloquer via le pare-feu l'accès à internet
+ bloquer et rendre les droits roots à l’utilisateur
+ faire les deux étapes d’avant via cron ou anacron

+ bloquer et débloquer via le pare-feu l'accès à internet
Le script parefeu-stop dans /usr/local/sbin

iptables_liste=(iptables ip6tables)
for iptables in ${iptables_liste[@]}
do
    $iptables -F  
    $iptables -X  

    $iptables -P INPUT DROP
    $iptables -P FORWARD DROP
    $iptables -P OUTPUT DROP
done


On crée un service parefeu.service dans /etc/systemd/system

[Unit]
Description=parefeu

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/sbin/parefeu-start
ExecStop=/usr/local/sbin/parefeu-stop

[Install]
WantedBy=multi-user.target


puis


systemctl daemon-reload
systemctl enable parefeu.service
 


puis on ajoute dans crontab de root

crontab -e

mm hh * * * * /usr/bin/systemctl stop parefeu



+ bloquer et rendre les droits roots à l’utilisateur
J’ai un seul utilisateur sur ma machine et il est dans le groupe sudo.
Donc je peux défaire le blocage du parefeu quand il est bloqué.

Donc ce que j’avais fait c’était de retirer puis de remettre utilisateur_X dans le groupe sudo via le crontab de root

crontab -l
00 10 * * * /usr/sbin/adduser positron sudo
03 10 * * * /usr/sbin/deluser positron sudo


Mais le shell ne prend en compte les modifications qu’après un relogin

L’idéal ça aurait été de pouvoir configurer ça avec visudo

%sudo ALL=(ALL:ALL) ALL Al1000-1030


Mais j’ai pas vu ce genre de paramètre dans le man sudoers
Par contre il y a NOTBEFORE et NOTAFTER mais on doit forcément mettre une date.

Donc j’ai écrit un script limiter_sudo dans /usr/local/sbin/ qui simule le comportement souhaité via le crontab de root en mettant à jours la date dans le fichier sudoers

set -eu

chown root: $0
chmod 440 $0

sudoers=/etc/sudoers

# identifie la ligne à
# modifier  dans le sudoers
identificateur='%sudo'

# période pendant laquelle
# on a le droit d'utiliser sudo
# ex: 21:42 -> 2142
heure_de_debut=0600
heure_de_fin=2000

# date complète
date=$(/usr/bin/date +%Y%m%d)
date_de_debut=${date}${heure_de_debut}
date_de_fin=${date}${heure_de_fin}

# Modification
/usr/bin/sed -in "/${identificateur}/s/NOTBEFORE=[^ ]*/NOTBEFORE=${date_de_debut}/" ${sudoers}
/usr/bin/sed -in "/${identificateur}/s/NOTAFTER=[^ ]*/NOTAFTER=${date_de_fin}/" ${sudoers}



puis on ajoute dans crontab de root

crontab -e

mm hh * * * * /usr/local/sbin/limiter_sudo



+ faire les deux étapes d’avant via cron ou anacron
Mais dans les deux cas je tombe sur les limitations de cron et d’anacron.
J’en parle dans ce post https://debian-facile.org/viewtopic.php?id=25799

Note : mon but ici n’est pas que ça soit impossible pour moi de défaire tous ça mais que ça prenne beaucoup de temps quand tous est bloqué. Assez de temps pour que je laisse tombé et passe à autre chose.

Dernière modification par Erutluc (30-11-2019 11:08:40)

Hors ligne

#5 30-11-2019 11:54:46

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 28-09-2012
Site Web

Re : Autoriser l'éxécution d'une commande qu’à certaine heure

Si c'est un accès à internet, tu peux sûrement regarder du côté de ta box :
Exemple avec Orange :
https://assistance.orange.fr/livebox-mo … 0604-21037
SFR : https://assistance.sfr.fr/internet-tel- … t-box.html
Free : https://free.fr/assistance/5076.html

Peux être plus facile à mettre en place, et tu dois pouvoir le faire équipement par équipement.

Hors ligne

#6 30-11-2019 12:03:15

raleur
Membre
Inscription : 03-10-2014

Re : Autoriser l'éxécution d'une commande qu’à certaine heure

Erutluc a écrit :

Je voudrais savoir quel outil permet d'autoriser l’exécution de certaine commande qu’a certaine heure.


Je suppose qu'il faut regarder du côté des logiciels de contrôle d'accès comme AppArmor ou SELinux.

Erutluc a écrit :

J’ai besoin de bloquer Internet via le pare-feu à partir d’une certaine heure.


Ça n'a aucun rapport. Internet et le pare-feu ne sont pas des commandes.


Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums