Множественные совпадения с подстановочными знаками аргументов для файла sudoers?

Некоторые BIOS могут забыть о настройках загрузки, когда в компьютере удаляются или переставляются такие аппаратные средства, как жесткие диски. Также некоторые обновления Windows 10 могут удалять из BIOS параметры загрузки, отличные от Windows. Чтобы исправить это, вы можете попробовать одно из следующих

Use efibootmgr

Если у вас есть система с поддержкой UEFI, вы можете попробовать загрузиться в Live USB Linux, как предложено в комментариях, и воссоздать отсутствующую загрузочную запись EFI следующим образом:

sudo efibootmgr -c -g -d /dev/sdx -p 2 -L "Ubuntu" -l "\EFI\ubuntu\shimx64.efi"

Где - c создаст новый вариант загрузки, - g будет использовать диск с разделами gpt, - d - загрузочный диск, - p - номер раздела, содержащего загрузчик, начиная с 1 (для дисков с разделами GPT это системный раздел EFI), - L заголовок загрузочной записи в BIOS, - l образ загрузчик: в случае Ubuntu 16.04 x64 с включенной безопасной загрузкой в ​​BIOS следует использовать "\ EFI \ ubuntu \ shimx64.efi", если безопасная загрузка отключена, то "\ EFI \ ubuntu \ grubx64.efi". Убедитесь, что файл образа находится в разделе и на диске, указанном с помощью -d и -p

. Вы можете перечислить существующие записи и значения по умолчанию с помощью

efibootmgr -v

Использовать восстановление загрузки

Другой вариант - использовать инструмент boot-repair , как описано на его официальном сайте, после загрузки в Live USB Linux.

Изменить загрузочный образ из Windows

Если все вышеперечисленное не помогло, вы можете заставить Windows загрузить загрузчик linux напрямую, как описано на askubuntu .В Windows откройте командную строку от имени администратора и выполните:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

, подставив путь к загрузчику debian после «path».

2
28.09.2017, 00:40
2 ответа

Я не боюсь :/
Если вы не хотите использовать подстановочные знаки, такие как & #187;& #63;& #171; или даже & #187;& #42;& #171;, вам нужно будет предоставить именно то, что вы хотите.

Согласно справочной странице sudoers, он предоставляет только общие подстановочные знаки& #58;

Wildcards
  sudo allows shell-style wildcards (aka meta or glob characters) to be used in host names,
  path names and command line arguments in the sudoers file.  Wildcard matching is done via the
  glob(3) and fnmatch(3) functions as specified by IEEE Std 1003.1 (“POSIX.1”).

  *         Matches any set of zero or more characters (including white space).

  ?         Matches any single character (including white space).

  [...]     Matches any character in the specified range.

  [!...]    Matches any character not in the specified range.

  \x        For any character ‘x’, evaluates to ‘x’.  This is used to escape special characters
            such as: ‘*’, ‘?’, ‘[’, and ‘]’.

  NOTE THAT THESE ARE NOT REGULAR EXPRESSIONS.
  Unlike a regular expression there is no way to match one or more characters within a range.
12
27.01.2020, 21:58

Как уже указывалось, то, что вы хотите, не поддерживается sudo, он поддерживает только общий подстановочный знак.

Использование подстановочных знаков в формате sudoers сопряжено с некоторыми серьезными опасностями. Например, если вы разрешите rm -Rf /some/path/*, вы можете sudo rm -Rf /some/path/blarg /another/not/allowed/path, и это позволит им по существу rmлюбой файл, если они также используют этот путь. Точно так же вы можете злоупотреблять относительным путем, вы все равно можете удалить другой путь, оставив указанный каталог нетронутым через rm -Rf /some/path/../../../../some/path/that/should/be/restricted.

Вы можете использовать прокси-скрипт, который выполняет проверку ввода.

Настоятельно рекомендую прочитать всю серию постов, но хотя бы те, что посвящены подстановочным знакам:https://blog.compass-security.com/2012/10/dangerous-sudoers-entries-part-4-wildcards/

4
16.04.2020, 20:42

Теги

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