Команда Chown в Linux

Если вы когда-нибудь сталкивались с ОС Linux, вы наверняка слышали слово «терминал». Новички обычно воспринимают терминал как что-то страшное и зловещее. Но не все так страшно.

CHOWN

Chown — от английского change own. И так, как вы знаете в Linux есть пользователи и группы. У каждого пользователя есть свои файлы, созданные или загруженные. Каждый пользователь находится в собственной группе и может быть объеден c другими пользователями в другие группы.

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

Если вы хотите поменять или сменить владельца (пользователя) файла тогда вам поможет команда:

Sudo chown userName

В данном примере мы присвоили файл пользователю userName.

Если вы хотите поменять только группу, то можно воспользоваться командой chgrp:

Sudo chgrp groupName

Для того чтобы не вводить 2 разные команды делают так:

Sudo chown userName:groupName

Вначале указывается владелец файла, а после группа:

sudo chown имя_владельца : имя_группы

Если вам нужно поменять в директории владельца и группу, а там множество файлов и папок тогда используйте ключ -R:

Sudo chown -R userName:groupName /var/www/site/

Управление учётными записями

Как уже ранее отмечалось, для управления пользователями в Linux-системах существуют наборы специализированных утилит для добавления, редактирования и удаления учётных записей (пользователей) — useradd, usermod и userdel. Они выполняют предписанный порядок действий для достижения конечной цели — например, в случае с добавлением нового пользователя, команда useradd производит, соответственно, весь вышеописанный «комплекс мероприятий». Каждую из этих утилит можно гибко настроить с помощью конфигурационных файлов, чем, кстати, очень активно пользуются разработчики дистрибутивов Linux. Ведь в разных Linux-системах работа этих утилит незначительно, но отличается, хотя утилиты, по сути, идентичные. Ниже приводится таблица, показывающая команды и файлы конфигурации для управления пользователями для некоторых систем на примере утилиты useradd:

Система Команды Файлы конфигурации Комментарий
Ubuntu useradd /etc/
adduser /etc/default/useradd Perl-версия
/etc/
SUSE useradd /etc/
/etc/default/useradd
/etc/default/passwd
/usr/sbin/ Локальные настройки
/usr/sbin/ Локальные настройки
/usr/sbin/ Локальные настройки
/usr/sbin/ Локальные настройки
Red Hat useradd /etc/
/etc/default/useradd
Solaris useradd /etc/default/{login,passwd)
/etc/security/

Синтаксис Chmod для папок и файлов

Давайте сначала разберемся в сути вопроса с Chmod, чтобы понимать, что именно и каким образом мы настраиваем. Итак приступим. Права доступа разделяются на Chmod к файлам и Chmod к директориям. Обозначаются они одинаково, но означают немного разное.

Права доступа (Chmod) к файлам подразделяются на:

  • r — право на чтение данных.
  • w — право на изменение содержимого (запись – только изменение содержимого, но не удаление).
  • x — право на исполнение файла.

Остановимся чуть подробнее на праве исполнения файла. Дело в том, что в linux (Unix), любой файл может быть исполнен. Является ли он исполнительным — определяется не по его расширению (понятие расширение отсутствует в файловой системе Unix), а по правам доступа Chmod. Если у какого-либо файла установлено право “X” (chmod x), то это означает, что его можно запустить на выполнение.

Теперь о правах доступа (Chmod) к папке (директории):

  • r — право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней)
  • w — право на изменение содержимого директории (можно создавать и удалять объекты в этой директории, причем если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат)
  • x — право, которое позволяет вам войти в директорию (это право всегда проверяется в первую очередь, и даже если вы имеете все нужные права на объект, который закопан глубоко в цепочке директорий, но не имеете права “X” для доступа хотя бы к одной директории на пути к этому файлу, то к нему вы так и не пробьетесь )

В системах linux (Unix) все эти права раздает главный администратор компьютера, доступ к которому он получает путем ввода пароля. И если большинство объектов будут иметь права доступа (Chmod) только для чтения, то вирусам на таком компьютере делать будет практически нечего, т.к. они не смогут себя туда ни записать, ни затем исполниться. Именно этого результата нам нужно добиться, выставляя права доступа (Chmod) на объекты нашего сайта.

Заключение, несколько советов

Мы рассмотрели основные команды Linux с примерами, надеемся, что они окажутся вам полезными. Напоследок приведем несколько советов по использованию терминала одной строкой.

Двойной символ & (амперсанд)

Предназначен для выполнения нескольких команд последовательно:

команда1 && команда2 && команда3

Вертикальная черта | (pipe)

Вводит результат первой команды в последующую. Например, следующая команда добавит таблицу процессов к команде поиска:

ps axu | grep имя_процесса

Стрелки вверх и вниз на клавиатуре

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

history — история

Если вы забыли, как вы выполнили действие пять дней назад, а вот оно снова потребовалось, выполните history, и терминал выведет на экран последнюю тысячу команд.

Новая вкладка bash

Не всегда удобно иметь несколько окон. Терминал, как браузер, дает возможность открыть несколько вкладок сочетанием клавиш Ctrl+Shift+T.

Копирование и вставка, прерывание команды

Пробовали ли вы копировать текст и вставлять в терминал? Пробовали Ctrl+C? Ctrl+C прервет выполнение текущей команды, например таблицы процессов, сбросит текст, введенный в строку. Скопировать текст из bash — Ctrl+Shift+C. Вставить текст в bash — Ctrl+Shift+V.

Сетевые команды и работа с удаленными компьютерами

ping — проверка связи с определенным адресом в сети. ping — проверка доступности сайта , также можно использовать IP-адрес: ping . Если ответа нет, то это не означает на 100%, что нет связи, иногда работу этой команды блокируют в сети.

traceroute — показывает маршрут прохождения трафика. Например: traceroute . Позволяет определить, на каком участке сети возникают проблемы.

telnet — подключение к удаленному компьютеру. Дает возможность выполнять команды на другом компьютере. В основном используется во внутренней сети, поскольку трафик не шифруется. Пример: telnet .

ssh — подключение к удаленному компьютеру по шифрованному каналу. ssh [email protected] — подключение к серверу пользователя alex. Для подключения через нестандартный порт используется ключ -p, например

ssh -p 12345 [email protected] — подключение к серверу пользователя root через порт 12345.

ftp — подключение к удаленному компьютеру по протоколу передачи файлов. ftp — подключение к серверу

sftp — команда аналогична ftp, но соединение происходит по шифрованному протоколу.

route -n — показывает таблицу маршрутизации.

ifconfig — информация о сетевых соединениях и их настройка.

hostname — отображает или изменяет сетевое имя компьютера.

whois сайт или IP-адрес — выводит информацию о домене, владельце доменного имени или IP-адреса, например whois или whois 8.8.8.8.

dig — выводит информацию о DNS, например dig . Можно обратиться к любому DNS-серверу, указав его следующим образом: dig @8.8.8.8 . Для получения информации с DNS-сервера можно также воспользоваться программами host и nslookup, указав после них доменное имя или IP-адрес, но эти утилиты имеют урезанную функциональность, по сравнению с dig.

wget — программа для загрузки файлов, страниц, сайтов из интернета. wget — загрузить главную страницу wget -r -l 10 -k — загрузит сайт полностью.

lynx, links, links2 (3 отдельные команды) — текстовые браузеры, позволяют просматривать сайты прямо из консоли.

Как изменить владельца и группу файла

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

Chown USER:GROUP FILE

Следующая команда изменит право собственности на файл с именем file1 на нового владельца с именем andreyex и группой users:

Chown andreyex:users file1

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

Chown andreyex: file1