ArhiChief писал(а):Как-то наткнулся на странное использование команды chmod
...
Собственно вопрос: что в данном случае изменяет данная команда?
Ничего странного:
Флаги прав любого файла, кроме триады rwx для каждого из: user, group, others, имеет ещё 3 битовых флага: setUID, setGID и "закрепляющий бит" ("бит прилипания"). Вот 3 группы rwx составляют 3 oct значения, а 3 общих для файла бита - ещё одно oct значение, но поскольку по умолчанию эти биты =0, то обычно они не показываются.
Слегка эти вопросы затрагиваются в рукописи
Инструменты Linux для Windows-программистов (а ещё куда лучше посмотреть сильно расширенную последнюю редакцию ... здесь же на форуме:
http://rus-linux.net/nlib.php?name=/MyL ... 06-09.html).
Вы можете всё это проверить и в деталях уточнить и сами:
1. Создаём обычный файл (в каком-то временном пустом каталоге):
Код: Выделить всё
bash-4.2$ touch f1
bash-4.2$ ls -lnHG
итого 0
-rw-rw-r--. 1 1000 0 окт. 12 13:01 f1
2. Установите все 3 дополнительных бита:
Код: Выделить всё
bash-4.2$ chmod 7666 f1
bash-4.2$ ls -lnHG
итого 0
-rwSrwSrwT. 1 1000 0 окт. 12 12:34 f1
Вот так это теперь поменялось.
3. А теперь смотрите этот файл в менеджере mc - F9 -> "Файл" -> "Права доступа":
- mc_051.png (104.24 КБ) 4243 просмотра
Наглядно?
4. Ещё у вас есть такая любопытная команда для этих дел:
Код: Выделить всё
bash-4.2$ stat -c%a f1
7666
bash-4.2$ stat f1
Файл: «f1»
Размер: 0 Блоков: 0 Блок В/В: 4096 пустой обычный файл
Устройство: 801h/2049d Inode: 792872 Ссылки: 1
Доступ: (7666/-rwSrwSrwT) Uid: ( 1000/ olej) Gid: ( 1000/ olej)
Контекст: unconfined_u:object_r:user_home_t:s0
Доступ: 2012-10-12 13:01:36.382763227 +0300
Модифицирован: 2012-10-12 13:01:36.382763227 +0300
Изменён: 2012-10-12 13:06:24.508282258 +0300
Создан: -
Модифицируя формат stat (1-я команда) вы можете смотреть всё что угодно, см.: