Что означает GID?

find /tmp/backup/ -name "*.php" | xargs -I % cp % /home/mysite/public_html
14
07.06.2016, 12:30
3 ответа

Каждый процесс в подобной UNIX системе, точно так же, как каждый файл, имеет владельца (пользователь, или настоящий или система "псевдопользователь", такой как daemon, bin, man, и т.д.) и владелец группы. Владелец группы для файлов пользователя обычно, что основная группа пользователя, и подобным способом, любые процессы Вы запуск обычно принадлежит Вашему идентификатору пользователя и Вашему идентификатору основной группы.

Иногда, тем не менее, необходимо поднять полномочия выполнить определенные команды, но не желательно дать полные административные права. Например, passwd управляйте доступом потребностей к теневому файлу паролей системы, так, чтобы он мог обновить Ваш пароль. Очевидно, Вы не хотите давать каждому пользователю полномочия пользователя root, именно так они могут изменить свой пароль - который, несомненно, привел бы к хаосу! Вместо этого там должен иначе временно предоставить поднятые полномочия пользователям выполнить определенные задачи. Для именно это SETUID и биты SETGID. Это - способ сказать ядру временно повышать полномочия пользователя на время выполнения отмеченной команды. Двоичный файл SETUID будет выполняться с полномочиями владельца исполняемого файла (обычно root), и двоичный файл SETGID будет выполняться с полномочиями группы владельца группы исполняемого файла. В случае passwd команда, которая принадлежит root и SETUID, он позволяет обычным пользователям непосредственно влиять на содержание файла паролей, управляемым и предсказуемым способом, путем выполнения с полномочиями пользователя root. Существуют многочисленный другие SETUID команды в подобных UNIX системах (chsh, screen, ping, su, и т.д.), все из которых требуют поднятых полномочий работать правильно. Существуют также некоторые SETGID программы, где ядро временно изменяет GID процесса, для предоставления доступа к файлам журнала, и т.д. sendmail такая утилита.

sticky bit служит немного отличающейся цели. Его наиболее популярный способ использования должен гарантировать, что только учетная запись пользователя, которая создала файл, может удалить его. Думайте о /tmp каталог. Это имеет очень либеральные полномочия, которые позволяют любому создавать файлы там. Это хорошо, и позволяет процессам пользователей создавать временные файлы (screen, ssh, и т.д. храните информацию состояния в /tmp). Защищать временные файлы пользователя, /tmp имеет липкий набор битов, так, чтобы только я мог удалить свои файлы, и только можно удалить Ваши. Конечно, корень может сделать что-либо, но мы должны надеяться, что системный администратор не нарушен!

Для нормальных файлов (то есть, для неисполняемых файлов), существует мало точки в установке битов SETUID/SETGID. SETGID на каталогах в некоторых системах управляет владельцем группы по умолчанию для новых файлов, созданных в том каталоге.

27
27.01.2020, 19:50
  • 1
    , спасибо за это. Поэтому, Липкий Бит похож на персональное (пользователь) разрешение? Тот ответ был хорошо сформулирован и понятен. спасибо –  Kevdog777 23.07.2012, 14:01
  • 2
    ! Липкий бит обеспечивает немного защиты для файлов в каталоге с либеральными полномочиями. Это не действительно характерно для данного пользователя, поскольку тот же уровень защиты предоставляется всем файлам, неважно, кто владелец. Это - способ позволить любому создавать файлы и удостоверяться, что только владелец может уничтожить их. –  D_Bye 23.07.2012, 14:11
  • 3
    +1, D_bye, мог Вы совместно использовать пример для setgid набора битов на каталоге. Спасибо –  Ankit 10.05.2013, 17:14
  • 4
    @Ankit В соответствии с Солярисом (и почти наверняка другие - я только использую *BSD и Солярис, хотя), если setgid укусил, установлен на каталоге, любые новые файлы, созданные в соответствии с тем каталогом, будут иметь того же владельца группы как сам каталог и не наследуют основную группу (пользователь, работающий) процесс создания. –  D_Bye 20.05.2013, 16:08

Я думаю, что Вы имеете в виду бит "SGID" файла, который не является тем же как его GID.

Вот типичный файл на моем компьютере (вывод ls-l):

-rw-r----- 1 bristol    users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.

Если Вы смотрите на первые 10 символов,

(a)-: Это - просто простой файл (в противоположность каталогу, символьной ссылке, канал и т.д....)

(b) rw-: владелец может считать и записать этот файл, но не выполнить его. Владельцем является "Бристоль", как Вы видите позже в строке.

(c) r-: члены группы, этот файл принадлежит ("пользователи" в примере) кроме владельца, могут читать, но не записать или выполнить этот файл.

(d)---: Кто-либо еще не может получить доступ к этому файлу вообще (кроме корня, конечно).

Поле GID является тем, которое говорит Вам, которые группируются, этот файл принадлежит - в этом случае "пользователи".

Поле, которое Вы, вероятно, имели в виду, на основе Вашего описания, является SGID, укусил и здесь лучшее объяснение, чем я мог придумать:

http://www.codecoffee.com/tipsforlinux/articles/028.html

Короткая версия: если исполняемый файл имеет набор битов SGID, то любой, кто не находится в группе, но может выполнить этот файл временно, получает права этой группы, в то время как программа выполняется.

Например, если Вы сделали, чтобы группа "буферизовала", который может считать и записать файлы в каталоге спулера печати, Вы не хотите просто, чтобы любой смешал с этим каталогом, но Вы действительно хотите, чтобы они смогли распечатать файлы, можно сделать некоторую программу печати, или сценарий сделали, чтобы группа "буферизовала" и установила бит SGID и когда любой запускает эту программу, программа может теперь записать в каталог спулера без человека, выполняющего его получающий полный доступ.

3
27.01.2020, 19:50
  • 1
    , Которые хороши, спасибо за это. Я действительно понимаю часть полномочий, (abbbcccddd часть) - но thatnk Вы :) –  Kevdog777 23.07.2012, 13:56
  • 2
    я только что видел, что мои полномочия на tmp папке drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Что делает abbbcccddt средняя (буква 't')? - Я понимаю, что "d=directory", "rwx=read, пишут, выполнитесь"; но я никогда не видел 't' в конце прежде. То специальное разрешение для tmp папки? –  Kevdog777 24.07.2012, 18:31
  • 3
    , Маленький t является "исполняемым файлом (x) и липким набором битов". Посмотрите выше для объяснения того, почему это обычно на/tmp. –  Bristol 25.07.2012, 13:01

GID, поскольку Вы нашли, Идентификационный номер группы. Это - просто удобный путь к ОС для выражения (пользователь) группы, связанной с чем-то (процесс, файл, и т.д.); вместо идентификатора потенциально длинной строки это может быть выражено как число фиксированного размера.

В значении полномочий файла четырех восьмеричных цифр (например, 0755), третья цифра указывает полномочия группы в файл. При исключении первой цифры это - вторая цифра, которая указывает полномочия группы. Обратите внимание, что файлы и каталоги рассматривают то же в этом отношении, но что точное значение каждого бита полномочий несколько неинтуитивно в случае каталогов.

Эти два понятия связаны, но служат совсем другим целям.

Что касается Вашего вопроса "даже важно установить те полномочия?"; они всегда устанавливаются на что-то, но так как в большинстве случаев начальная цифра 0 ("ничто специальное"), это имеет тенденцию быть опущенным для краткости. Необходимо ли указать, что некоторое другое значение зависит полностью от шаблона использования для рассматриваемого файла или каталога.

3
27.01.2020, 19:50

Теги

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