Как работает липкий бит?

SUID

липкий бит применяется к исполняемым программам, помеченным системой для сохранения образа программы в памяти после завершения работы программы.

Но я не знаю, что он хранит в памяти. И как я могу их видеть, в этом случае?

112 голосов | спросил fluke-ng 14 J0000006Europe/Moscow 2013, 16:19:00

4 ответа


155

Это, наверное, одна из моих самых неприятных вещей, которые люди все время путают. Бит SUID /GUID и липкий бит - это две совершенно разные вещи.

Если вы выполните man chmod, вы можете прочитать о SUID и липких битах. справочная страница доступна здесь .

фон

Отрывок

  

Буквы rwxXst выбирают биты режима файла для затронутых пользователей: read   (r), write (w), выполнять (или искать каталоги) (x), выполнять только поиск   если файл является каталогом или уже имеет разрешение на выполнение для некоторых пользователей   (X), установить идентификатор пользователя или группы при выполнении (-ях) , флажке с ограниченным удалением или    липкий бит (t) .

SUID /GUID

То, что пытается сказать эта страница выше, заключается в том, что позиция, которую бит x принимает в rwxrwxrwx для пользователя восьмеричный (1-я группа rwx) и восьмеричная группа (2-я группа rwx), может принимать дополнительное состояние, x становится s. Когда это происходит, этот файл при выполнении (если это программа, а не только сценарий оболочки) будет выполняться с разрешениями владельца или группы файлов.

Итак, если файл принадлежит root, а бит SUID включен, программа запускается с правами root. Даже если вы выполняете его как обычный пользователь. То же самое относится к бит GUID.

Отрывок

  

УСТАНОВКИ И НАСТРОЙКИ НАСТРОЙКИ

  chmod clears the set-group-ID bit of a regular file if the file's group ID 
  does not match the user's effective  group  ID or  one  of  the user's 
  supplementary group IDs, unless the user has appropriate privileges.
  Additional restrictions may cause the set-user-ID and set-group-ID bits
  of MODE or RFILE to be ignored.  This behavior  depends  on  the  policy
  and functionality of the underlying chmod system call.  When in doubt,
  check the underlying system behavior.

  chmod  preserves a directory's set-user-ID and set-group-ID bits unless 
  you explicitly specify otherwise.  You can set or clear the bits with 
  symbolic modes like u+s and g-s, and you can set (but not clear) the bits
  with a numeric mode.

Примеры SUID /GUID

нет suid /guid - установлены только биты rwxr-xr-x .

$ ls -lt b.pl
-rwxr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid & исполняемый бит пользователя (строчные буквы s) - установлены биты rwsr-x-r-x .

$ chmod u+s b.pl 
$ ls -lt b.pl 
-rwsr-xr-x 1 root root 179 Jan  9 01:01 b.pl

suid enabled & исполняемый бит отключен (верхний регистр S) - установлены биты rwSr-xr-x .

$ chmod u-x b.pl
$ ls -lt b.pl 
-rwSr-xr-x 1 root root 179 Jan  9 01:01 b.pl

guid & бит исполняемого файла группы (строчные буквы s) - установлены биты rwxr-sr-x .

$ chmod g+s b.pl
$  ls -lt b.pl 
-rwxr-sr-x 1 root root 179 Jan  9 01:01 b.pl

guid enabled & исполняемый бит отключен (верхний регистр S) - установлены биты rwxr-Sr-x .

$ chmod g-x b.pl
$  ls -lt b.pl 
-rwxr-Sr-x 1 root root 179 Jan  9 01:01 b.pl

липкий бит

Липкий бит, с другой стороны, обозначается как t, например, с каталогом /tmp:

$ ls -l /|grep tmp
drwxrwxrwt. 168 root root 28672 Jun 14 08:36 tmp

Этот бит всегда должен был называться «ограниченным удаляемым битом», учитывая, что это действительно означает. Когда этот бит режима включен, он создает каталог, так что пользователи могут удалять только файлы & каталоги в нем, что они являются владельцами.

Отрывок

  

ОГРАНИЧЕННЫЙ ФУНКЦИЯ УДАЛЕНИЯ ИЛИ СТИКЕТКИ

  The restricted deletion flag or sticky bit is a single bit, whose 
  interpretation depends on the file type.  For  directories,  it  
  prevents  unprivileged users from removing or renaming a file in the
  directory unless they own the file or the directory; this is called the 
  restricted deletion flag for the directory, and is commonly found on 
  world-writable  directories  like /tmp.  For regular files on some 
  older systems, the bit saves the program's text image on the swap 
  device so it will load more quickly when run; this is called the sticky
  bit.
ответил slm 14 J0000006Europe/Moscow 2013, 16:58:56
8
  

"Липкий бит, применяемый к исполняемым программам, помеченным системой   сохранить изображение программы в памяти после завершения программы   работает ".

Я думаю, что это довольно устаревшая информация, сегодня большинство современных Unixes игнорируют это. В Linux липкий бит применим только для каталогов. См. здесь и довольно информативный статью в Википедии .

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

ответил leonbloy 14 J0000006Europe/Moscow 2013, 16:34:09
2
  

Что такое липкие биты?

Липкий бит - это бит разрешения, который устанавливается в каталоге, который позволяет только владельцу файла внутри этого каталога или корневому пользователю удалять или переименовывать файл. У другого пользователя нет необходимых прав для удаления файла, созданного другим пользователем.

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

ответил chandrakumar.M 19 PMpSun, 19 Apr 2015 17:56:23 +030056Sunday 2015, 17:56:23
1

Вот хороший учебник с работами примеров и объяснений. Ключом к пониманию этого является задействованная восьмеричная система. Учебное пособие по Linux Sticky Bits с работающими примерами .

ответил CMP 5 PM00000070000002131 2017, 19:01:21

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132