Где хранятся настройки пользователя в ubuntu

Обновлено: 04.07.2024

Сегодня я хочу поговорить о пользователях в Linux. Мы познакомимся с типами пользователей и узнаем в каких файлах хранится связанная с ними информация. Изучим команды позволяющие управлять пользователями и изменять их данные. Рассмотрим примеры создания пользователей с различными параметрами и последующим изменениям пользовательских настроек.

Типы пользователей

В ОС Linux существует три типа пользователей:

root (от англ. root - корень) - суперпользователь, аккаунт в UNIX-подобных системах, владелец которого имеет право на выполнение всех операций без исключения. Присутствует в системе по умолчанию.

Системные пользователи - системные процессы у которых есть учетные записи для управления привилегиями и правами доступа к файлам и каталогам. Создаются системой автоматически.

Обычные пользователи - учетные записи пользователей, допущенных к управлению системой. Создаются системным администратором.

Каждый пользователь помимо имени имеет числовой идентификатор пользователя UID (User IDentificator). Пользователь root имеет идентификатор 0. Системные пользователи имеют идентификаторы от 1 до 100. Обычные пользователи имеют UID от 100.

Пользователи могут объединяться в группы. Каждый пользователь обязательно входит в ту или иную группу. Группы имеют числовой идентификатор группы GID (Group IDentificator).

Информация пользователей

В системе присутствует следующая информация о каждом пользователе:

  • Имя пользователя (user name) - в рамках системы имя должно быть уникальным. В именах должны использоваться только английские буквы, числа и символы _ и . (точка).
  • Идентификационный номер пользователя (UID) - является уникальным идентификатором пользователя в системе. Система отслеживает пользователей по UID, а не по именам.
  • Идентификационный номер группы (GID) - обозначает группу, к которой относится пользователь. Каждый пользователь может принадлежать к одной или нескольким группам. Принадлежность пользователя к группе устанавливает системный администратор, чтобы иметь возможность ограничивать доступ пользователей к тем или иным ресурсам системы.
  • Пароль (password) - пароль пользователя в зашифрованном виде.
  • Полное имя (full name) - помимо системного имени может присутствовать полное имя пользователя, например фамилия и имя.
  • Домашний каталог (home directory) - каталог, в который попадает пользователь после входа в систему. Подобный каталог имеется у каждого пользователя, все пользовательские каталоги хранятся в директории /home.
  • Начальная оболочка (login shell) - командная оболочка, которая будет запускаться при входе в систему. Например, /bin/bash.

Вся информация о пользователях хранится в следующих файлах:

passwd (etc/passwd) - содержит информацию о пользователях, имеет следующий формат записи - "user_name:password:UID:GID:full_name:home_directory:login_shell". Элементы записи должны разделяться символом - ":" (двоеточие) и записываются без пробелов. Если пароль хранится в зашифрованном виде в файле /etc/shadow, то вместо пароля указывается - "x".

group (etc/group) - информация о группах, формат - "group_name:password:GID:user1,user2,user3". Элементы записи должны разделяться символом - ":" (двоеточие) записываются без пробелов. Имена пользователей записываются через запятую.

У файлов /etc/passwd и /etc/group всегда определенные права доступа: чтение и запись для root, для остальных только чтение.

shadow (etc/shadow) - в этом файле хранятся так называемые "теневые пароли", информация о паролях пользователей в зашифрованном виде. Cделано это для безопасности, так как файл /etc/passwd может читаться кем угодно, а файл /etc/shadow может прочитать только root.

gshadow (etc/gshadow) - то же самое что и shadow, только для паролей групп.

Помимо основных, в системе присутствуют дополнительные файлы.

useradd (etc/default/useradd) - файл задающий свойства "по умолчанию" для всех добавляемых пользователей. Можно просмотреть командой - useradd -D.

login.defs (/etc/login.defs) - содержит настройки для создания новых пользователей.

/etc/skel - каталог с дефолтными файлами, которые копируются в домашний каталог каждого пользователя при его создании.

Команды управления

Для управления пользователями используются следующие команды:

useradd или adduser - добавить нового пользователя.

passwd - задать пароль для пользователя.

usermod - изменить параметры учетной записи пользователя.

userdel или deluser - удалить учетную запись пользователя.

Для управления группами используются следующие команды:

groupadd - добавляет новую группу.

gpasswd - устанавливает пароль группы.

groupmod - изменение параметров группы.

groupdel - удаление группы.

Обычное добавление пользователя

При создании нового пользователя автоматически указываются несколько параметров. В файле /etc/passwd, заводится запись с указанием имени пользователя, домашнего каталога, UID, GID. В каталог помещаются файлы инициализации командной оболочки. Все можно указать вручную, при помощи дополнительных опций. Список опций можно просмотреть командой useradd --help или useradd -h.

Для создания пользователя достаточно выполнить команду useradd и указать его имя.

Синтаксис команды: useradd options username

Теперь нужно задать пароль для созданного пользователя. Пароль задается командой passwd с указанием имени пользователя.

Можно задать пароль для пользователя сразу при создании, например так:

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

Подобным образом команда useradd работает в CentOS и других подобных ему системах, но в Debian или Ubuntu она просто создаст голого пользователя, а все остальное придется добавлять потом вручную.

Чтобы создать пользователя с подобными параметрами в Debian & Ubuntu команда useradd должна выглядеть следующим образом.

Поэтому в Ubuntu & Debian удобнее пользоваться утилитой adduser, при ее использовании нужно будет ответить на несколько вопросов, в процессе ее выполнения будут видны все шаги по созданию нового пользователя.

Проверим как создался пользователь.

Пользователь создался как и в CentOS, за исключением того, что там мы не указывали полного имени "Techlist. ", через запятые должны были быть указаны номера комнаты и телефонов, которые мы пропустили нажав на <Enter>.

Создание пользователя с домашней директорией, отличной от дефолтной директории

По умолчанию команда useradd создает домашний каталог пользователя в директории /home, имя домашнего каталога всегда совпадает с именем пользователя. Например при создании пользователя techlist, создается домашняя директория /home/techlist.

Допустим что возникла необходимость задать пользователю домашний каталог с размещением и именем отличающимися от стандартных настроек. При использовании опции -d можно задать свой каталог для пользователя.

Как можно видеть, пользователь techlist создался с домашним каталогом в /opt/tech.

Создание пользователя с определенным UID и GID

Каждому пользователю при его создании присваивается UID, присвоение идет по порядку: 1000, 1001 и т.д. При использовании опции -u пользователю можно задать определенный UID. Для примера создадим пользователя techlist c UID равным 777.

Сначала создадим группу techlist c GID равным 777.

Обратите внимание, группа создана но пользователей в нет, теперь можно создать пользователя с UID=777 и указать его принадлежность к группе techlist с помощью опции -g и указания GID 777.

Создание пользователя с указанием принадлежности к нескольким группам

Если пользователь должен принадлежать сразу к нескольким группам, то указывается опция -G, после чего через запятую указываются группы к которым будет принадлежать пользователь.

Допустим что новый пользователь techlist должен принадлежать к следующим группам: group_1, group_2 и group_3.

Создание пользователя без домашнего каталога

Иногда пользователю не требуется домашний каталог, для этого используется опция -M.

Создание пользователя с истекающим сроком действия аккаунта

По умолчанию каждый пользователь не имеет срока действия аккаунта. Срок действия можно установить задав дату истечения аккаунта. Для этого следует использовать опцию -e после которой указывается дата истечения аккаунта в формате YYYY-MM-DD. Создадим пользователя techlist с истечением аккаунта в 2017-05-01, по достижении даты аккаунт будет недействителен.

Создание пользователя с истекающим сроком действия пароля

Чтобы установить срок истечения пароля пользователя, можно выполнить следующую команду.

Создание пользователя с указанием доп. информации

Иногда может возникнуть необходимость указать примечание для пользователя, в виде краткой заметки или указания имени и фамилии пользователя. Для этого можно воспользоваться опцией -c. Создадим пользователя vasek, с указанием имени и фамилии Vasya Pupkin.

Создание пользователя с указанием командной оболочки

Для того чтобы указать командную оболочку для пользователя используется опция -s

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

Изменение существующего пользователя

Иногда может потребоваться внести некоторые изменения в аккаунт пользователя. Сделать это можно при помощи команды usermod.

Синтаксис команды: usermod options username

Команда usermod имеет дополнительные опции, посмотреть список доступных опций можно командой usermod -h.

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

Пользователь был создан с дефолтными настройками.

Добавление доп. информации пользователю

Для начала добавим имя и фамилию пользователя, опцией -c.

Изменение домашнего каталога пользователя

По умолчанию домашним каталогом пользователя techlist является /home/techlist. Изменим его на каталог /opt/techlist, при помощи опции -d и опцией -m перенесем в новый каталог все содержимое старого.

Установка даты истечения срока аккаунта

Назначим дату истечения действия аккаунта, аккаунт будет действовать до 2017-05-01, дата задается опцией -e.

Изменение группы пользователя

Изменим группу пользователя techlist. Сначала посмотрим к каким группам он принадлежит.

Добавим пользователя techlist к группе group_1, используя опцию -g.

Как можно увидеть группа изменилась, если раньше была 1001(techlist), то теперь стала 1002(group_1).

Как добавить пользователя к новой группе без удаления из предыдущей? Для этого существует опция -G.

Теперь пользователь принадлежит одновременно к двум группам 1002(group_1) и 1003(group_2).

Добавление пользователя в дополнительные группы

Для добавления пользователя в одну из дополнительных групп, одновременно используются две опции -a и -G. В качестве дополнительной группы будет выступать группа wheel.

Теперь пользователь techlist относится к дополнительной группе wheel, что может наделить его привилегиями выполнять root-команды.

Изменение имени пользователя

Существующему пользователю можно изменить имя, изменим имя пользователя techlist на techlist_admin, делается это опцией -l.

Блокировка аккаунта пользователя

Для блокировки аккаунта пользователя достаточно выполнить команду с опцией -L.

Разблокировка аккаунта пользователя

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

Изменение командной оболочки пользователя

Чтобы изменить командную оболочку пользователя, надо выполнить следующую команду с опцией -s. Изменим пользовательскую оболочку для techlist_admin с /bin/bash/ на /bin/sh/.

Изменение UID и GID пользователя

Для изменения UID пользователя используется опция -u.

Для изменения GID пользователя используется опция -g.

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

Удаление пользователей

Для удаления пользователей в Linux существуют две команды userdel и deluser, команда userdel используется в RedHat - подобных системах, а deluser в Debian и производных системах. Помимо deluser в Debian можно использовать и userdel.

userdel

синтаксис команды: userdel options username

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

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

deluser

синтаксис команды: deluser options username

Для просмотра справки используется команда deluser -h.

Настройки команды находятся в файле /etc/deluser.conf, здесь задается поведение утилиты при удалении пользователя.

Правильное удаление пользователя

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

Блокировка пользователя

Удаляемый пользователь не должен быть залогинен в системе и использовать какие либо файлы или программы.

Блокировку пользователя мы рассматривали выше.

Убить все пользовательские процессы

Если пользователь залогинен, то его нужно выкинуть из системы. Для этого найдем все процессы запущенные от его имени и завершим их.

Узнаем что это за процессы используя их pid.

Hичего серьезного нет, можно завершать все. Завершение всех процессов вышвырнет пользователя из системы, а заново войти он не сможет, ибо был заранее заблокирован.

В отличие от архитектуры MS-DOS, этой предшественницы Windows, архитектура Linux изначально разрабатывалась как многопользовательская. И даже сегодня, когда Windows проделала немалый путь в своем развитии, создание пользователей и назначение им прав в Linux отличается большей логичностью и прозрачностью. В только что установленной Ubuntu или Mint имеются два пользователя — вы и root, присутствующий в системе как-бы неявно.

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

Создание пользователя в графическом интерфейсе

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

Вот пример с Ubuntu .

Откройте настройки системы, перейдите в раздел «Пользователи» и нажмите «Разблокировать»,

Пользователи

чтобы приступить к работе с учетными записями.

Как только вы это сделаете, появится кнопка добавления нового юзера.

Добавление нового юзера

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

Конфигурирование нового пользователя

Новый пользователь

Администратор в Ubuntu может делать всё то же самое, что и root, запросив у последнего разрешение командой sudo , тогда как права обычного пользователя ограничены. Так, обычный пользователь не сможет изменять важные системные настройки и управлять другими пользователями, ему не будет доступна команда sudo . Как и в Windows, для нового юзера создается отдельный каталог с одноименным названием.

Каталог пользователя

Создание пользователя в терминале

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

  • Команда — это зарезервированное слово, «приказ» системе выполнить то или иное действие.
  • Ключ — под ключом мы имеем ввиду некий переключатель, используемый в команде и расширяющий ее возможности. Ключ может принимать значение, а может и не принимать.
  • Аргумент или значение ключа — это некий логический набор данных, который обрабатывается командой.

Для создания пользователя в Linux используется команда useradd , если вы откроете ее справку командой useradd --help , где --help является ключом, то в терминале будет выведен полный набор поддерживаемых данной командой ключей.

Useradd help

Назначение домашнего каталога по умолчанию, блокировка учетной записи по истечении указанной даты, добавление пользователя в другие группы, создание пользователя без GUI и домашней папки, смена папки с конфигурационными файлами пользователя и назначение ему уникального ID и шелла — всё это и многое другое можно сделать с помощью терминала.

Добавляется новый пользователь в Ubuntu командой useradd имя-юзера . Перед выполнением команды мы запрашиваем разрешение у root, поэтому вначале ставим sudo . Если вы хотите в рамках сессии постоянно работать с правами суперпользователя, выполните sudo su - . Если увидите на скриншотах такую конструкцию, это значит мы переключились в режим root.

Useradd

При выполнении команды useradd автоматически будет создана новая группа и домашняя папка юзера. В процессе система попросит придумать и ввести для нового пользователя пароль и указать дополнительные сведения, которые, в отличие от пароля, можно проигнорировать. Это будет самый обычный пользователь с домашней папкой в каталоге /home и командной строкой bash. Получить базовые сведения о пользователе можно командой id имя-юзера . Для примера мы только что создали нового пользователя ludos и вывели командой id ludos о нём сведения. В результате получили строку из трех частей.

  1. uid — это идентификатор пользователя.
  2. gid — идентификатор его группы (по умолчанию равен ID юзера) .
  3. группы — перечень групп, в которые входит пользователь.

Id

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

Да очень просто: используя ключи -o, -u, -g и -s Первый ключ разрешает создание пользователя с неуникальным ID , второй назначает ему идентификатор пользователя, а третий — идентификатор группы, которые совпадают с идентификаторами рута (0) . Четвёртый ключ назначает командную оболочку. Сама же команда будет выглядеть следующим образом, где newroot — новый рутовый пользователь.

useradd -o -u 0 -g 0 -s /bin/bash newroot

Newroot

Рутовский каталог

Только вот делать так не рекомендуем.

Во-первых, этот дубль-root не отображается на экране входа в систему (нужно нажать "нет в списке" и ввести его имя и пароль) , не отображается он и в графической утилите управления пользователями. Во-вторых, у вас могут возникнуть проблемы с его удалением. Ubuntu советует использовать для удаления рутового пользователя ключ --force, но когда мы выполняем команду удаления deluser --force newroot , система сообщает об ошибке из-за использования newroot процесса с ID 1, принадлежащего пользователю root! То есть newroot стал как-бы зеркалом рута.

Зеркало рута

Где хранятся данные о пользователях

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

/etc/passwd — файл passwd хранит имя пользователя, метку пароля, ID пользователя, ID группы (GID) , полное имя и служебную информацию, путь к домашней папке и используемый юзером шелл (командную строку) , разделенные двоеточиями.

Чтобы просмотреть содержимое этого файла выполните команду sudo cat /etc/passwd .

Passwd

Помимо пользователя root, который всегда идет в списке первым и имеет ID и GID , файл может содержать массу служебных пользователей, которые сейчас нас не интересуют. Давайте-ка лучше посмотрим на запись администратора.

