Через sudo сводку и создали, и прочитали. Действие sudo кончается вместе с одной командой — в этом шаге видно, почему.
Владельцем файла становится пользователь процесса, который его создал, а каталог на это не влияет. Сводку создал процесс root, поэтому она принадлежит root.
sudo запускает одну команду от имени другого пользователя, по умолчанию root. В строке sudo cat summary.txt процесс cat работает с UID 0, поэтому сводка читается.
Когда cat завершается, оболочка продолжает работать от student. Терминал sudo не переключает: следующая команда без sudo снова идёт от тебя.
На многих серверах sudo спрашивает пароль и потом несколько минут не спрашивает его снова. Так sudo запоминает подтверждение; от чьего имени работают команды без sudo, это не меняет.
На учебной машине student выполняет sudo без пароля — так настроен учебный образ. На рабочем сервере команда может потребовать пароль или оказаться запрещённой: что разрешено тебе, показывает sudo -l.
Что напечатает строка sudo id -u; id -u?
-
sudo запускает команду, которая записана сразу за ним, — первую в строке. Поэтому первым печатается 0:
sudo id -uработает от root. -
Запомненный пароль избавляет от повторного ввода, и только. Команда без
sudoработает от student, иid -uпечатает твой UID. -
Точка с запятой разделяет две команды, и sudo запускает первую из них. Выполни строку сам: вторая строка вывода — твой UID.
sudo запускает от root одну команду — ту, что записана сразу за ним; после ; следующую запускает уже твоя оболочка. Поэтому первая строка вывода — 0, вторая — твой UID.
Главное в шаге
-
sudoзапускает от другого пользователя одну команду, оболочка остаётся твоей. -
Запомненный пароль избавляет от повторного ввода; учётную запись команд без
sudoон не меняет. -
Что тебе разрешено через sudo, решает политика sudo; её показывает
sudo -l.