Как получить доступ к файлу в пользовательской папке внутри рутовой в Ubuntu?
Есть shell-скрипты и конфиги к ним, которые должны исполняться по крону, но не должны быть видимыми для пользователя, от имени которого будут исполняться - по крайней мере, он не должен наткнуться на них, гуляя по файловой системе.
Это нужно для того, чтобы потенциальный злоумышленник, получив доступ к системе от имени пользователя, не смог выкрасть пароли из конфигов, которые идут к shell-скриптам.
Пусть файлы будут такими: /root/.crons/user_folder/user_script.sh
/root/.crons/user_folder/config.sh
Пользователь пусть будет dummy.
При этом /root и /root/.crons - принадлежат root:root.
А user_folder, user_script.sh и config.sh - принадлежат пользователю/группе dummy:dummy, и для упрощения пока поставил им всем 777.
Предполагается, что крон будет исполняться рутовый, но от имени пользователя: * * * * * dummy /root/.crons/user_folder/user_script
Прежде чем установить такой крон, пробую от имени dummy запустить скрипт - Permissions denied.
Пытаюсь просто прочесть файл при помощи cat - Permissions denied.
Пытаюсь посмотреть содержимое папки user_folder - Permissions denied.
Мне казалось, что если моя, как пользователя, папка и файлы лежат внутри чужой, то я все равно смогу иметь к ним доступ.
Возможно, это не так. Если да, то почему?
Как можно решить задачу с сокрытием моей папки внутри папки рута (или другого пользователя)?
Как можно решить задачу иначе?
Если пользователь должен запустить скрипт на выполнение, он должен иметь возможность его прочитать так как это работает именно так - читаем команды, затем выполняем.
То, что вы предлагаете противоречит само себе. Волшебства не существует.
Все банально - злоумышленник просто не должен получать доступ к пользователю.
Вы можете сделать обсфукацию - усложнить чтение паролей, храня например их в шифрованном виде, и расшифровывая в процессе выполнения скрипта. Но злоумышленника это не остановит.
P.S. Единственное что - вы можете использовать бинарники и SUID, а не скрипты. Но это такой велосипед, что лучше не лезть в эти дебри.
Домашка рута должна быть с правами 0700 root:root и ни одна собака не должна в ней рыться! Равно как и пользователи (если их несколько) с обычными правами не должны заходить в домашки друг друга! Это "личная жилплощадь" каждого.
Пароли в конфигах - это очень плохо. Это допустимо только тогда, когда невозможно никак иначе, и то я в таокм случае пишу скриптец, который пароль тривиально кодирует-раскодирует. Для общего скрипта в таком случае выделяется папка например в /usr/share, где можно для блезиру сделать еще пару уровней с ничего не говорящими названиями :), а внутри нее уже делать что надо.
Чтобы открыть файл даже на чтение у пользователя должны быть права на чтение каталога всех элементов пути. То есть, если у Вас файл лежит в /usr/share/systemscripts/default/usersettings/zhopa/zhopa.txt, то на все шесть элементов пути должны быть права по чтению.
Чтобы открыть файл даже на чтение у пользователя должны быть права на чтение каталога всех элементов пути.
Не на чтение ('r' / 1) а на выполнение ('x' / 4). Право на чтение даёт возможность узнать содержимое каталога, право на выполнение -- возможность сделать каталог текущим.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.