Для наглядности мы использовали цветовую идентификацию.

  1. Желтый — имя пользователя.
  2. Красный — метка пароля (x), сам пароль хранится в зашифрованном виде в другом файле.
  3. Оранжевый — идентификатор пользователя.
  4. Зеленый — идентификатор группы, в которую входит пользователь, и таких групп может быть несколько.
  5. Серый — полное имя пользователя и служебная информация. Если данные отсутствуют, блок заполняется запятыми.
  6. Голубой — домашний каталог пользователя.
  7. Сиреневый — используемая командная оболочка.

Данные о пользователях

/etc/shadow — хранит пароли пользователей в зашифрованном виде. Строка представлена именем пользователя и зашифрованным паролем, разделяемыми двоеточием.

Shadow

Цвета на изображении означают:

  1. Желтый — имя пользователя.
  2. Красный — его пароль в зашифрованном виде.

Пароли пользователей

/etc/group — этот файл хранит названия групп. Его содержимое представлено названием группы, меткой пароля, идентификатором группы и ее названием. Если в группу входит несколько пользователей, они перечисляются через запятую.

Group

Цветом на изображении выделены:

  1. Желтым — название группы.
  2. Красным — метка пароля.
  3. Зеленым — идентификатор группы.
  4. Голубым — входящие в группу пользователи.

Группы

Управление пользователями

Для управления пользователями в Linux Ubuntu существует команда usermod , которая также может принимать множество ключей и параметров. Если помните, ранее мы создали пользователя ludos. Это обычный пользователь, не являющийся администратором и не имеющий прав использовать команду sudo . Предоставим ему эти привилегии, добавив его в группы adm и sudo . Здесь мы вынуждены сделать маленькое отступление, сказав пару слов о группах. Как просмотреть список групп и что в них хранится, вы уже в курсе, но не будет лишним также знать, что группы могут быть первичными и вторичными.

  • Первичной называется группа, которая создается вместе с пользователем; в свою очередь, пользователь может входить только в одну первичную группу.
  • Вторичными называются все остальные группы, в которые пользователь может быть добавлен в процессе работы. Один и тот же пользователь может входить в множество дополнительных групп.

На досуге вы можете изучить ключи команды usermod , выполнив ее с параметром --help, а сейчас нам достаточно знать два ключа:

  • -a — ключ добавляет пользователя в указанную группу.
  • -G — специальный ключ, определяющий список дополнительных групп.

Формируем такую команду, добавляя юзера в группы adm и sudo , перечисляя их через запятую:

usermod -a -G adm,sudo ludos

Получив данные о пользователе командой id ludos , мы видим, что его ID и GID остались прежними, зато он оказался членом групп adm и sudo .

Usermod

Открыв графическую оболочку управления пользователями, мы обнаруживаем, что наш обычный ludos стал администратором, а так как он входит еще и в группу sudo , то может пользоваться и привилегиями root, в чём мы и убеждаемся, войдя в учетную запись ludos, открыв терминал и запросив разрешения root.

Параметры аккаунта

Sudo su -

Удаление пользователей

Удалить пользователя проще всего в настройках через раздел «Пользователи». Для этого мы должны входить в группу администраторов и обладать правами root.

Разблокировать

Подтверждение подлинности

Тут всё очень просто: выбираем юзера, жмем разблокировать, вводим свой пароль, жмем кнопку «Удалить пользователя».

Удалить пользователя

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

Домашняя папка

Чтобы удалить пользователя из терминала, используем команду deluser имя-юзера . Выполненная без параметров, команда удаляет только запись о пользователе, но не его файлы, поэтому приходится использовать ключи, ознакомиться с которыми вы опять же можете сами, выполнив deluser --help .

Deluser

Например, чтобы вместе с пользователем удалить его домашний каталог, нужно добавить ключ --remove-home, вот так:

deluser --remove-home ludos

Deluser remove home

Шаблон, в котором хранятся настройки удаления пользователя командой deluser без использования аргументов, представлен файлом /etc/deluser.conf.

Давайте его откроем в редакторе nano и кое-чего подправим, сделав так, чтобы выполненная без аргументов команда deluser удаляла юзера вместе с его домашним каталогом.

Открываем и видим, что REMOVE_HOME имеет значение 0,

Deluser.conf

что означает не удалять папку профиля. Заменяем 0 на 1, сохраняем конфиг-файл,

REMOVE_HOME

удаляем юзера deluser без параметров и видим, что папка тоже удалена!

Deluser без параметров

Удаление рутового пользователя

Ну хорошо, но у нас есть еще пользователь с рутовым правами и именем newroot, помните, мы его создали, а потом хотели удалить, но безуспешно? Этот юзер использует корневой процесс unit с ID 1, — убьёте его командой killall — тут же уложите систему.

Killall

Не навсегда, просто она перейдет в состояние, подобное BSOD .

BSOD

Как быть в этой ситуации? Вероятно, есть более элегантное решение проблемы, но мы решили пойти ва-банк и удалить запись зеркального рута прямо из конфигурационных файлов.

Сначала открываем в редакторе nano файл /etc/passwd и удаляем из него запись о юзере newroot .

Удаляем запись о юзере newroot

Точно так же поступаем с файлом /etc/shadow.

Удаляем запись

Id user

Осталось только разобраться с домашним каталогом newroot ,

Каталог newroot

для чего в открываем терминал в папке /home и сносим его командой sudo rm -r newroot .

