IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Droit de modification de la date


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Par défaut Droit de modification de la date
    Hello à tous,

    Voilà, j'ai un projet à faire pour l'école et je suis dans l'impasse.

    Nous devons faire un projet en temps réel, et donc avoir des machines qui se connectent à une machine centrale pour récupérer l'heure pour qu'elles soient toute synchronisées. Les machines sont sous debian, mais pour le moment je fais des tests sous ubuntu.

    Le soucis, c'est que nous devons coder client et serveur NTP nous même. Dans le cas, où l'heure serait déréglée, le programme devra la rectifier.

    Sauf que "date --set" ne peut se faire sans être root et il faut obligatoirement inscrire le mot de passe. Je cherche donc un moyen d'autoriser le programme et l'utilisateur à faire un "date --set". J'ai essayé avec le fichier /etc/sudoes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl ALL=NOPASSWD:/bin/date --set
    Mais rien à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    bebediddl@bebediddl-virtual-machine:~$ date --set 20130310
    date: ne peut initialiser la date.: Opération non permise
    dimanche 10 mars 2013, 00:00:00 (UTC+0100)
    si vous avez des idées?

    Merci d'avance.

    Bérénice.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl@bebediddl-virtual-machine:~$ sudo date --set 20130310

    Ensuite, c'est bien joli, mais ce n'est pas comme ça qu'on synchronize une date avec ntp. Parce que si je suis ton principe, il peux se passer beaucoup de temps entre le moment où ton client ntp java a calculé la date du serveur et le moment où il appelle date --set => Tes machine auront un décalage. Le client ntp de debian / ubuntu est plus à même de gérer directement et correctement la synchronisation des horloge en calculant non pas l'heure, mais le décalage entre le serveur et le client, pour demander à l'horloge de l'OS de se décaler progresibement de la même valeur. Ce qui est insensible au temps d'exécution et évite des "saut" énormes dans certains cas, ce que certaines applications n'aiment pas

    Bref, c'est le rôle de démon ntpd et normalement tout ce que tu as à faire c'est le configurer correctement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Par défaut
    Bonjour tchize_,

    Tout d'abord merci pour ta réponse.

    Si je me souviens bien, même avec le sudo, il me demandait le mot de passe. Car tu as le droit de faire "date" mais pas "date --set <option>" et je n'arrive pas à le configurer de la sorte.

    Si dans /etc/sudoers, je mets exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl ALL=NOPASSWD:/bin/date --set 20130311
    Là il acceptera.

    Pour la configuration NTP, je comprends qu'il soit le mieux placé pour faire ce qu'on nous demande. Mais dans notre cas, l'enseignant nous a demandé de développer nous même cet outil, je pense pour nous faire comprendre comment celui-ci fonctionne, même si il ne sera pas parfait niveau temps.

    De plus, le décalage dont tu me parles a déjà été pris en charge dans le code, donc "normalement", je dis bien "normalement", ^^ , les heures devraient donc être synchronisées.

    Donc, toujours le soucis du "date --set" que je ne peux pas permettre!

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par bebediddl Voir le message

    De plus, le décalage dont tu me parles a déjà été pris en charge dans le code, donc "normalement",
    Ce que je dit c'est que la commande "date" prend en paramètres un date / heure absolue, et qu'il peux y avoir un décalage qui va de quelque millisecondes à plusieurs seconde entre le moment où tu as calculé l'heure correcte par le protocole NTP (en tenant compte des latences réseau comme prévu dans le protocole) et le moment où Runtime.getRuntime().exec() est lancé, coté java. Et ça, tu n'as pas le contrôle dessus ^^ . Ca peux être du au scheduler système qui fait basculer java en arrière plan (quelque millisecondes), java qui doit charger une partie de sa mémoire depuis la swap (quelques centaines de millisecondes) ou le garbage collector qui bloque tout (parfois plusieurs secondes).


    dans ton cas, mettre dans le sudoers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl ALL=NOPASSWD:/bin/date --set [0123456789]
    devrais faire l'affaire.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 47
    Par défaut
    Désolée, un peu de temps à répondre.

    Cela n'a pas l'air de fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    bebediddl@bebediddl-virtual-machine:~$ sudo date --set 2013
    [sudo] password for bebediddl:
    il me demande à chaque fois le mot de passe alors que dans mon fichier /etc/sudoers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl ALL=NOPASSWD:/bin/date --set [0123456789]
    Je ne vois pas

    EDIT :

    En fait, il manque la petite étoile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bebediddl ALL=NOPASSWD:/bin/date --set [0123456789]*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification du format date de mes cellules excel
    Par largo9020 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/11/2006, 14h53
  2. Modification de la date au dela de 24h
    Par voran dans le forum Administration système
    Réponses: 3
    Dernier message: 14/11/2006, 14h22
  3. Modification de la date d'une table possible après une MAJ?
    Par theseriallooser dans le forum InterBase
    Réponses: 1
    Dernier message: 15/02/2006, 23h03
  4. [Utilisation] Récupérer les modifications depuis une date donnée
    Par Sapience dans le forum CVS
    Réponses: 1
    Dernier message: 15/02/2006, 12h08
  5. modification formulaire + validation date
    Par cari dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/01/2006, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo