Нет директории etc linux

Фундаментальные основы Linux. Часть II: Первые шаги в изучении интерфейса командной строки

Глава 6. Работа с директориями

В данной главе приводится краткий обзор большинства стандартных команд, используемых при работе с директориями: pwd , cd , ls , mkdir и rmdir . Эти команды доступны при работе с любой системой Linux (или Unix).

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

Команда pwd

Команда cd

приведет к аналогичному эффекту.

Для того, чтобы остаться в текущей директории, просто введите команду cd . 😉 Позднее мы все же познакомимся с практическим примером использования символа . , представляющего текущую директорию.

Абсолютные и относительные пути

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

Этот пример был последним примером, в котором используются команды pwd . С этого момента информация о текущей директории будет всегда выводиться в рамках приглашения командной оболочки. Далее в данной книге будут даны пояснения относительно того, как следует использовать переменную командной оболочки $PS1 для вывода описанной информации.

Завершение путей

Клавиша TAB может помочь избежать ошибок при вводе путей. Нажатие клавиши TAB после ввода части команды cd /et приведет к завершению команды до вида cd /etc/ . При этом нажатие клавиши TAB после ввода команды cd /Et не приведет ни к чему, так как была допущена ошибка при вводе части пути (использована буква E в верхнем регистре).

Вам придется нажимать меньше клавиш в случае использования клавиши TAB , к тому же, при использовании этой клавиши вы можете быть уверены в том, что введенный путь является корректным!

Утилита ls

Другим периодически используемым параметром утилиты ls является параметр -h . Он позволяет выводить числовые значения (соответствующие размерам файлов) в формате, лучше читаемом человеком. Также в примере ниже показаны варианты передачи параметров утилите ls . Позднее в данной книге будут даны подробные пояснения относительно выводимых данных.

Утилита mkdir

Команда mkdir -p

Утилита rmdir

Команда rmdir -p

Практическое задание: работа с директориями

1. Выведите путь к вашей текущей директории.

2. Перейдите в директорию /etc.

3. А теперь перейдите в вашу домашнюю директорию с помощью ровно трех нажатий клавиш.

4. Перейдите в директорию /boot/grub с помощью ровно одиннадцати нажатий клавиш.

5. Перейдите в родительскую директорию для текущей директории.

6. Перейдите в корневую директорию.

7. Выведите список содержимого корневой директории.

8. Выведите подробный список содержимого корневой директории.

9. Оставаясь в текущей рабочей директории, выведите список содержимого директории /etc.

10. Оставаясь в текущей директории, выведите список содержимого директорий /bin и /sbin.

11. Оставаясь в текущей директории, выведите список содержимого директории

12. Выведите список всех файлов (включая скрытые файлы), находящихся в вашей домашней директории.

13. Выведите список файлов, находящихся в директории /boot, с использованием формата величин для облегчения чтения человеком.

14. Создайте директорию testdir в вашей домашней директории.

Читайте также:  Windows удалить ссылку с файла

15. Перейдите в директорию /etc и, оставаясь в ней, создайте директорию newdir в вашей домашней директории.

16. Создайте с помощью одной команды директории

/dir1/dir1/dir2/dir3 (директория dir3 является поддиректорией директории dir2, а директория dir2 — поддиректорией директории dir1).

17. Удалите директорию testdir.

18. Если позволяет время (или вы ждете момента, когда остальные студенты закончат выполнение данного практического задания), попытайтесь воспользоваться командами pushd и popd и понять принцип их работы. Обратитесь к странице руководства man для командной оболочки bash с целью поиска информации о данных командах.

Корректная процедура выполнения практического задания: работа с директориями

1. Выведите путь к вашей текущей директории.

2. Перейдите в директорию /etc.

3. А теперь перейдите в вашу домашнюю директорию с помощью ровно трех нажатий клавиш.

4. Перейдите в директорию /boot/grub с помощью ровно одиннадцати нажатий клавиш.

5. Перейдите в родительскую директорию для текущей директории.

6. Перейдите в корневую директорию.

7. Выведите список содержимого корневой директории.

8. Выведите подробный список содержимого корневой директории.

9. Оставаясь в текущей рабочей директории, выведите список содержимого директории /etc.

10. Оставаясь в текущей директории, выведите список содержимого директорий /bin и /sbin.

11. Оставаясь в текущей директории, выведите список содержимого директории

12. Выведите список всех файлов (включая скрытые файлы), находящихся в вашей домашней директории.

13. Выведите список файлов, находящихся в директории /boot, с использованием формата величин для облегчения чтения человеком.

14. Создайте директорию testdir в вашей домашней директории.

15. Перейдите в директорию /etc и, оставаясь в ней, создайте директорию newdir в вашей домашней директории.

16. Создайте с помощью одной команды директории

/dir1/dir1/dir2/dir3 (директория dir3 является поддиректорией директории dir2, а директория dir2 — поддиректорией директории dir1).

17. Удалите директорию testdir.

18. Если позволяет время (или вы ждете момента, когда остальные студенты закончат выполнение данного практического задания), попытайтесь воспользоваться командами pushd и popd и понять принцип их работы. Обратитесь к странице руководства man для командной оболочки bash с целью поиска информации о данных командах.

Источник

Основы Linux от основателя Gentoo. Часть 3 (3/4): Управление аккаунтами в Linux

Навигация по основам Linux от основателя Gentoo:
Часть I:
Часть II:
Часть III

Управление аккаунтами в Linux

Знакомьтесь, /etc/passwd

В этом разделе мы познакомимся с механизмом управления аккаунтами в Linux и начнем с файла /etc/passwd, в котором определены все пользователи, которые существуют в системе. Вы можете посмотреть свой файл /etc/passwd, набрав команду less /etc/passwd. Каждой строкой в /etc/passwd определяется аккаунт пользователя. Вот пример из моего /etc/passwd:

drobbins:x:1000:1000:Daniel Robbins:/home/drobbins:/bin/bash

Как видите, в одной строке не так уж много информации. Каждая из них содержит несколько полей, разделённых «:». Первое поле отвечает за имя пользователя (drobbins), второе поле содержит «x». На устаревших Linux-системах второе поле содержало зашифрованных пароль для аутентификации, но фактически, сейчас все Linux-системы хранят эту информацию в другом файле. Третье поле отвечает за числовой пользовательский идентификатор, связанный с конкретным пользователем, а четвертое поле ассоциирует этого пользователя с конкретной группой; скоро мы увидим, где определена группа 1000. Пятое поле содержит текстовое описание аккаунта, в нашем случае это имя пользователя. Шестое поле определяет домашний каталог пользователя, седьмое — устанавливает стартовую оболочку пользователя, которая будет автоматически запускаться когда пользователь входит в систему.

/etc/passwd, советы и хитрости

Вы вероятно заметили, что в системе намного больше пользовательских аккаунтов, которые определены в /etc/passwd, чем тех, которые логинятся в систему на самом деле. Всё это потому, что различные компоненты Linux используют некоторые аккаунты для повышения безопасности. Обычно, такие системные аккаунты имеют идентификатор (uid) меньший 100, и у многих из них в качестве стартовой оболочки установлена /bin/false. Так как эта программа ничего не делает, кроме как выходит и возвращает код ошибки, это эффективно препятствует использованию этих аккаунтов в качестве обычных аккаунтов для логина — т.е. они предназначены только для внутрисистемного пользования.

Читайте также:  Лицензия windows первая помощь

/etc/shadow

Итак, сами пользовательские аккаунты определены в /etc/passwd. Системы Linux вдобавок к /etc/passwd содержат его файл-компаньон /etc/shadow. Он, в отличие от /etc/passwd, доступен для чтения только суперпользователю и содержит зашифрованную информацию о паролях. Взглянем на образец строки из /etc/shadow:

drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Каждая строка определяет информацию о пароле конкретного аккаунта, поля в ней разделены знаком «:». Первое поле определяет конкретный пользовательский аккаунт, которому соответствует данная «теневая» запись. Во втором поле содержится зашифрованный пароль. Оставшиеся поля описаны в таблице ниже:

поле 3 — количество дней с 01.01.1970 до момента, когда пароль был изменен
поле 4 — количество дней до того, как будет разрешено сменить пароль («0» — «менять в любое время»)
поле 5 — количество дней до того, как система заставит пользователя сменить пароль («-1» — «никогда»)
поле 6 — количество дней до истечения срока действия пароля, когда пользователь получит предупреждение об этом («-1» — «не предупреждать»)
поле 7 — количество дней после истечения срока действия пароля, по прошествии которых аккаунт будет автоматически отключен системой («-1» — «не отключать»)
поле 8 — количество дней, прошедшее с момента отключения этого аккаунта («-1» — «этот аккаунт включен»)
поле 9 — зарезервировано для будущего использования

/etc/group

Теперь взглянем на файл /etc/group, который определяет группы в системе Linux. Вот примерная строка из него:

drobbins:x:1000:

Формат полей файла /etc/group следующий: первое поле определяет имя группы, второе поле — это поле остаточного пароля, которое сейчас просто зарезервировано x, и третье поле определяет числовой идентификатор для конкретной группы. Четвертое поле (которое пусто в примере выше) определяет всех членов группы.

Вспомните, что в нашем образце строки из /etc/passwd есть «ссылка» на группу с идентификатором 1000. Мы сможем поместить пользователя drobbins в группу drobbins, даже несмотря на отсутствие имени drobbins в четвертом поле /etc/group.

Примечания о группах

Замечание насчет соответствия пользователей с группами: на некоторых системах каждый новый логин-аккаунт связан с группой, имеющей то же имя (и обычно идентификатор). На других системах все логин-аккаунты будут принадлежать к одной группе пользователей. Какой из этих методов выбрать зависит от вас. Создание соответствующей группы для каждого пользователя имеет преимущество в том, что позволяет им более легко контролировать их собственный доступ просто помещая доверенных друзей в свою личную группу.

Ручное создание пользователей и групп

