Как я могу сделать файл исполняемым только для других пользователей, но не доступным для чтения / записи, поэтому я выполняю что-то под своим именем пользователя, но не хочу выдавать пароль. Я попытался :
chmod 777 testfile
chmod a=x
chmod ugo+x
Я по-прежнему получаю отказ в разрешении при выполнении от имени другого пользователя.
linux
security
permissions
executable
c0mrade
источник
источник
Ответы:
Чтобы иметь возможность выполнять сценарий, вам необходимы разрешения на чтение и выполнение сценария. Если вы не можете прочитать содержимое скрипта, вы также не сможете выполнить его.
источник
В предыдущих заявлениях есть половина правды. Вы можете настроить скрипт так, чтобы он не читался пользователем, но оставался исполняемым. Процесс немного затягивается, но его можно выполнить, сделав исключение в / etc / sudoer, чтобы пользователь мог временно запускать сценарий от своего имени без запроса пароля. Пример ниже:
Некоторый скрипт, которым я хочу поделиться с пользователем:
Создайте скрипт оболочки, который вызывает somescript.pl, и сохраните его в / bin /:
ДОПОЛНИТЕЛЬНЫЙ ШАГ Создайте символическую ссылку на somescript.sh в / bin /:
Убедитесь, что сценарий оболочки доступен для чтения / исполнения пользователю (нет прав на запись):
Сделайте исключение в / etc / sudoer, добавив следующие строки:
Доказательство в пудинге:
Этот метод должен быть лучше, чем пытаться запутать
Filter::Crypto
или,PAR::Filter::Crypto
илиAcme::Bleach
который может быть изменен, разработанным определенным пользователем. То же самое касается компиляции вашего скрипта в двоичный файл. Дайте мне знать, если вы нашли что-то не так с этим методом. Для более опытных пользователей вы можете полностью удалить раздел User_Alias и заменить SCRIPTUSER на «% groupname». Таким образом, вы можете управлять пользователями вашего скрипта с помощьюusermod
команды.источник
Если вы позволите другим пользователям запускать программу, они могут знать все, что делает программа, независимо от того, доступен ли программный файл для чтения или нет. Все, что им нужно сделать, это указать отладчик (или подобную отладчику программу, такую как
strace
). Бинарный исполняемый файл может запускаться, если он исполняемый и не читаемый (сценарий не может, потому что интерпретатор должен уметь читать сценарий), но это не дает вам никакой безопасности.Если вы хотите, чтобы другие могли выполнять вашу программу в виде черного ящика, не позволяя им точно видеть, что делает программа, вам нужно предоставить вашему сценарию повышенные привилегии: настройте его для своего пользователя. Только root может использовать средства отладки в программах setuid. Обратите внимание, что написание безопасных программ setuid нелегко, и большинство языков не подходят; см. Разрешить setuid для сценариев оболочки для получения дополнительных объяснений. Если вы собираетесь писать программу setuid, я настоятельно рекомендую Perl, в котором есть режим (режим taint), который явно предназначен для создания безопасных сценариев setuid.
источник
Вы можете установить права доступа к файлу с помощью команды chmod. Пользователь root и владелец файла могут устанавливать права доступа к файлу. У chmod есть два режима, символический и цифровой.
Сначала вы решаете, будете ли вы устанавливать разрешения для пользователя (u), группы (g), других (o) или для всех трех (a). Затем вы либо добавляете разрешение (+), удаляете его (-), либо стираете предыдущие разрешения и добавляете новое (=). Затем вы решаете, установить ли вы разрешение на чтение (r), разрешение на запись (w) или выполнить разрешение (x). Наконец, вы скажете chmod, какие права доступа к файлу вы хотите изменить.
Вот несколько примеров.
Сотрите все разрешения, но добавьте разрешение на чтение для всех:
После команды права доступа к файлу будут -r - r - r--
Добавьте права на выполнение для группы:
Теперь права доступа к файлу будут -r - r-xr--
Добавьте разрешения на запись и выполнение для владельца файла. Обратите внимание, как вы можете установить более одного разрешения одновременно:
После этого права доступа к файлу будут -rwxr-xr--
Удалите разрешение на выполнение как у владельца файла, так и у группы. Обратите внимание, опять же, как вы можете установить их оба одновременно:
Теперь разрешения -rw-r - r--
Это краткий справочник по настройке прав доступа к файлам в символическом режиме:
источник
chmod
. Это не отвечает на вопрос.