Вы сделали бы что-то вроде:
sed '/<!--/,$!d;/-->/q'
Первая команда удаляет все строки, но из первого соответствия <!--
вперед. И среди тех, которые не были удалены первой командой, мы ищем закрывающий тэг и выходим (после того, как распечатали ту строку также).
С жемчугом, для разделения тегов комментария:
perl -ln0777 -e 'print $1 if /<!--\s*(.*?)\s*-->/'
Вот ответы:
root
всегда имеет полный доступ к файлам и каталогам. Обычно они есть у владельца файла, но это не всегда так. Например:
-r-xr ----- 1 user1 users 199 14 октября 18:42 otherfile.bin
user1
является владельцем ; однако они могут только читать и выполнять , но root
по-прежнему имеет полный доступ ( rwx ) к файлу.
RUID - это реальный идентификатор пользователя , и он никогда (почти) не меняется. Если user2
входит в систему, оболочка запускается с его реальным идентификатором, установленным на user2
. Все процессы, которые они запускают из оболочки, наследуют реальный идентификатор user2
в качестве своего реального идентификатора.
EUID - это эффективный идентификатор пользователя , он изменяется для процессов (не для пользователя), которые выполняет пользователь, для которых установлен бит setuid .
Если user2
выполняет file.bin
, RUID будет user2
, а EUID запущенного процесса будет user1
.
Давайте воспользуемся случаем passwd
:
-rwsr-xr-x 1 root root 45396 may 25 2012 /usr/bin/passwd
Когда user2
хочет изменить свой пароль , они выполнят / usr / bin / passwd
.
RUID будет user2
, но EUID этого процесса будет root
.
user2
может использовать passwd
для изменения только собственного пароля, потому что внутренне passwd
проверяет RUID и, если это не root
, его действия будут ограничены паролем реального пользователя.
Необходимо, чтобы EUID стал root
в случае passwd
, потому что процессу необходимо записать в / etc / passwd
и / или / etc / shadow
.