Теперь, я покажу как создать аккаунты для пользователя и группы. Лучший путь узнать как это сделать это добавить нового пользователя в систему вручную. Для начала убедитесь что вашей переменной окружения EDITOR соответствует ваш любимый редактор:

# echo $EDITOR
vim

Если это не так, то вы можете установить переменную EDITOR, набрав что-то, вроде:

# export EDITOR=/usr/bin/emacs
# vipw

Теперь ваш редактор должен быть запущен с уже загруженным /etc/passwd экране. Изменяя системные файлы passwd и group обязательно используйте команды vipw и vigr. Они имеют повышенные меры предосторожности, оберегая ваши файлы от участи быть испорченными.

Редактирование /etc/passwd

Итак, у вас уже есть готовый файл /etc/passwd, добавьте теперь следующую строку:

testuser:x:3000:3000:LPI tutorial test user:/home/testuser:/bin/false

Мы только что добавили пользователя «testuser» с идентификатором 3000. Мы определили его в группу с таким же идентификатором, которую еще не создали. Но мы можем добавить его к уже имеющейся группе пользователей, если нужно. У этого пользователя установлен комментарий, гласящий «LPI tutorial test user», домашний каталог установлен как «/home/testuser», а командная оболочка — как «/bin/false», в целях безопасности. Если бы мы создавали не тестовый аккаунт, мы бы установили командную оболочку как «/bin/bash». Отлично, теперь сохраните файл и выходите.

Редактирование /etc/shadow

Сейчас нам нужно добавить запись в /etc/shadow для этого пользователя. Для этого наберите vipw -s. Вас как всегда встретит ваш любимый редактор в котором уже открыт файл /etc/shadow. Теперь скопируйте строку существующего пользовательского аккаунта (того, у которого есть пароль и запись которого длиннее стандартных записей системных аккаунтов)

Читайте также:  Running linux from ram

drobbins:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Замените имя пользователя в скопированной строке на имя вашего пользователя и убедитесь что все поля (особенно старый пароль) установлены как вам надо:

testuser:$1$1234567890123456789012345678901:11664:0:-1:-1:-1:-1:0

Теперь сохраните и закройте.

Установка пароля

Вы вернетесь к командной строке. Теперь, самое время задать пароль для вашего нового пользователя.

# passwd testuser
Enter new UNIX password: (enter a password for testuser)
Retype new UNIX password: (enter testuser’s new password again)

Редактирование /etc/group

Теперь /etc/passwd и /etc/shadow готовы и самое время как следует настроить /etc/group. Для этого, наберите:

# vigr

Перед вами появится ваш /etc/group файл, готовый для редактирования. Итак, если ранее вы решили добавить созданного пользователя к уже имеющейся группе, то вам не понадобиться создавать новую группу в /etc/groups. Если это не так, вам нужно добавить новую группу для этого пользователя, введите следующую строку:

testuser:x:3000:

Теперь сохраните и закройте.

Создание домашней директории

Мы почти закончили. Выполните следующие команды для создания домашнего каталога testuser’а:

# cd /home
# mkdir testuser
# chown testuser:testuser testuser
# chmod o-rwx testuser

Наш каталог пользователя на месте и аккаунт готов к использованию. Уже почти готово. Если вы собираетесь использовать этот аккаунт, вам надо будет воспользоваться vipw для смены стартовой оболочки на /bin/bash, так, чтобы пользователь смог войти.

Утилиты администрирования учетных записей

Вы уже знаете как вручную добавить новые аккаунты и группы, давайте же теперь рассмотрим различные, экономящие время, утилиты для управления аккаунтами под Linux. Из-за некоторых ограничений мы не будем рассматривать множество деталей, описывающих эти команды. Запомните — вы всегда можете получить больше информации о какой-либо команде если посмотрите её man-страничку. Если вы планируете сдавать LPIC 101 экзамен, вам следует провести побольше времени на ознакомление с каждой из этих команд.

newgrp — По умолчанию, любой файл, который создает пользователь, сразу же присваивается к группе, в которой он состоит, определенной в /etc/passwd. Если пользователь принадлежит к другим группам, он или она может набрать newgrp thisgroup чтобы стать членом группы thisgroup. Затем, любые новые созданные файлы унаследуют членство в thisgroup.
chage — Команда chage используется для просмотра и изменения настроек срока действия паролей, сохраненных в /etc/shadow.
gpasswd — Основная утилита управления группами
groupadd/groupdel/groupmod — Используются для добавления/удаления/изменения групп в /etc/group
useradd/userdel/usermod — Используются для добавления/удаления/изменения пользователей в /etc/passwd. Эти команды могут выполнять и другие полезные функции. Смотрите man для получения дополнительной информации.
pwconv/grpconv — Используются для преобразования passwd и group файлов старого образца в новые shadow passwords. Фактически, все Linux системы уже используют shadow passwords, так что вам никогда не придется использовать эти команды.

Перевод выполнил коллективный разум с помощью notabenoid.com. Спасибо следующим benoid-юзерам (в алфавитном порядке): kindacute, nekjine, Rich. А также инициатору всей серии переводов, 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.

Источник

Оцените статью