-
Set-User-ID и Set-Group-ID
Благодаря великолепной книге “Advanced Programming in the UNIX Environment” (W. Richard Stevens, Stephen A. Rago) я бы хотел рассказать о малоизвестных битах режима исполняемых файлов set-user-ID и set-group-ID.
-
MacOS Users Management
Современные операционные системы многопользовательские. И macOS не является исключение в этом плане. Даже если вы единственный пользователь своего MacBook или iMac и не создавали ни одного дополнительного персонажа, все равно есть еще другие предустановленные пользователи для системного обслуживания (root, daemon, nobody). Давайте попробуем разобраться, какие есть инструменты управления пользователями в яблочном саду.
-
Немножко о файлах в экосистеме Ruby
После обильной теории в “Современные операционные системы” Таненбаума, книга “Advanced Programming in the UNIX Environment” (W. Richard Stevens, Stephen A. Rago) является отличным практическим дополнением к ней. Глава 4 “Files and Directories” вдохновила меня порыться в стандартной библиотеке Ruby и написать пару незамысловатых скриптов, которые прочесывают файловую систему и аггрегируют сущности файловой системы по владельцу (UID, GID) или типу (обычный файл, символьная ссылка, канал и т.д.). В прикладных Ruby программах редко приходится идти далее всем известных
File.open
,File.read
,File.write
иFile.join
. Однако, если порыться глубже, то можно найти практически все аналоги POSIX библиотечных функций, которые описаны в книге. Так модульFile::Stat
предоставляет информацию о владельце, правах доступа, времени доступа/изменения данных/изменения атрибутов и д.р. МодульFileTest
позволяет проверить тип файла и всевозможные биты режима (setuid, setgid, sticky, readable, writable, executable). Настоящей находкой для меня оказались модулиFind
иEtc
, которые позволяют легко делать траверс иерархии директорий и запрашивать разного рода информацию из системных конфигурационных папок (/etc/passwd
,/etc/group
) соответственно. Также стоит упомянуть широкоизвестный классDir
, т.к. некоторые библиотечных функций C дря работы с директориями описанные в книге можно найти только здесь – создать/удалить директорию, узнать текущую директорию, сменить текущую директорию, вычитать все объекты заданной директории по шаблону и д.р. -
Rails Database Migration Cheatsheet
Все время забываю некоторые составные rake команды ActiveRecord мигратора баз данных, поэтому решил выписать шпаргалку:
-
Любопытная разница в работе DNS для docker-compose run и docker-compose up
В рамках перехода с Phantomjs на Headless Chrome (+ ChromeDriver) end-to-end тестирование текущего проекта и попутной докеризации мне пришлось немножко разобраться с тем, как Docker Compose чудесным образом позволяет ссылаться контейнерам друг на друга по доменным именам. Рассмотрим для примера конкретный
docker-compose.yml
файл конфигурации: