попробуйте это:
$course = Course::where('id', 1)
->with(['my_list' => function($query) {
$query->inRandomOrder();
}])->first();
return $course->my_list;
Вы могли рассмотреть sudo.
Хотя не 'passwordless', это не требует, чтобы пользователь был дан пароль root. Это может также обеспечить журнал аудита использования сценария.
править: согласно комментарию от Chris, существует опция не потребовать пароля вообще для определенных команд, видеть здесь для деталей. Это может также быть настроено для не запроса чрезмерно пароль, т.е. одна запись пароля может быть хороша для нескольких команд в течение использования.
Между прочим, sudo встроен к Ubuntu и приятно интегрирован с Gnome. Когда человечность предлагает Вам, чтобы Ваш пароль сделал привилегированные операции, это - sudo под капотом.
Обязательно рассмотрите раздел "PREVENTING SHELL ESCAPES" sudoers страницы справочника, если Вы идете sudo путем.
Я рекомендовал бы sudo. Обязательно сожмите Ваш sudoers
зарегистрируйте соответственно; и да, можно позволить некоторым командам выполняться без пароля, который требуют.
Конфигурирование sudo для разрешения обычным пользователям выполненные сценарии оболочки с поднятыми полномочиями не является немного лучше с точки зрения безопасности, чем создание сценария suid корнем. Все ловушки все еще существуют. Вместо этого необходимо записать надлежащую программу, которая делает обширные проверки безопасности. Некоторые вопросы для рассмотрения:
Так как sudo был уже упомянут, Вы могли бы хотеть рассмотреть различные поигравшие в песочнице среды, в зависимости от своих потребностей — например, тюрьма или подобный.
Для улучшения безопасности рассматривают, возможно ли сделать операцию как специального пользователя или группу, которая имеет точно права доступа, необходимые для него. Затем можно сделать сценарий setuid/setgid для того пользователя или группы.
Для действительно тяжелого решения рассмотрите MAC (Мандатное управление доступом) система, как SELinux, AppArmor, TrustedBSD и т.д.