Различие между владельцем/корнем и RUID/EUID

Вы сделали бы что-то вроде:

sed '/<!--/,$!d;/-->/q'

Первая команда удаляет все строки, но из первого соответствия <!-- вперед. И среди тех, которые не были удалены первой командой, мы ищем закрывающий тэг и выходим (после того, как распечатали ту строку также).

С жемчугом, для разделения тегов комментария:

perl -ln0777 -e 'print $1 if /<!--\s*(.*?)\s*-->/'
26
13.04.2017, 15:36
1 ответ

Вот ответы:

  1. root всегда имеет полный доступ к файлам и каталогам. Обычно они есть у владельца файла, но это не всегда так. Например:

     -r-xr ----- 1 user1 users 199 14 октября 18:42 otherfile.bin 
     

    user1 является владельцем ; однако они могут только читать и выполнять , но root по-прежнему имеет полный доступ ( rwx ) к файлу.

  2. 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 .

37
27.01.2020, 19:40

Теги

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