Извините за мои выражения, и надеюсь, что я описал свой вопрос максимально ясно.
Использование системы Red-hat. В настоящее время у меня есть права суперпользователя в системе, и мне нужно сделать это, sudo python cuckoo.py
чтобы запустить эту программу Python, и она читает и пишет в определенном каталоге, называемом "cuckoo".
Теперь я хочу предоставить обычному пользователю доступ к этому "cuckoo.py", а также к рабочему каталогу. Однако в то же время я также не хочу предоставлять этому пользователю привилегии суперпользователя, потому что они могут повредить моей системе.
Так как же мне разрешить обычному пользователю просто звонить напрямую python cuckoo.py
и не получать никаких сообщений об ошибке «Отказано в доступе»?
Любая помощь и комментарии приветствуются. И если у меня есть действительно плохие фразы, которые делают текст непонятным, пожалуйста, укажите на них, и я постараюсь объяснить более подробно.
Спасибо!
EDIT: Возможно, я не совсем ясно выразился... Я не хочу включать этого обычного пользователя в "root". В настоящее время я создал группу и добавил этого обычного пользователя в группу, а разрешение каталога установлено на 755. Но я хочу, чтобы у группы было разрешение на запись, чтобы все работало cuckoo.py
гладко. Поэтому мне интересно, как сделать так, чтобы и root, и эта группа имели разрешение на чтение, запись и выполнение?
решение1
Если единственная причина, по которой скрипт должен запускаться от имени пользователя root, — это чтение/запись в ваш конкретный каталог, есть два способа решить эту проблему (чтобы обычный пользователь мог успешно запустить скрипт):
- Создайте группу, сделайте папку, в которой вы работаете, принадлежащей этой группе, и добавьте пользователя в эту группу.
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
- Просто измените разрешение на доступ к папке для всех (не рекомендуется, если вы не хотите, чтобы какой-либо пользователь вашего компьютера имел доступ к вашей
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».