Назначение владельца файла командой chown.

•11 Май, 2007 • Добавить комментарий

Проблема

Требуется сменить владельца файла или каталога. Возможно, вы скопировали какой-нибудь файл в другой каталог, но не можете отредактировать его без смены владельца. Многие проблемы в Linux возникают из-за неправильно заданных раз решений или права принадлежности. В таких случаях сообщения вида «Permission denied» и «File is read-only» появляются там, где их быть не должно.

Решение

Воспользуйтесь командой chown и смените владельца и/или группу, которой принадлежит файл:

#chown пользователь файл
# chown пользователь:группа файл
# chown :группа файл

Пример:

$ chown -v carlas:share index.txt
changed  ownership of ‘index.txt’ to carlas:share
$ chown -v :share toc.txt
changed ownership of ‘toc.txt’ to :share

Комментарий

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

Для справки (взято из man’a).

ОБЗОР

chown [опции] пользователь[:группа] файл…

ОПИСАНИЕ

chown изменяет владельца и/или группу для каждого заданного файла.

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

ОПЦИИ

-c, –changes
Подробно описывать действие для каждого файла, владелец которого действительно изменяется.
-f, –silent, –quiet
Не выдавать сообщения об ошибках для файлов, чей владелец не может быть изменен.
-h, –no-dereference
Работать с самими символьными ссылками, а не с файлами, на которые они указывают. Данная опция доступна только если имеется системный вызов lchown.
-v, –verbose
Подробное описание действия (или отсутствия действия) для каждого файла.
-R, –recursive
Рекурсивное изменение владельца каталогов и их содержимого.
–dereference
Изменяет владельца файла, на который указывает символьная ссылка, вместо самой символьной ссылки.
–reference=rfile
Изменяет владельца файла на того, который является владельцем rfile.
–help
Выдать подсказку на стандартный вывод и успешно завершиться.
–version
Выдать информацию о версии на стандартный вывод и успешно завершиться.

Служит для обозначения конца списка опций.

Д. Лукас снимет еще две серии «Звездных войн».

•10 Май, 2007 • Добавить комментарий

Источник. 

Джордж Лукас намерен снять еще две серии своей знаменитой саги «Звездные войны». Об этом сам режиссер сообщил в программе телеканала Fox News.

По его утверждению, в новых фильмах не будет места для семейства Скайуокеров, а их главными действующими лицами станут другие герои, некоторые из которых фигурировали в оригинальных полнометражных картинах.

Фильмы будут сняты для показа на телевидении, но Лукас пока не знает, какому именно каналу он доверит свое новое творение.

Режиссер также признался, что уже посмотрел все грядущие блокбастеры весенне-летнего сезона, поскольку его компания Industrial Light and Magic создавала спецэффекты к большинству из них.

По мнению Лукаса, новый рекордсмен – «Человек-паук. Враг в отражении» является образчиком глупости. «Совершенно пустой фильм. Если разобрать его по частям, никакого сюжета не останется», – посетовал режиссер.

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

CHMOD. Настройка разрешений в символьном формате.

•10 Май, 2007 • Добавить комментарий

Проблема

Требуется установить некоторые биты разрешений, сохранив значения остальных битов. Числовые форматы chmod позволяют задавать только все биты разрешений одновременно.

Решение

Самым распространенным применением символических обозначений chmod является добавление бита исполнения в атрибуты файла без изменения остальных разрешений:

$ chmod +x сценарий

По умолчанию используется режим а (АН), поэтому данный пример разрешит исполнение сценария всем пользователям. Следующая команда устанавливает бит исполнения только для владельца файла:

$ chmod u+x сценарий

Также существует возможность сброса отдельных битов. Следующая команда лишает группу и прочих пользователей права исполнения:

$ chmod go-x сценарий

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

$ chmod +s /общий-каталог

Сброс всех разрешений для группы и прочих пользователей:

$ chmod go= сценарий

Следующая команда предоставляет группе те же разрешения, которыми обладает владелец файла:

$ chmod g=u сценарий

Комментарий

Символическая запись chmod порой бывает довольно сложной. Следующий пример стирает все существующие разрешения и приводит их в исходное состояние:

$ chmod -v a=,u=rwx,g=rx,o=r сценарий

То же самое можно сделать командой chmod 754. Символическая форма записи также называется мнемонической:

r — чтение (Read);
w — запись (Write);
х — исполнение (Execute);
X — файл должен уже обладать разрешениям исполнения или быть каталогом;
s —назначение идентификатора пользователя или группы при исполнении — опасно! Не используйте с исполняемыми файлами (по крайней мере, если вы не до конца представляете, что делаете);
t — бит закрепления;
u — владелец файла;
g — группа, которой принадлежит файл;
o — прочие пользователи;
+ — добавление новых разрешений к действующим;
= — замена действующих разрешений;
- — сброс разрешений

CHMOD. Выполнение массовых операций.

•9 Май, 2007 • Добавить комментарий

Проблема

Требуется задать разрешения для всех файлов в каталоге или для группы файлов.

Решение

Команда chmod поддерживает операции со списками файлов. Для построения списков можно воспользоваться командой find или метасимволами командного процессора.

Следующая команда делает несколько файлов доступными только для чтения для всех пользователей:

$ chmod 444 file.txt file2.txt file3.txt

Чтобы сделать все файлы текущего каталога доступными для чтения/записи для владельца и группы, но без изменения разрешений самого каталога, воспользуйтесь командой:

$ find . -type f -exec chmod -v 660 {} \:

Назначение разрешений для каталога и всего содержимого, включая подкаталоги:

$ chmod -R -v 755 /shared

В следующем примере чтение/запись всех файлов с расширением .txt в текущем каталоге разрешается владельцу, а всем остальным разрешается только чтение:

$ chmod -v 644 *.txt

Изменение всех файлов текущего каталога, начинающихся с определенного префикса:

$ chmod -v 644 apt *