Найти с абсолютным путем внутри Bashscript | Скаргс BaseName

Возможно, релевантная строка ранее в том же документе:

Никаких программ setuid/setgid. Добавлена поддержка возможностей файловой системы в системные файлы Android и удалены все программы setuid/setguid. Это уменьшает поверхность атаки root и вероятность потенциальных уязвимостей безопасности.

Что касается вашего последнего вопроса:

Если системный раздел на устройствах Android смонтирован с nosuid, то как могут исполняемые файлы ядра системы запускаться от имени root, что они должны делать на самых ранних стадиях запуска?

nosuid не препятствует root запуску процессов. Это не то же самое, что noexec. Он просто предотвращает вступление в силу suid бита на исполняемых файлах, что по определению означает, что пользователь не может запустить приложение, которое будет иметь разрешение на выполнение действий, на которые у него самого нет разрешения.

Здесь также важно понимание того, что такое "зигота"; попробуйте прочитать https://android.stackexchange.com/a/77308

Оговорка: я не эксперт по Android.

0
17.09.2018, 21:50
2 ответа

Это работает для меня:

find /some/long/path/ -type f -exec basename {} \;| sort
1
28.01.2020, 02:23

Вы ошиблись двумя способами:

  1. Вы передаете полу-произвольные имена файлов от findдо двух каналов --до xargs, а затем к sort. Используйте null -, завершенный -print0из find, если можете, или вставьте действия внутрь -exec, , как продемонстрировано Maulinglawns .

  2. ЕСЛИ у вас были имена файлов, которые никогда не содержали никаких символов из $IFS, ваша команда все равно не выполнялась бы, потому что вы попросили xargsвыполнить эхо с подстановкой команды; эта подстановка команд просит basenameвывести базовое имя @, которого, вероятно, не существует. Ближе было бы:

    find /long/absolute/path -type f | xargs -L 1 -I @ basename @ | sort
    

... так как это позволило бы xargsинтерполировать имена файлов в качестве аргументов для basename.

2
28.01.2020, 02:23

Теги

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