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

Я относительно новичок в концепциях, упомянутых в вопросе, и чтение о них из разных источников только делает их более запутанными. Вот что я понял до сих пор:

Когда нам даются разрешения для файла, они выглядят следующим образом:

  • Почему не удается найти read / run / user / 1000 / gvfs, хотя он работает от имени root?
  • Постоянно проверяйте, изменен ли файл bash
  • Убедитесь, что только root может редактировать скрипт перед его выполнением
  • Настройка приложения по умолчанию для типов файлов через CLI?
  • su - пользователь не работает для пользователей без пароля
  • запуск iperf поверх ssh
  • -rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin 

    Мы предполагаем, что пользователь user2 который находится в группе users пытается выполнить file.bin . Если бит setuid не был установлен, это означало бы, что и RUID, и EUID file.bin были равны UID пользователя2. Но поскольку бит setuid установлен, это означает, что RUID теперь равен UID пользователя2, а EUID – это идентификатор владельца файла user1 .

    Мои вопросы:

    1. В чем разница между владельцем файла и root ? Имеются ли у root те же разрешения, что и у владельца? Или нам нужна отдельная запись в списке разрешений для root ?
    2. Разница между RUID и EUID?
      • Насколько я понимаю, RUID и EUID применяются только к процессам. Если это так, почему у них есть значение идентификатора пользователя?
      • Если RUID является пользователем, который создает этот процесс, а EUID – это пользователь, который в данный момент запускает этот процесс, то первое предложение первого ответа в этом вопросе не имеет для меня никакого смысла.
      • Правильно ли я понял, что делает бит setuid?

  • debian 8.2 больше не может su root
  • Предоставление прав и привилегий SAMBA требует пароля root
  • Владение / разрешения NFS
  • Разрешения для пользователей Apache и FTPd
  • Как я могу объединить все файлы в каталоге вместе в одной операции с командной строкой?
  • Поиск разрешений для файлов, кроме 755
  • One Solution collect form web for “Разница между владельцем / корнем и RUID / EUID”

    Вот ответы:

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

       -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin 

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

    2. RUID – это настоящий идентификатор пользователя, и он никогда (почти) не меняется. Если пользователь2 входит в систему, оболочка запускается с его реальным идентификатором, установленным на 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 .

    Linux и Unix - лучшая ОС в мире.