Пользователь без полномочий root не может подключиться к сети Wi-Fi стандартным способом [LINUX MINT]

Предыдущие ответы объясняют, почему параметр noexecне препятствует запуску скрипта, когда интерпретатор (в вашем случае/bin/bash)явно вызывается из командной строки. Но если бы это было все, эта команда тоже сработала бы:

/lib64/ld-linux-x86-64.so.2 hello_world

Как вы заметили, это не работает. Это потому, что noexecимеет еще один эффект. Ядро не будет разрешать отображаемые в память файлы из этой файловой системы с включенным PROT_EXEC.

Файлы с отображением памяти используются в нескольких сценариях. Два наиболее распространенных сценария — для исполняемых файлов и библиотек. Когда программа запускается с помощью системного вызова execve, ядро ​​внутренне создает отображения памяти для компоновщика и исполняемого файла. Любые другие необходимые библиотеки отображаются в памяти компоновщиком через системный вызов mmapс включенным PROT_EXEC. Если вы попытаетесь использовать библиотеку из файловой системы с noexec, ядро ​​откажется выполнять вызов mmap.

При вызове /lib64/ld-linux-x86-64.so.2 hello_worldсистемный вызов execveтолько создаст сопоставление памяти для компоновщика, а компоновщик откроет исполняемый файл hello_worldи попытается создать сопоставление памяти почти так же, как это было бы сделано для библиотеки. И это тот момент, когда ядро ​​​​отказывается выполнять вызов mmap, и вы получаете ошибку :

.
./hello_world: error while loading shared libraries:./hello_world: failed to map segment from shared object: Operation not permitted

Параметр noexecпо-прежнему позволяет отображать память без разрешения на выполнение (, как это иногда используется для файлов данных ), а также разрешает обычное чтение файлов, поэтому bash hello_worldсработало для вас.

0
17.03.2021, 22:14
3 ответа

Так как мне "не разрешено" добавлять комментарии :@claudia Войдите в свою систему под своей учетной записью и введите sudo usermod -aG sudo *username*в терминале, где имя пользователя — это пользователь, о котором идет речь.

Привилегии Sudo определяются в файле /etc/sudoers. Добавление пользователя в этот файл позволяет вам предоставлять настраиваемый доступ к командам и настраивать отдельные политики безопасности -просто как подсказку, поскольку вы хотели ограничить то, что пользователи могут делать в системе.

0
18.03.2021, 22:25

Эхеммм -ваш вывод journalctl гласит: «OBS :Не удалось использовать sudo, поскольку пользователь aluno ****не имеет такого разрешения» -Что происходит, когда вы добавляете пользователя в группу sudoer?

0
18.03.2021, 22:25

Я использую 32-разрядную версию LM 19.3, и после обновления несколько дней назад с

wpa=2 :2.6ubuntu2.6 до wpa=2 :2.6ubuntu2.8

Bluetooth перестал работать.

Возврат со сдвигом во времени, и он снова работает!?

0
24.03.2021, 09:44

Теги

Похожие вопросы