Sticky bit linux что это
Использование SETUID, SETGID и Sticky bit для расширенной настройки прав доступа в операционных системах Linux
1999 просмотров 3 2021-03-25 2021-03-30
В этой статье мы расскажем, как использовать специальные биты разрешений в операционных системах Linux.
Речь пойдет о трех битах – Setuid, Setgid и Sticky Bit. Это специальные типы разрешений позволяют задавать расширенные права доступа на файлы или каталоги.
Статья будет полезна пользователям и администраторам, которые уже знакомы с настройкой базовых прав в операционных системах Linux. Итак, давайте преступим.
Коротко о правах доступа в Linux
В операционных системах Linux используются 3 базовых права доступа – на чтение (read), запись (write) и исполнение (execute). Соответственно, права назначаются пользователю (user), группе (group) и всем остальным (world). Рассмотрим их символьные обозначения:
В случае числового обозначения прав доступа используются цифры от 0 до 7, где каждая цифра соответствует определенному набору прав доступа:
Настройка Setuid
Setuid – это бит разрешения, который позволяет пользователю запускать исполняемый файл с правами владельца этого файла. Другими словами, использование этого бита позволяет нам поднять привилегии пользователя в случае, если это необходимо. Классический пример использования этого бита в операционной системе это команда sudo.
Как мы видим на месте, где обычно установлен классический бит x (на исполнение), у нас выставлен специальный бит s. Это позволяет обычному пользователю системы выполнять команды с повышенными привилегиями без необходимости входа в систему как root, разумеется зная пароль пользователя root.
Установка бита setuid не представляет сложности. Для этого используется команда:
Как видим, файл не имеет разрешений на выполнение для пользователя, группы и остальных. Добавим бит setuid:
Обратим внимание, что вместо ожидаемой буквы «s», видим заглавную «S». Почему? Это случается, если setuid установлен, но сам владелец файла не имеет прав на его выполнение. Добавим это разрешение с помощью команды chmod u + x.
Настройка Setgid
Выполним команду chmod g + s и посмотрим результаты.
Как разобрались выше, меняем заглавную « S » путем выдачи прав на исполнение группе-владельцу:
Настройка Sticky Bit
Символ «t» указывает, что на папку установлен Sticky Bit.
Удаление специальных битов разрешений
Вывод
Мы разобрали что из себя представляют специальные биты разрешений Setuid, Setgid и Sticky bit в операционных системах Linux и как ими пользоваться на практике. Умение использовать эти биты позволит вам произвести более гибкую настройку прав доступа к ресурсам вашего сервера.
Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit
Главное меню » Linux » Специальные разрешения для файлов в Linux. SUID, GUID и Sticky Bit
Обычные права доступа к файлам
Помимо этих обычных разрешений, есть несколько специальных разрешений для файлов, и не многие пользователи Linux знают об этом.
Чтобы начать говорить о специальных разрешениях, мы собираемся предположить, что у вас есть некоторые знания об основных правах доступа к файлам. Если нет, пожалуйста, прочитайте наше превосходное руководство, объясняющее разрешение файла Linux.
Теперь мы покажем вам некоторые специальные разрешения с новыми буквами в файловой системе Linux.
В этом примере команда passwd, отвечающая за изменение пароля пользователя, имеет букву s в том же месте, которое мы ожидаем увидеть, x или – для прав пользователя. Важно отметить, что этот файл принадлежит пользователю root и корневой группе.
С этим разрешением вам не нужно предоставлять sudoдоступ конкретному пользователю, когда вы хотите, чтобы он запустил какой-либо корневой скрипт.
Что такое SUID?
Когда бит SUID установлен для исполняемого файла, это означает, что файл будет выполняться с теми же разрешениями, что и владелец исполняемого файла.
Давайте возьмем практический пример. Если вы посмотрите на двоичный исполняемый файл команды passwd, у него установлен бит SUID.
Это означает, что любой пользователь, выполняющий команду passwd, будет запускать ее с теми же правами, что и root.
В чем выгода? Команде passwd необходимо отредактировать файлы, такие как /etc/passwd, /etc/shadow, чтобы изменить пароль. Эти файлы принадлежат пользователю root и могут быть изменены только пользователем root. Но благодаря флагу setuid (бит SUID) обычный пользователь также сможет изменять эти файлы (принадлежащие пользователю root) и менять свой пароль.
По этой причине вы можете использовать команду passwd для изменения собственного пароля, несмотря на тот факт, что файлы, которые изменяет эта команда, принадлежат пользователю root.
🧟♀️ StickyBit, SUID и SGID в Linux с примерами
В этой статье мы расскажем о специальных разрешениях, которые работают с файлами и каталогами, которые называются Stickybit, SUID и SGID.
Sticky работает только для каталогов.
Если пользователь хочет создать или удалить файл / каталог в каком-либо каталоге, ему нужно разрешение на запись в этот каталог.
Разрешение на запись в каталог дает пользователю право создавать файл, а также право удалять его.
Каталог /tmp – это каталог для временных файлов / каталогов.
Этот каталог обладает всеми правами на всех трех уровнях, поскольку все пользователи должны создавать/удалять свои временные файлы.
Но так как пользователи имеют разрешение на запись в этот каталог, они могут удалить любой файл в этом каталоге.
Разрешения этого файла не влияют на удаление.
Но с установленным в каталоге стики битом любой может создать в нем файл / каталог, но может удалить только свои собственные файлы.
Файлы, принадлежащие другим пользователям, не могут быть удалены.
stickybit – Как просмотреть и установить
Вы можете заметить, что тег t добавлен в каталог /tmp, и это означает, что для этого каталога установлен бит.
В Linux стики бит может быть установлен командой chmod.
Примечание. В ОС Unix stickybit имеет другое назначение, но мы не обсуждаем его здесь.
Что такое SUID бит и как его установить
Когда исполняемый файл запускается, он запускается под управлением пользователя, который его выполнил.
Это означает, что когда пользователь student запускает команду ls, соответствующий процесс будет выполняться под управлением пользователя student.
Бит SUID, также известный как бит установки идентификатора пользователя, перезаписывает это поведение.
Если в программе установлен бит SUID, то эта программа будет работать как владелец этого файла, независимо от того, кто его выполняет.
У команды passwd в Linux установлен бит SUID.
Это можно увидеть в третьем поле прав доступа. ‘S’ вместо ‘x’ указывает, что установлен бит SUID.
С установленным битом SUID, когда обычный пользователь (скажем, student) запускает команду passwd, команда запускается с владельцем «root», а не с учетной записью student, поскольку root является владельцем этого файла.
Это необходимо, потому что пароли хранятся в файле /etc/shadow, который не имеет разрешения на групповом или другом уровне.
Вы должны понимать, что все пользователи не могут получить разрешение на чтение или запись этого файла по соображениям безопасности; в противном случае они будут читать / изменять пароли других пользователей.
Таким образом, это вызывает проблему: если у пользователей нет прав доступа к этому файлу, как они будут изменять свои собственные пароли?
SUID немного решает проблему.
У команды passwd установлен бит SUID, поэтому, когда обычные пользователи выполняют эту команду, они запускают ее под владельцем root, то есть владельцем команды passwd.
Как установить и сбросить бит SUID
Следует отметить, что бит SUID работает только с файлами.
Чтобы установить бит SUID на файл, используйте команду chmod следующим образом
Числовой метод для изменения разрешений также может быть использован.
Предположим, что если обычные разрешения для файла равны 744, то с установленным битом SUID они станут 4744.
Бит SUID имеет значение 4.
Как SGID Bit работает с файлами и каталогоми
В отличие от бита SUID, бит SGID работает как с файлами, так и с каталогами, но в обоих случаях он имеет различное значение.
По файлам:
Для файла он имеет значение, аналогичное значению бита SUID, то есть когда любой пользователь выполняет файл с установленным битом SGID, он всегда будет выполняться с владельцем группы этого файла, независимо от того, кто его запускает.
Например, файл /sbin/netreport имеет установленный бит SGID, который можно увидеть в «s» вместо «x» в разрешениях группы.
Этот файл имеет групповое владение группой root.
Таким образом, когда пользователь (скажем, student) выполняет его, соответствующий процесс не будет принадлежать группе student, а будет принадлежать группе root.
По каталогам:
Теперь поговорим о SGID в каталогах.
SGID для каталогов используется для создания совместных каталогов.
Чтобы понять бит SGID для каталогов, рассмотрим следующий сценарий:
Предположим, что три пользователя Джек, Джонс и Дженни вместе работают над каким-то проектом.
Все они принадлежат к группе под названием javaproject.
Для выполнения проекта им необходимо предоставить общий доступ ко всем файлам, связанным с проектом.
Все они должны видеть файлы друг друга.
Это можно сделать, просто предоставив разрешение на чтение на уровне группы.
Далее, предположим, что каталогом, используемым для проекта, является “/javaproject”.
Здесь возникает проблема: когда файл создается, он принадлежит к основной группе пользователя, создавшего файл.
Таким образом, когда разные пользователи создают свои файлы в этом каталоге, эти файлы не будут принадлежать группе javaproject group.
Что мы делаем для решения нашей проблемы, так это то, что мы устанавливаем группу каталога /javaproject равной группе javaproject, и устанавливаем бит SGID.
Когда в каталоге установлен бит SGID, все файлы и каталоги, созданные в нем, имеют групповое владение группой, связанной с этим каталогом.
Это означает, что после установки бита SGID в каталоге /javaproject все файлы и каталоги, создаваемые в этом каталоге, будут принадлежать группе «javaproject».
Более того, это поведение является рекурсивным, то есть в каталогах, созданных в этом каталоге, также будет установлен бит SGID.
Права у нового каталога также будут такими же, как и у каталога /javaproject.
Бит SGID может быть установлен командой chmod следующим образом:
Теперь, когда пользователь jones создает файл в этом каталоге, он создается под владельцем группы javaproject.
Числовое значение, соответствующее биту SGID, равно 2. Поэтому, чтобы численно добавить бит SGID, используйте следующую команду:
Рассматриваем вопрос прав доступа более подробно
Оригинал: Gettin’ Sticky with It
Автор: Shawn Powers
Дата публикации: 11 июня 2015 г.
Перевод: А.Панин
Дата перевода: 2 августа 2015 г.
Рассматриваем вопрос прав доступа более подробно
В номере журнала за прошлый месяц я рассказывал о механизме прав доступа к элементам файловой системы в Linux (Обратитесь к статье «It’s Better to Ask Forgiveness. » в разделе UpFront за май 2015 года, см. перевод на нашем сайте). Я мог бы рассказать о битах SUID, GUID и sticky в той же статье, но мне показалось, что в этом случае информации было бы слишком много для одного материала. Исходя из этого, в данной статье я буду описывать специальные типы прав доступа к элементам файловой системы в Linux. Ввиду того, что механизм стандартных прав доступа является интуитивно понятным, механизм специальных прав доступа может показаться на первый взгляд не имеющим особого смысла. Но после того, как вы узнаете о предназначении данного механизма, вы поймете, что он является не настолько запутанным, как кажется.
Но ведь больше нет места для дополнительных значений прав доступа!
В процессе изучения методики установки битов чтения, записи и исполнения для файлов и директорий вы, скорее всего, обратили внимание на то, что были задействованы все доступные «ячейки» для вывода битов прав доступа. Следовательно, при манипуляции специальными правами доступа к элементам файловой системы, вы в каком-то смысле повторно используете существующие биты прав доступа. Они используются аналогично любым другим атрибутам доступа к файлам, но отображаются немного по-другому.
Каждая из секций строки прав доступа к элементам файловой системы (для пользователя, группы пользователей и других пользователей) имеет дополнительные биты «специальных» прав доступа, значения которых устанавливаются по аналогии со значениями битов rwx. Указание на состояние этих битов выводится в рамках части строки, выделенной для вывода состояния битов исполнения. Например:
Если установлен бит sticky, при выводе бита исполнения в секции прав доступа других пользователей будет использован символ t вместо x.
Еще не запутались? Ниже приведено несколько примеров:
Обратите внимание на то, что в последнем примере используется символ S в верхнем регистре. Это сделано для указания на тот факт, что необходимый бит исполнения не установлен. В том случае, если для указания на установку бита SUID используется символ в нижнем регистре, можно сделать вывод о том, что необходимый бит исполнения установлен. Если же используется символ в верхнем регистре, бит SUID установлен, но необходимый бит исполнения не установлен.
Для чего предназначены эти биты?
В отличие от стандартных прав доступа, специальные права доступа изменяют методы использования файлов и директорий, а не ограничивают доступ к ним. Также они используются по-разному в зависимости от того, устанавливаете ли вы их для файлов или директорий. Давайте рассмотрим их.
Установка бита SUID для директорий не приводит к какому-либо эффекту.
GUID: при установке бита GUID для исполняемых файлов будет достигаться такой же эффект, как и в случае установки бита SUID, за тем исключением, что вместо прав доступа пользователя, владеющего файлом, в процессе исполнения файла устанавливаются права доступа группы пользователей, владеющей файлом. Данный бит не используется достаточно часто, но в некоторых многопользовательских окружениях его установка может оказаться желательной.
Бит GUID используется главным образом по отношению к директориям. В том случае, если для директории устанавливается бит GUID, создаваемые в директории файлы наследуют идентификатор группы пользователей, владеющей директорией. Данный механизм очень полезен в случае работы группы пользователей с файлами из одной и той же директории. В обычных условиях при создании файла используется основной идентификатор группы пользователя. В рамках директории с установленным битом GUID пользователь все так же будет являться владельцем файла, но принадлежность к группе пользователей устанавливается автоматически на уровне системы, следовательно, все другие пользователи из данной группы также будут иметь доступ к созданному файлу.
Бит sticky: в первую очередь я хотел бы сказать о том, что я даже не представляю, по какой причине бит sticky обозначается с помощью символа t, а не символа s. Я искал информацию об этом во многих источниках и спрашивал многих специалистов. Оказалось, что никто не знает об этом. Возможно, кто-то из читателей журнала Linux Journal знает ответ на данный вопрос и может просветить меня. (В том случае, если я получу сообщение с ответом на данный вопрос, я приведу его текст в рубрике «Письма редактору»). В любом случае, бит sticky является специальным битом доступа, который устанавливается для директорий. Фактически, он не оказывает какого-либо воздействия в случае установки для файла.
Установка специальных прав доступа к элементам файловой системы
Установка специальных прав доступа для файла или директории осуществляется таким же образом, как и установка обычных прав доступа. Вы можете использовать утилиту chmod, к примеру, следующим образом:
Специальные права доступа также могут устанавливаться вместе с обычными правами доступа, следовательно, аналогичные команды являются полностью корректными:
И как и в случае со стандартными правами доступа, имеется возможность (использование которой является предпочтительным) установки специальных прав доступа с использованием восьмеричной нотации. Для этого используется четвертое поле. При установке прав доступа аналогичным образом:
также присутствует четвертое поле, которое не используется и считается, что его значение равно нулю. Следовательно, данная команда полностью аналогична следующей команде:
Поле с нулевым значением, расположенное перед полями с значениями стандартных прав доступа, используется для установки специальных прав доступа. В том случае, если вы отбрасываете данное поле, его значение считается равным нулю и специальные права доступа не устанавливаются. Однако, в том случае, если вы знаете о его существовании, вам будет проще понять методику его использования. Если вы читали упомянутую статью о правах доступа к элементам файловой системы из выпуска журнала за предыдущий месяц, вы наверняка обратили внимание на раздел с описанием методики использования восьмеричной нотации, информацию из которого можно с легкостью применить и к специальным правам доступа. На Рисунке 1 показано распределение значений между битами специальных прав доступа.
Рисунок 1. Восьмеричная нотация
Таким образом, для установки прав доступа для чтения/записи содержимого директории пользователем вместе с битом GUID вы можете использовать следующую команду:
Как и при установке стандартных прав доступа к элементам файловой системы, в случае необходимости установки нескольких битов специальных прав доступа, вы можете просто складывать соответствующие значения. К примеру, для установки битов SUID и sticky вы должны будете использовать значение 5 четвертого восьмеричного поля. Обычно для определенного файла или директории устанавливается лишь один бит специальных прав доступа, но благодаря возможности использования восьмеричной нотации вы можете устанавливать их в любом кажущемся вам подходящем сочетании.
Основы Linux от основателя Gentoo. Часть 3 (2/4): Модель прав доступа
Навигация по основам Linux от основателя Gentoo:
Часть I:
Часть II:
Часть III
Модель прав доступа в Linux
Один пользователь, одна группа
‘d’ директория
‘l’ символическая ссылка
‘c’ устройство символьного ввода-вывода
‘b’ устройство блочного ввода-вывода
‘p’ FIFO
‘s’ сокет
Три тройки
«rwx»
«r-x»
«r-x»
Выше r означает, что чтение (просмотр данных содержащихся в файле) разрешено, w означает запись ( изменение, а также удаление данных) разрешено и x означает исполнение (запуск программы разрешен). Собрав все воедино мы видим, что кому угодно разрешено читать содержимое и исполнять этот файл, но только владельцу (root) разрешено как либо модифицировать этот файл. Так что если нормальным пользователям разрешено копировать содержимое этого файла, то только root может изменять или удалять его.
Кто я?
Перед тем, как мы узнаем как изменить владельца или группу которой принадлежит файл, давайте сперва рассмотрим, как узнать вашего текущего пользователя и группу к которой вы принадлежите. Если вы не использовали команду su недавно, ваш текущий пользователь это тот, которым вы вошли в систему. Если вы часто используете su, вы можете не помнить пользователя под которым вы работаете в данный момент. Чтобы узнать под каким пользователем вы работаете, наберите whoami:
В каких группах я состою?
Чтобы увидеть к каким группам вы принадлежите используйте команду groups:
$ groups
drobbins wheel audio
Из этого примера видно, что я состою в группах drobbins, wheel, и audio. Если вы хотите посмотреть, в каких группах состоит другой пользователь, то передайте его имя в качестве аргумента.
$ groups root daemon
root : root bin daemon sys adm disk wheel floppy dialout tape video
daemon : daemon bin adm
Изменение пользователя и группы владельца
Чтобы изменить владельца или группу файла (или другого объекта) используется команды chown или chgrp соответственно. Сначала нужно передать имя группы или владельца, а потом список файлов.
# chown root /etc/passwd
# chgrp wheel /etc/passwd
Вы также можете изменить пользователя и группу одновременно используя команду chown в другой форме:
# chown root:wheel /etc/passwd
Вы не можете использовать команду chown без прав суперпользователя, но chgrp может быть использована всеми, чтобы изменить группу-владельца файла на ту группу, к которой они принадлежат.
Рекурсивное изменение прав
Знакомство с chmod
$ chmod +x scriptfile.sh
В примере выше в качестве метода указано +x. Как можно догадаться, метод +x указывает chmod, что файл необходимо сделать исполняемым для пользователя, группы и для всех остальных. Если мы решим отнять все права на исполнение файла, то сделаем вот так:
Разделение между пользователем, группой и всеми остальными
До сих пор, наши примеры команды chmod влияли на права доступа всех трех наборов прав доступа — пользователя, группы и всех остальных пользователей. Часто бывает удобно изменить только один или два набора за раз. Чтобы сделать это, просто используйте специальный символ для обозначения набора прав доступа, который вам необходимо изменить, со знаком + или — перед ним. Используйте u для пользователя, g для группы и o для остальных пользователей.
$ chmod go-w scriptfile.sh
Мы только что удалили право на запись для группы и всех остальных пользователей, но оставили права владельца нетронутыми.
Сброс разрешений
Помимо переключения бит, отвечающих за права доступа, в состояние вкл/выкл, мы можем задать конкретные значения для всех сразу. Используя оператор равенства мы можем указать chmod, что хотим задать только указанные права доступа:
$ chmod =rx scriptfile.sh
Этой командой мы установили все биты чтения и исполнения и сбросили все биты записи. Если вы хотите задать значения конкретной тройки бит, то можете сделать это, указав ее символьное наименование перед оператором равенства:
$ chmod u=rx scriptfile.sh
Числовые режимы
До сих пор, мы использовали то что называется символическим способом указания прав доступа для команды chmod. Однако есть еще один достаточно распространенный способ указания прав: использование четырехзначных восьмеричных чисел. Этот синтаксис, называется числовым синтаксисом прав доступа, где каждая цифра представляет тройку разрешений. Например, в 1777, 777 устанавливают флаги о которых мы говорим в этом разделе, для владельца, группы, и остальных пользователей. 1 используется для указания специального бита прав доступа, который мы рассмотрим позже (смотрите «Неуловимая первая цифра» в конце раздела). Эта таблица показывает как транслируются права доступа на числовые значения.
Числовой синтаксис прав доступа
Числовой синтаксис прав доступа особенно полезен когда требуется указать все разрешения для файла, как показано в следующем примере:
umask
Когда процесс создает новый файл, он указывает, какие права доступа нужно задать для данного файла. Зачастую запрашиваются права 0666 (чтение и запись всеми), что дает больше разрешений, чем необходимо в большинстве случаев. К счастью, каждый раз, когда в Linux создается новый файл, система обращается к параметру, называемому umask. Система использует значение umask чтобы понизить изначально задаваемые разрешения на что-то более разумное и безопасное. Вы можете просмотреть текущие настройки umask набрав umask в командной строке:
В Linux-системах значением по умолчанию для umask является 0022, что позволяет другим читать ваши новые файлы (если они могут до них добраться), но не изменять их. Чтобы автоматически обеспечивать больший уровень защищенности для создаваемых файлов, можно изменить настройки umask:
Такое значение umask приведет к тому, что группа и прочие не будут иметь совершенно никаких прав доступа для всех, вновь созданных файлов. Итак, как работает umask? В отличие от «обычного» назначения прав доступа к файлу, umask задает какие права доступа должны быть отключены. Снова посмотрим на таблицу соответствия значений чисел и методов:
Знакомство с suid и sgid
В момент вашего входа в систему запускается новый процесс оболочки. Вы уже знаете об этом, но можете не знать о том, что этот новый процесс оболочки (обычно это bash) работает от имени вашего пользователя. И таким образом программа bash может обращаться ко всем файлам и директориям, владельцем которых вы являетесь. В действительности мы, как пользователи, полностью зависим от программ, выполняющих операции от нашего имени. И поскольку программы, которые вы запускаете, наследуют ваш пользовательский идентификатор, они не могут обращаться объектам файловой системы, к которым вам не предоставлен доступ. К примеру, обычные пользователи не могут напрямую изменять содержимое файла passwd потому что флаг записи отключен для всех пользователей кроме root:
Однако, обычным пользователям тоже нужно иметь возможность хотя бы опосредованно менять содержимое /etc/passwd когда им понадобится сменить пароль. Но если пользователь не может изменить этот файл, как это сделать?
К счастью, в модели прав доступа Linux имеются два специальных бита, называемых suid и sgid. Когда для запускаемой программы установлен бит suid, она будет работать от имени владельца исполняемого файла, а не от имени того, кто запустил программу. Теперь можем вернуться к вопросу с /etc/passwd. Если посмотрим на исполняемый файл passwd, увидим, что его владельцем является пользователь root:
Обратите внимание, что вместо x в триплете прав доступа владельца стоит s. Это означает что для этой конкретной программы установлены биты suid и права на запуск. По этой причине при запуске программы passwd она будет работать от имени пользователя root (со всеми правами доступа суперпользователя), а не пользователя, запустившего её. И поскольку passwd работает с правами суперпользователя, она способна редактировать /etc/passwd без каких либо сложностей.
Предупреждения о suid/sgid
Изменение suid и sgid
Способ установки и удаления битов suid и sgid чрезвычайно прост. Вот так мы задаем бит suid:
# chmod u+s /usr/bin/myapp
А в следующем примере мы снимаем флаг sgid с директории. Вы увидите, как бит sgid работает с директориями немного ниже:
# chmod g-s /home/drobbins
Права и директории
До текущего момента мы рассматривали права доступа с точки зрения обычных файлов. Когда речь заходит о директориях, появляются некоторые отличия. Директории используют те же флаги прав доступа, но их интерпретация имеет немного другой смысл.
Если для директории задан флаг чтения, то вы можете просматривать список содержимого директории; флаг записи означает, что вы можете создавать файлы в директории; и флаг исполнения означает, что вы можете войти в директорию и обращаться ко всем поддиректориям внутри. Без флага исполнения у вас не будет доступа к объектам файловой системы внутри директории. Без флага чтения объекты файловой системы внутри директории нельзя просмотреть, но к объектам внутри директории все еще можно обратиться, если вы знаете полный путь к объекту на диске.
Директории и флаг sgid
В случае же, если для директории установлен бит sgid, все объекты файловой системы, создаваемые внутри, наследуют группу директории. Эта возможность бывает кстати, когда вам необходимо создать дерево директорий и все они должны принадлежать одной группе. Это можно сделать вот так:
# mkdir /home/groupspace
# chgrp mygroup /home/groupspace
# chmod g+s /home/groupspace
Теперь любые пользователи группы mygroup могут создавать файлы и директории внутри /home/groupspace и им также будет автоматически задана принадлежность группе mygroup. В зависимости от настроек umask для данного пользователя новые объекты файловой системы могут быть или не быть читаемыми, изменяемыми или исполняемыми другими пользователями группы mygroup.
Директории и удаление
По умолчанию директории в Linux ведут себя не самым удобным во многих ситуациях образом. Обычно кто угодно может переименовать или удалить файл внутри директории если у них есть права на запись в этой директории. Для директорий, которыми владеют отдельные пользователи, такое поведение обычно не вызывает проблем.
Хорошая новость в том, что в Linux существует так называемый sticky бит. Когда для /tmp установлен sticky бит (командой chmod +t), единственные, кто могут удалить или переименовать файлы в /tmp — это либо владельцы этих файлов либо суперпользователь.
Неуловимый первый знак
В завершение этого раздела мы наконец обратим внимание на первый знак, используемый в численном синтаксисе. Он используется для задания битов sticky, suid и sgid:
Ниже приведен пример того, как использовать 4-значный режим для установки прав доступа на директорию, которая будет использоваться рабочей группой:
# chmod 1775 /home/groupfiles
В качестве домашней работы выясните что значит 1755 в настройках прав доступа. 🙂
Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. Отдельная благодарность Алексею Блажко (blazhkoa@gmail.com), а также инициатору всей серии переводов, VBart.
Об авторах
Daniel Robbins 
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.