1 votes

Etapes pour laisser automatiquement mon utilisateur exécuter une commande complexe lors de la connexion

J'ai déjà foutu en l'air mon système une fois alors je vais demander plus spécifiquement :

Quelles sont les étapes à suivre pour que la commande puisse être exécutée avec les privilèges sudo au démarrage ?

Voici ce que je sais jusqu'à présent : J'ai cette commande, qui contient "" :

java -jar /home/joe/minecraft/minecraft_server/MCpal.jar /media/joe/Chest/mc_backups 12288 server.jar "overviewer.py --rendermodes=smooth-lighting {2}/Galamor /home/joe/minecraft/Overviewer/map"

Je suis allé à Preferences -> Default applications for LXSession et a ajouté la ligne : lxterminal -e COMMAND à la section de démarrage automatique.

Cela démarre un terminal exécutant ma commande (dans ce cas, démarrer mon gestionnaire de serveur Minecraft). Quelque chose dans ce processus a besoin de permissions sudo. Puisque j'ai écrit ce programme moi-même et que je fais confiance à Mojang, je veux juste exécuter cette commande au niveau sudo sans avoir besoin de taper mon mot de passe.

J'ai essayé d'utiliser sudo visudo pour donner à mon utilisateur les droits de l'exécuter sans taper un mot de passe. Je n'arrive pas à faire le synthaxe correctement.

Voici, comment je pense que cela devrait être :

joe ALL=(ALL) NOPASSWD: java -jar /home/joe/minecraft/minecraft_server/MCpal.jar /media/joe/Chest/mc_backups 12288 server.jar "overviewer.py --rendermodes=smooth-lighting {2}/Galamor /home/joe/minecraft/Overviewer/map"

Où est l'erreur ici ?

J'aimerais beaucoup que vous puissiez me répondre étape par étape. J'ai peut-être utilisé la mauvaise ligne pour le taper ou autre chose.

2voto

Graeme Hutchison Points 6643

Normalement, vous utilisez un service pour qu'il s'exécute en tant qu'utilisateur spécifique à un moment précis du démarrage.

Je pense que la solution idéale à la question "Comment faire fonctionner un serveur Minecraft à la connexion" est de créer un nouvel utilisateur, minecraft et assurez-vous que votre serveur HTTP ( apache o nginx ) a accès aux fichiers générés par overviewer . Lorsque vous exécutez overviewer vous voulez le faire comme le minecraft utilisateur.

Ce qui suit part du principe que /home/minecraft/minecraft-1.7/ est le répertoire qui contient les fichiers de votre serveur Minecraft, tels que le fichier world et que dans ce répertoire, vous avez minecraft_server.jar. Aussi, nginx est utilisé pour agir comme un serveur HTTP.

Vous pouvez créer cet utilisateur avec sudo useradd minecraft -m . En ne définissant pas de mot de passe, vous ne pourrez devenir cet utilisateur qu'avec sudo su - minecraft .

El minecraft aurait l'entrée cron suivante ( crontab -e como minecraft ):

0 * * * * /usr/bin/overviewer.py --rendermodes=smooth-lighting,cave /home/minecraft/minecraft-1.7/world/ /home/minecraft/minecraft-1.7/www-overviewer/

Idéalement, vous ferez fonctionner le serveur Minecraft en utilisant upstart ( /etc/systemd/system/minecraft-server.service ):

[Unit] 
Description=Minecraft Server

[Service]
WorkingDirectory=/home/minecraft/minecraft-1.7/
User=minecraft
Group=minecraft
Restart=on-failure
RestartSec=20 5
ExecStart=/usr/bin/java -Xms1536M -Xmx1536M -jar minecraft_server.jar nogui

[Install]
WantedBy=multi-user.target

Activez son démarrage au démarrage avec sudo systemctl enable minecraft-server et dites-lui de commencer maintenant avec sudo systemctl start minecraft-server .

...pendant que vous configurez NGINX avec :

server {
    listen 8888;
    client_max_body_size 50M;

    server_name _ minecraft.DOMAIN.tld

    charset UTF-8;

    expires max;
    gzip                on;
    gzip_buffers        16 8k;
    gzip_comp_level     4;
    gzip_http_version   1.0;
    gzip_min_length     1280;
    gzip_types          text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
    gzip_vary           on;
    gzip_static         on;

    add_header Cache-Control  "public";

    location / {
        root  /home/minecraft/minecraft-1.7/www-overviewer;
    }

}

Il y a no raison de courir minecraft , overviewer etc. comme racine, et doivent être évités.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X