Шаги, чтобы автоматически позволить моему пользователю выполнить сложную команду при входе в систему

Я уже испортил свою систему однажды, таким образом, я собираюсь спрашивать более конкретно:

Что должны сделать шаги, так, чтобы команда могла работать с sudo полномочиями при запуске?

Вот то, что я знаю до сих пор: у Меня есть эта команда, содержа "":

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"

Я перешел в Preferences -> Default applications for LXSession и добавил строку: lxterminal -e COMMAND к разделу автоматического запуска.

Это запускает терминал, выполняющий мою команду (в этом случае, запуская мой диспетчер серверов Minecraft). Чему-то в рамках этого процесса нужны sudo полномочия. Так как я записал эту программу сам и так как я доверяю Mojang, я просто хочу выполнить эту команду на sudo уровне, не будучи должен ввести в моем пароле.

Я пытался использовать sudo visudo дать моему пользователю права выполнить его, не вводя пароль. Я, кажется, не разбираюсь в синтаксисе.

Вот, как я думаю, что это должно быть:

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"

Где ошибка здесь?

Я любил бы его, если Вы могли бы ответить шаг за шагом. Возможно, я использовал неправильную строку для ввода его или независимо от того, что это могло быть.

1
задан 13 April 2017 в 15:23

1 ответ

Обычно, Вы использовали бы сервис для выполнения как определенный пользователь в определенное время во время начальной загрузки.

Я думаю идеальное решение, "Как работать, сервер Minecraft при входе в систему" должен создать нового пользователя, minecraft, и удостоверьтесь что Ваш сервер HTTP (apache или nginx) имеет доступ к тем файлам, сгенерированным overviewer. Когда Вы работаете overviewer, Вы хотите сделать это как minecraft пользователь.

Следующее принимает это /home/minecraft/minecraft-1.7/ каталог, который содержит Ваши файлы сервера Minecraft, такой как world каталог, и что в рамках того каталога, у Вас есть minecraft_server.jar. Кроме того, nginx используется для действия как сервер HTTP.

Можно создать этого пользователя с sudo useradd minecraft -m. Не устанавливая пароль, Вы только сможете стать этим пользователем с sudo su - minecraft.

minecraft у пользователя была бы следующая запись крона (crontab -e как minecraft):

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

Идеально, у Вас будет сервер Minecraft выполненным с помощью выскочки (/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

Позвольте этому запуститься при начальной загрузке с sudo systemctl enable minecraft-server, и скажите этому запускаться теперь с sudo systemctl start minecraft-server.

... в то время как Вы настраиваете NGINX с:

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;
    }

}

Нет никакой причины работать minecraft, overviewer, и т.д. как корень, и должен избежаться.

2
ответ дан 7 December 2019 в 13:39

Другие вопросы по тегам:

Похожие вопросы: