Вы неправильно понимаете концепцию пользователя root
.
Проще говоря, root
находится на вершине дерева.
Что, если однажды вы решите стать «суперсуперпользователем», а в следующем месяце — «суперсуперсуперпользователем» (! ). Как далеко «вверх» по дереву вы хотели бы подняться? Как бы вы перетасовали все разрешения и иерархию, чтобы это работало? Кто всегда на высоте? Кто-то должен быть наверху, и это root
. Конец истории.
Приведенные здесь решения -, включая AppArmor и SELinux -, на самом деле ничего не меняют. Они просто обеспечивают более тонкий контроль над root
разрешениями и процессами.
Мне кажется, что ваш процесс обновления не подходит для желаемого результата. Но это вовсе не вина пользователя root
. Вместо того, чтобы все усложнять, подумайте о root
как о пользователе с правами самого высокого уровня, а затем обо всем остальном вам придется работать сверху вниз.
Я знаю, что некоторые люди пометят это,но в иерархии пользователей нет более высокого уровня, и все остальные решения просто дают немного другой контроль над тем, как работают разрешения root
. Но они не создают нового пользователя с более высокими правами.
У вас не может быть пользователя с «больше разрешений», чем root
, потому что root
представляет собой максимально возможный уровень разрешений. Использование такой фразы, как «больше контроля, чем root», является противоречием-root
имеет полный контроль и все возможные разрешения, поэтому над ним ничего нельзя сделать.
Это потому, что вы пытались передать более одного аргумента в shebang. Сравните:
В этом конкретном случае вы можете сжать -n -f
в -nf
. В общем случае это не всегда возможно. Здесь скрипт будет:
#!/bin/sed -nf
s/x/u/g
Примечание :Мне кажется, что скрипт в его нынешнем виде ничего не напечатает из-за -n
.Я предполагаю, что вы собираетесь расширить его.