Я хочу разрешить конкретному пользователю выполнять скомпилированную программу в моем каталоге. Я получил его имя пользователя от cat /etc /passwd. Исполняемый файл не записывает никаких файлов, но читает несколько и выдает данные в командной строке. Как мне этого добиться?
3 ответа
Я хотел бы добавить новую группу, включить этого пользователя и изменить файлы и исполняемые файлы для этой группы.
Создать группу
groupadd Group_name
Изменить группу файла (исполняемый и те, которые будут прочитаны)
chgrp Group_name file
Сделать исполняемый файл доступным для членов группы
chmod g+x executable_file
executetable_fileСделайте все файлы, которые ему / ей понадобятся для чтения, группой
chmod g+r file
Добавить пользователя и себя в группу
useradd -G Group_name username
Если ваши файлы не являются секретными, вы можете просто сделать эту папку доступной для чтения всем или какой-либо группе, куда вы поместите себя и другого пользователя.
Если у вас есть сценарий с пользователями, которым нельзя разрешить доступ к чтению этих данных, вам придется использовать стратегию на основе sudo
, чтобы привилегированный пользователь мог запустить вашу программу, например, с помощью:
sudo ~user19448/myprogram/runme
Сначала вы должны настроить sudo (с помощью visudo
) на что-то вроде:
particular-user ALL=(ALL) NOPASSWD: /home/user19448/myprogram/runme
NOPASSWD избавляет вас от необходимости вводить собственный пароль, который вы, вероятно, хотите.
Лучший вариант - вы оба должны быть в одной группе. Допустим, вы создаете группу под названием team
и вы оба являетесь ее членами. Затем вы можете позволить ему выполнить его, дав группе разрешение на выполнение для этой программы.
Допустим, у вас есть два пользователя с именем test и test1
# groupadd team
# usermod -G team test
# usermod -G team test1
Допустим, каталог, в котором находится ваша программа, называется /home/test/programs/program1
Теперь измените групповое владение каталогом и программой.
# chown test:test1 /home/test/programs/program1
# chown test:test1 /home/test/programs/
# chmod g+x /home/test/programs/program1
# chmod g+x /home/test/programs/
Теперь пользователь test1
сможет выполнить программу.
Этот способ более безопасен и не позволяет другим злоупотреблять им.