Как предоставить обычному пользователю ограниченные привилегии для определенного каталога и запуска файлов без sudo

Как предоставить обычному пользователю ограниченные привилегии для определенного каталога и запуска файлов без sudo

Извините за мои выражения, и надеюсь, что я описал свой вопрос максимально ясно.

Использование системы Red-hat. В настоящее время у меня есть права суперпользователя в системе, и мне нужно сделать это, sudo python cuckoo.pyчтобы запустить эту программу Python, и она читает и пишет в определенном каталоге, называемом "cuckoo".

Теперь я хочу предоставить обычному пользователю доступ к этому "cuckoo.py", а также к рабочему каталогу. Однако в то же время я также не хочу предоставлять этому пользователю привилегии суперпользователя, потому что они могут повредить моей системе.

Так как же мне разрешить обычному пользователю просто звонить напрямую python cuckoo.pyи не получать никаких сообщений об ошибке «Отказано в доступе»?

Любая помощь и комментарии приветствуются. И если у меня есть действительно плохие фразы, которые делают текст непонятным, пожалуйста, укажите на них, и я постараюсь объяснить более подробно.

Спасибо!

EDIT: Возможно, я не совсем ясно выразился... Я не хочу включать этого обычного пользователя в "root". В настоящее время я создал группу и добавил этого обычного пользователя в группу, а разрешение каталога установлено на 755. Но я хочу, чтобы у группы было разрешение на запись, чтобы все работало cuckoo.pyгладко. Поэтому мне интересно, как сделать так, чтобы и root, и эта группа имели разрешение на чтение, запись и выполнение?

решение1

Если единственная причина, по которой скрипт должен запускаться от имени пользователя root, — это чтение/запись в ваш конкретный каталог, есть два способа решить эту проблему (чтобы обычный пользователь мог успешно запустить скрипт):

  1. Создайте группу, сделайте папку, в которой вы работаете, принадлежащей этой группе, и добавьте пользователя в эту группу.
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
  1. Просто измените разрешение на доступ к папке для всех (не рекомендуется, если вы не хотите, чтобы какой-либо пользователь вашего компьютера имел доступ к вашей cuckooпапке).
sudo chmod -R 664 ./cuckoo

Это разрешение позволяет читать и писать владельцу, группе и всему миру.

решение2

Кажется, я неправильно понял вопрос. Если скрипт все равно нужно запустить как root, и вы хотите, чтобы его мог выполнить обычный пользователь, вы можете использовать инструкции, приведенные наэтот вопрос AskUbuntu.

Помните, что для обеспечения безопасности вам необходимо будет надежно заблокировать разрешения в этом файле.

Сделайте файл собственностью пользователя root и сделайте его группой root:

sudo chown root.root <my script>

Теперь установите липкий файл, сделайте его исполняемым для всех и доступным для записи только пользователю root:

sudo chmod 4755 <my script>

Имейте в виду, что если этот скрипт разрешит какой-либо ввод или редактирование файлов, это также будет сделано от имени пользователя root.

Бит SetUID заставляет скрипт или двоичный файл всегда запускаться от имени владельца файла/двоичного файла, примером такого двоичного файла является «passwd».

Связанный контент