Могу ли я разрешить доступ на чтение к файлу ruby ​​script, но не к пользователю, который запускает скрипт? - PullRequest
1 голос
/ 01 декабря 2011

Я установил скрипт ruby ​​(script.rb) в системе Linux, который «требует» другой файл (required.rb) с набором пользовательских методов.

Я не хочу, чтобы мои пользователи читали required.rb.

Если я удаляю доступ для чтения (т.е. chmod 600 required.rb), а затем пытаюсь запустить свой скрипт как пользователь, я получаю следующую ошибку:

no such file to load -- /etc/required.rb

Можно ли позволить ruby ​​прочитать этот необходимый файл, но не дать пользователям увидеть его?

1 Ответ

2 голосов
/ 01 декабря 2011

Способность процесса читать файл определяется эффективным UID указанного процесса.Если вы измените права доступа к файлу, то процессы пользователя (включая процесс ruby) не смогут его прочитать.

Одним из решений является передача вашего ruby-интерпретатора кому-то другому, а затем присвоение ему setuid, но это даст ему возможность читать эти «защищенные» файлы независимо от того, какой скрипт он запускает.Короче, не делай этого.

Другой вариант - сохранить ваши данные где-то, кроме файловой системы, а затем использовать для этого отдельную систему аутентификации.

Правильный способ, на мой взгляд, состоит в том, чтобы иметь все методы в вашем скрипте, но использовать какую-то привязку AAA, которая ограничивает доступ к методам, которые пользователь не должен запускать.Затем вы можете использовать любой бэкэнд AAA для аутентификации вашего пользователя (LDAP, файл паролей и т. Д.).

...