Sudo rm -r newroot

Заключение

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

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

Очевидно, я хочу переместить мои данные. Что я пропускаю, если копирую только всю домашнюю папку?

Это домашний компьютер (не корпоративный), поэтому права пользователя и другие проблемы безопасности не имеют значения, за исключением того, что файлы должны быть доступны на новой машине!

Обратите внимание, что новая машина представляет собой неттоп, не имеющий оптического привода и не позволяющий подключить к нему старый диск SATA, поэтому любая передача данных должна осуществляться через домашнюю сеть (я могу включить как старый, так и новый компьютер и подключить его к домашней сети), и у меня есть USB-накопитель с ограниченной емкостью (2 ГБ).
Звучит так, как будто это может ограничить общую применимость, но на самом деле это сделает его более общим.

Для настроек и данных это немного сложнее :-( Большинство настроек хранятся в вашей домашней папке, поэтому создание резервной копии вашего HOME может помочь . Но тогда конечно, это не распространяется на системные приложения, конфигурации которых хранятся в /etc.

Большинство всех настроек для приложений по умолчанию скрыты в вашей домашней папке. Если вы нажмете Ctrl+h в Nautilus, вы увидите эти папки. Я обнаружил, что самый простой способ - просто rsync папки, которые вам нужны для конфигурации. Примерно так:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

Вы также можете - просто синхронизировать всю домашнюю папку с новым устройством - но это может вызвать проблемы в зависимости от настроек.

Взгляните на Stipple, он мне интересен:

«Сохранить список установленных приложений, файлов .config и других настроек в couchDB. Синхронизируйте эту БД с другими компьютерами с Ubuntu One. Приложение также помогает вам устанавливать эти пакеты и файлы .config на других компьютерах. "

Разработчики Ubuntu работают над этим, он называется OneConf .

Все ваши данные и настройки живут у вас дома.

Если вы только скопируете его, вы потеряете:

  • Установленные программы. Но смотри Сабакон ответ на этот вопрос .
  • Общесистемные конфигурации в домашнем компьютере, это обычно просто дополнительные PPA.
  • Данные общесистемных программ (обычно демонов) (например, базы данных MySQL).

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

Download Gwibber

  • Установить Сервер OpenSSH в старом компьютере.
  • Убедитесь, что оба компьютера подключены к сети.
  • Откройте Nautilus (файловый браузер) на новом компьютере.
  • В меню «Просмотр» установите флажок «Показать скрытые файлы».
  • Нажмите CTRL + L, в адресной строке введите ssh://ip-of-old-computer/home/
  • Вас попросят ввести имя пользователя и пароль на старом компьютере.
  • Скопируйте все, что вы хотите, используя графический интерфейс.

enter image description here

Mackup может создавать резервные копии многих приложений в облаке или для контроля версий. Это легко расширить, например, так выглядит плагин ssh

Пользовательские настройки сохраняются в домашней папке в соответствии с дизайном. Итак, если вы скопируете свой /home/your-username на новый компьютер, у вас все будет хорошо .

. но есть предостережения:

  • Разрешения. Обычно «программы» (шеллскрипты, пользовательские программы сборки) помещаются в домашнюю папку. Чтобы сохранить разрешения, используйте переключатель --preserve=mode (используя cp ) или -p (используя tar )
  • UserID / GroupID. Даже если имена пользователей в обеих системах одинаковы, идентификатор пользователя не обязателен. Обычно это не проблема, но если у вас есть скрипты / программы / настройки, работающие с идентификатором пользователя, вы должны убедиться, что идентификатор пользователя и идентификатор группы должны быть одинаковыми в целевой системе.
    Вы можете найти текущий userID и groupID, выполнив id . Например, чтобы изменить userID пользователя «your-username», запустите sudo usermod --uid 1234 your-username . Чтобы изменить groupID, вы должны запустить sudo groupmod --gid 1234 your-username .

Настройки (профиль Firefox, внешний вид, . ) часто хранятся в скрытых папках (или файлах). Скрытые папки / файлы имеют префикс с точкой, как .mozilla для Firefox (и других приложений Mozilla).

Поскольку безопасность не является проблемой, и вы хотите, чтобы копирование выполнялось как можно быстрее, я предлагаю комбинацию программ netcat и tar. Оба приложения установлены по умолчанию. Убедитесь, что брандмауэры на обоих компьютерах позволяют входить на порт назначения 8888 (исходный компьютер) и исходить на порт назначения 8888 (целевой компьютер). Положите неттоп рядом с компьютером, чтобы вы могли быстро запускать команды.

На исходном компьютере должна быть установлена ​​традиционная программа netcat (например, швейцарский армейский нож, а не BSD). Для этого установите пакет netcat-traditional . Вы также можете настроить традиционную программу Netcat по умолчанию. Команды для установки netcat-Traditional и использования по умолчанию:

На исходном компьютере введите следующую команду в терминале (пока не нажимайте Enter):

  • tar - это утилита для упаковки файлов
  • cz c создает такой упакованный файл ("tarball")
  • Тарбол сжимается с использованием алгоритма ip G Z для уменьшения размера файла.
  • -C/home $(whoami) изменяет рабочий каталог на /home и помещает вашу папку с именем пользователя. В качестве альтернативы, вы можете ввести папку your-username в tarball.
  • nc (netcat) используется для простой настройки соединений между машинами. для подключения к текущей машине
  • -p 8888 : прослушивает порт 8888 (произвольно выбранное число, это может быть любое другое число, кроме 1024)
  • -w 10 : выйти из netcat после 10 секунд тишины. Вы должны подключиться к этому исходному компьютеру в течение этого времени.

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

  • 192.168.1.2 - это IP-адрес исходного компьютера. Чтобы получить его IP-адрес, запустите: ifconfig на исходном компьютере
  • 8888 - это номер порта, введенный на исходном компьютере
  • xzp : e x [ 1131] обрабатывает G Z сжатый ip тарбол, в то время как p резервирует разрешения.
  • -C/home : извлекает папку your-username в /home/your-username
  • При желании добавьте переключатель -v в команду tar для подробного извлечения, чтобы вы могли получить представление о прогрессе. Это может замедлить процесс копирования, поскольку каждый файл должен быть напечатан.

Теперь перейдите к исходному компьютеру, нажмите Enter, чтобы запустить команду сервера. Быстро переключитесь на ваш неттоп и нажмите Enter, чтобы запустить команду клиента.

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

Изображение пользователя Mike.

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

- Корневая файловая система специфична для каждой машины (обычно она хранится на локальном диске, хотя это мог бы быть ramdisk или сетевой диск) и содержит файлы, которые являются необходимыми для загрузки системы. Содержимого корневой файловой системы достаточно для загрузки в однопользовательском режиме. Именно эта файловая система используется при загрузке до тех пор, пока не будут смонтированы другие файловые системы. Она также содержит инструментальные средства для ремонта поврежденной системы и для восстановления потерянных файлов из резервных копий.

- Файловая система /usr содержит все команды, библиотеки, man-страницы, исходные тексты и другие неизменяемые файлы, необходимые для нормальной работы системы. Никакие файлы в /usr не должны быть специфическими для любой конкретной машины, и при этом они не должны измениться при нормальном использовании. Это позволяет файлам быть разделенными по сети, что может быть практично, так как это сохраняет дисковое пространство (могут легко иметься сотни мегабайт в /usr) и упрощает администрирование (только машина, на которой хранится /usr, должна быть изменена при модификации прикладной программы, а не каждая машина отдельно). Даже если файловая система находится на локальном диске, она может быть установлена только для чтения, что уменьшит возможность искажения в случае отказа.

- Файловая система /var содержит файлы, которые изменяются в ходе работы системы. Например, там лежат каталоги буферов для почты, новостей, печати и т.п., файлы протоколов, форматированных man-страниц и временные файлы.

- Файловая система /home содержит все домашние каталоги пользователей системы, то есть, все реальные данные системы. Отделение пользовательских каталогов от системы упрощает резервирование данных. Если пользователей много, эта файловая система может быть разделена на несколько (например, /home/students и /home/teacher).

Хотя различные части выше были названы файловыми системами, это не значит, что они фактически находятся на отдельных дисках. Они могут храниться на одном диске, если речь идето небольшом сервере или личном однопользовательском компьютере. Дерево каталогов может быть также разделено по-другому, в зависимости от того, насколько большие диски использованы, и как распределено место на них для различных целей, тем не менее, важно, чтобы все стандартные имена работали; даже если, скажем, /var и /usr фактически на том же самом разделе, имена /usr/lib/libc.a и /var/log/messages должны работать, например, перемещая файлы из /var в /usr/var, и делая /var ссылкой на /usr/var.

Структура файловой системы в Unix группирует файлы по их назначению, то есть, все команды находятся в одном месте, все файлы данных в другом, документация в третьем и так далее. Альтернативный вариант группировал файлы согласно программе, которой они принадлежат, то есть, все Emacs-файлы были бы в одном каталоге, весь TeX в другом, и так далее. Проблема с последним подходом состоит в том, что это делает трудным совместно использовать файлы (каталог программ часто содержит статические, общие, изменяющиеся и личные файлы), и иногда даже находить файлы, например, man-страницы в огромном числе мест, благодаря чему поиск их программой просмотра сильно осложняется.

Корневая файловая система

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

Файловая система дистрибутива имеет архитектуру классической файловой системы ОС Linux с единым корневым каталогом, обозначаемым символом обратной косой черты ("слэш") — /.

Ниже приведено описание основных каталогов верхнего уровня.

/bin - В этом каталоге хранятся основные команды, необходимые пользователю для работы в системе. Например, такие как командные оболочки и команды файловой системы (ls, cp и т.д.). Каталог /bin обычно не изменяется после установки. Если изменяется, то обычно лишь при обновлениях пакетов программ, предоставленных разработчиками операционной системы.

/boot - В этом каталоге хранятся файлы, используемые загрузчиком ОС — LInux LOader (LILO). Этот каталог так же практически не изменяется после установки.

/dev - В этом каталоге размещены описания устройств системы. В Linux всё рассматривается, как файл, даже различные устройства, такие как последовательные порты, жёсткие диски и сканеры. Для получения доступа к определённому устройству, необходимо чтобы существовал специальный файл, называемый device node. Все эти файлы находятся в каталоге /dev. Аналогично устроено большинство UNIX-подобных операционных систем.

/etc - Этот каталог содержит файлы настроек: всё, от конфигурационных файлов системы X Window, базы данных пользователей и до стартовых сценариев.

/home - В этом каталоге размещены домашние каталоги пользователей. Linux является многопользовательской системой и каждому пользователю присваивается имя и уникальный каталог для персональных файлов. Этот каталог называется "home" (домашним) каталогом пользователя.

/lib - В этом каталоге находятся системные библиотеки, необходимые для основных программ: библиотека C, динамический загрузчик, библиотека ncurses, модули ядра и другое.

/lib/modules - Подгружаемые модули для ядра (например, сетевые драйверы или поддержка дополнительных файловых систем).

/lost+found - В этом каталоге сохраняются восстановленные части файловой системы. При загрузке системы происходит проверка файловых систем на наличие ошибок. Для исправления ошибок файловой системы запускается программа fsck.

/mnt - Этот каталог предоставляется как временная точка монтирования для жёстких дисков, дискет, компакт-дисков или отключаемых устройств.

/opt - В этом каталоге размещаются дополнительные пакеты программ. Особенность Linux в том, что все пакеты программ, устанавливаются в этот каталог, например /opt/<программный пакет>. В последствии если этот пакет больше не будет нужен, то достаточно всего лишь удалить соответствующий каталог. В дистрибутивах SlackWare некоторые программы изначально поставляются в каталоге /opt (например, KDE - в /opt/kde).

/proc - Это специальный каталог не входящий в файловую систему. Каталог /proc представляет собой виртуальную файловую систему, которая предоставляет доступ к информации ядра. Различная информация, которую ядро может сообщить пользователям, находится в "файлах" каталога /proc. Например, в файле /proc/modules находится список загруженных модулей ядра. А в файле /proc/cpuinfo — информация о процессоре компьютера.

/root - Это домашний каталог администратора, вместо /home/root. Это потому, что каталог /home может находиться в разделе, отличном от корневого (/) и если по какой-то причине /home не может быть подключён, то пользователь root вынужден будет войти в систему, чтобы решить проблему. И если его домашний каталог на другом диске, то это усложнит вход в систему.

/sbin - В этом каталоге хранятся основные программы, выполняемые пользователем root а так же программы, выполняемые в процессе загрузки. Обычные пользователи не могут пользоваться этими программами.

/tmp - Временное хранилище данных. Все пользователи имеют права чтения и записи в этом каталоге.

/usr - Это один из самых больших каталогов в системе. Практически всё остальное расположено здесь. Программы, документация, исходный код ядра и система X Window. Именно в этот каталог, чаще всего, устанавливаются программы.

/var - В этом каталоге хранятся системные лог-файлы, кэш-файлы и файлы-замки программ. Это каталог для часто меняющихся данных.

Каталог /etc - В этом каталоге содержится довольно много различных конфигурационных файлов. Некоторые из них рассмотрены ниже. Здесь также располагаются файлы, используемые для конфигурирования сети.

/etc/rc.d - Командные файлы, выполняемые при запуске системы или при смене ее уровня выполнения.

/etc/passwd - База данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, зашифрованный пароль и другие данные. Формат этого файла рассмотрен в man-руководстве к команде passwd.

/etc/fdprm - Таблица параметров флоппи-дисковода, определяющая формат записи. Устанавливается программой setfdprm.

/etc/fstab - Список файловых систем, автоматически монтируемых во время запуска системы командой mount -a (она запускается из командного файла /etc/rc.d/rc.S). Здесь также содержится информация о swaр-областях, автоматически устанавливаемых командой swapon -a.

/etc/group - Подобен файлу /etc/рasswd, только здесь содержится информация о группах, а не о пользователях.

/etc/inittab - Конфигурационный файл демона init.

/etc/issue - Выводится программой getty перед приглашением login. Обычно здесь содержится краткое описание системы.

/etc/magic - Конфигурационный файл команды file. Содержит описания различных форматов файлов, опираясь на которые эта команда определяет тип файла. Также см. руководства к magic и file.

/etc/mtab - Список смонтированных на данный момент файловых систем. Изначально устанавливается командными файлами при запуске, а затем автоматически модифицируется командой mount. Используется при необходимости получения доступа к смонтированным файловым системам (например, командой df).

/etc/shadow - Теневая база данных пользователей. При этом информация из файла /etc/рasswd перемещается в /etc/shadow, который недоступен для чтению никому, кроме пользователя root. Это усложняет взлом системы.

/etc/login.defs - Конфигурационный файл команды login.

/etc/printcap - То же, что и /etc/termcap, только используется при работе с принтером.

/etc/profile - Этот командный файл выполняется оболочкой Bourne Shell при запуске системы, что позволяет изменять системные установки для всех пользователей.

/etc/securetty - Определяет терминалы, с которых может подключаться к системе пользователь root. Обычно это только виртуальные консоли, что усложняет взлом системы через модем или сеть.

/etc/shells - Список рабочих оболочек. Команда chsh позволяет менять рабочую оболочку только на оболочки, находящиеся в этом файле. Процесс ftрd, предоставляющий работу с FTР, проверяет наличие оболочки пользователя в файле /etc/shells и не позволяет пользователю подключится к системе, пока ее имя не будет найдено в этом файле.

/etc/termcap - База данных совместимости терминалов. Здесь находятся escape-последовательности для различных типов терминалов, что позволяет работать программам на разных типах терминалов.

Каталог /dev - В этом каталоге находятся файлы устройств. Названия этих файлов соответствуют специальным положениям, рассмотренным в списке устройств (Device list). Файлы устройств создаются во время установки системы, а затем с помощью скрипта /dev/MAKEDEV. Файл /dev/MAKEDEV.local используется при создании локальных файлов устройств или ссылок (т.е. тех, что не соответствуют стандарту MAKEDEV).

Каталог /usr - Обычно файловая система /usr достаточно большая по объему, так как многие программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге /usr/local. Некоторые подкаталоги системы /usr рассмотрены ниже (для более подробной информации см. описание стандарта FSSTND).

/usr/X11R6 - Все файлы, используемые системой X Window. Для упрощения установки и администрирования, файлы системы X Window размещаются в отдельной структуре каталогов, которая находится в /usr/X11R6 и идентична структуре /usr.

/usr/bin - Практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin.

/usr/sbin - Команды, используемые при администрировании системы и не предназначенные для размещения в файловой системе root (например, здесь находится большинство программ-серверов).

/usr/man, /usr/info, /usr/doc - Файлы man-руководств, документации GNU Info и другая документация.

/usr/include - Подключаемые файлы библиотек для языка С.

/usr/src - Исходные тексты программ, установленных в системе, в том числе ядра Linux.

/usr/lib - Неизменяемые файлы данных для программ и подсистем, включая некоторые конфигурационные файлы. Имя lib происходит от library (библиотека); первоначально библиотеки подпрограмм для программирования хранились в /usr/lib.

/usr/local - Здесь размещаются отдельно устанавливаемые пакеты программ и другие файлы.

Каталог /var - Эта файловая система содержит файлы, изменяемые при нормально работающей системе. Она специфична для каждого компьютера и не может быть разделена в сети между несколькими машинами.

/var/man/cat* - Временный каталог для форматируемых страниц руководств. Источником этих страниц является каталог /usr/man/man*. Некоторые руководства поставляются в отформатированном виде. Они располагаются в /usr/man/cat*. Остальные руководства перед просмотром должны быть отформатированы. Затем они помещаются в каталог /var/man и при повторном просмотре в форматировании не нуждаются. Каталог /var/man/cat часто очищается, таким же образом, как и прочие временные каталоги.

/var/lib - Файлы, изменяемые при нормальном функционировании системы.

/var/local - Изменяемые данные для программ, установленных в /usr/local (то есть, программы которые были установлены администратором системы). Обратите внимание, что даже в местном масштабе установленные программы должны использовать другие /var каталоги, например, /var/lock.

/var/lock - Файлы-защелки. Многие программы при обращении к какому-либо файлу устройства создают здесь файл-защелку. Другие программы при обращении к какому-либо устройству сначала проверяют наличие файла-защелки в этом каталоге, а затем уже производят доступ к этому устройству.

/var/run - Файлы, информация в которых соответствует действительности только до очередной перезагрузки системы. Например, файл /var/run/utmp содержит информацию о пользователях, подключенных к системе в данный момент.

/var/spool - Каталоги, используемые для хранения почты, новостей, очереди для принтера, а также для других задач. Для каждой задачи существует отдельный каталог в /var/spool, например, почтовые ящики пользователей хранятся в /var/spool/mail.

/var/tmp - Каталог для временных файлов, размер которых достаточно велик или время существования которых больше, чем в /tmp. Хотя администратор системы не должен бы держать очень уж старые файлы в /var/tmp.

Каталог /proc - Файловая система /proc является виртуальной и в действительности она не существует на диске. Ядро создает ее в памяти компьютера. Система /proc предоставляет информацию о системе (изначально только о процессах — отсюда ее название). Некоторые наиболее важные файлы и каталоги рассмотрены ниже. Более подробную информацию о структуре и содержании файловой системы /proc можно найти в man-руководстве к proc.

/proc/1 - Каталог, содержащий информацию о процессе номер 1. Для каждого процесса существует отдельный каталог в /proc, именем которого является его числовой идентификатор.

/proc/cpuinfo - Информация о процессоре, такая как тип процессора, его модель, производительность и др.

/proc/devices - Список драйверов устройств, встроенных в действующее ядро.

/proc/dma - Задействованные в данный момент каналы DMA.

/proc/filesystems - Файловые системы, встроенные в ядро.

/proc/interruрts - Задействованные в данный момент прерывания.

/proc/ioports - Задействованные в данный момент порты ввода/вывода.

/proc/kcore - Отображение физической памяти системы в данный момент. Размер этого файла точно такой же, как и у памяти компьютера, только он не занимает места в самой памяти, а генерируется на лету при доступе к нему программ. Однако при копировании этого файла куда-либо, он не займет места на диске.

/proc/ksyms - Таблица символов ядра.

/proc/loadavg - Ориентировочная загруженность системы.

/proc/meminfo - Информация об использовании памяти, как физической, так и swap-области.

/proc/modules - Список модулей ядра, загруженных в данный момент.

/proc/net - Информация о сетевых протоколах.

/proc/self - Символическая ссылка к каталогу процесса, пытающегося получить информацию из /proc. При попытке двух различных процессов получить какую-либо информацию в /proc, они получают ссылки на различные каталоги. Это облегчает доступ программ к собственному каталогу процесса.

/proc/stat - Различная статистическая информация о работе системы.

/proc/uptime - Время, в течение которого система находится в рабочем состоянии.

/proc/version - Версия ядра.

Хотя многие файлы имеют обычный текстовый формат, некоторые из них имеют собственный. Существует много программ, которые не только преобразуют такие файлы в формат, доступный для чтения, но и предоставляют некоторые функции. Например, программа free считывает файл /proc/meminfo и преобразует значения, указанные в байтах, в килобайты (а также предоставляет некоторую дополнительную информацию).

Читайте также: