HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В работе с командной строкой мы часто сталкиваемся с ситуациями, в которых необходимо повышать привилегии и выполнять команды от имени суперпользователя root. С некоторыми мы уже столкнулись, с другими познакомимся в следующих уроках:</p>
1 <p>В работе с командной строкой мы часто сталкиваемся с ситуациями, в которых необходимо повышать привилегии и выполнять команды от имени суперпользователя root. С некоторыми мы уже столкнулись, с другими познакомимся в следующих уроках:</p>
2 <ul><li>Установка новых программ</li>
2 <ul><li>Установка новых программ</li>
3 <li>Навигация по чужим директориям</li>
3 <li>Навигация по чужим директориям</li>
4 <li>Изменение прав доступа</li>
4 <li>Изменение прав доступа</li>
5 <li>Изменение содержимого в файлах, не принадлежащих текущему пользователю</li>
5 <li>Изменение содержимого в файлах, не принадлежащих текущему пользователю</li>
6 <li>Создание, редактирование и удаление файлов, когда не хватает прав текущего пользователя</li>
6 <li>Создание, редактирование и удаление файлов, когда не хватает прав текущего пользователя</li>
7 <li>Запуск программ, требующих повышенных привилегий</li>
7 <li>Запуск программ, требующих повышенных привилегий</li>
8 </ul><p>В этом уроке обсудим, как стать другим пользователем. Для этого зайдите в систему и воспользуйтесь утилитой su (сокращение от<em>substitute user</em>или<em>switch user</em>). Когда-то такой способ был основным, но сейчас он устарел и не рекомендуется к использованию. Подробнее об этом можно прочитать в статье<a>"Su или sudo?"</a>из дополнительных материалов.</p>
8 </ul><p>В этом уроке обсудим, как стать другим пользователем. Для этого зайдите в систему и воспользуйтесь утилитой su (сокращение от<em>substitute user</em>или<em>switch user</em>). Когда-то такой способ был основным, но сейчас он устарел и не рекомендуется к использованию. Подробнее об этом можно прочитать в статье<a>"Su или sudo?"</a>из дополнительных материалов.</p>
9 <p>Основной способ повышать привилегии в современных системах - утилита sudo (<em>substitute user and do</em>- дословно "подменить пользователя и выполнить").</p>
9 <p>Основной способ повышать привилегии в современных системах - утилита sudo (<em>substitute user and do</em>- дословно "подменить пользователя и выполнить").</p>
10 <p>Использовать sudo очень просто, достаточно написать эту команду слева от любой другой и выполнить. По умолчанию она пытается повысить привилегии до суперпользователя:</p>
10 <p>Использовать sudo очень просто, достаточно написать эту команду слева от любой другой и выполнить. По умолчанию она пытается повысить привилегии до суперпользователя:</p>
11 - <p>В зависимости от настроек, утилита sudo попросит ваш пароль для входа или вообще откажется работать, сказав, что у вас нет права ее использовать. Как правило, в Ubuntu sudo спрашивает пароль и запоминает его на пять минут. На протяжении этого времени вы можете использовать sudo, не вводя пароль каждый раз.</p>
11 + <p>В зависимости от настроек, утилита sudo попросит ваш пароль для входа или вообще откажется работать, сказав, что у вас нет права ее использовать. Как правило, в Ubuntu sudo спрашивает пароль и запоминает его на несколько минут (по умолчанию около 5-15, зависит от настроек). На протяжении этого времени вы можете использовать sudo, не вводя пароль каждый раз.</p>
12 <p>Иногда нужно выполнить команду из-под пользователя, отличного от root. Тогда придется добавить флаг -u:</p>
12 <p>Иногда нужно выполнить команду из-под пользователя, отличного от root. Тогда придется добавить флаг -u:</p>
13 <p>Если нужно произвести сразу пачку действий от имени другого пользователя, можно запустить новую оболочку внутри текущей. Другими словами, мы стартуем новую сессию:</p>
13 <p>Если нужно произвести сразу пачку действий от имени другого пользователя, можно запустить новую оболочку внутри текущей. Другими словами, мы стартуем новую сессию:</p>
14 <p>Главное - не забыть переключиться обратно после завершения необходимых манипуляций. Для этого наберите exit.</p>
14 <p>Главное - не забыть переключиться обратно после завершения необходимых манипуляций. Для этого наберите exit.</p>
15 <h2>Подводные камни</h2>
15 <h2>Подводные камни</h2>
16 <p>Знание про sudo играет с новичками злую шутку. Каждый раз, когда они видят странные ошибки, то не пытаются разобраться, а пробуют запустить команду с sudo без параметров - то есть просто выполнить ее от суперпользователя. Часто такой подход срабатывает, но он создает еще больше проблем.</p>
16 <p>Знание про sudo играет с новичками злую шутку. Каждый раз, когда они видят странные ошибки, то не пытаются разобраться, а пробуют запустить команду с sudo без параметров - то есть просто выполнить ее от суперпользователя. Часто такой подход срабатывает, но он создает еще больше проблем.</p>
17 <p>Представим, что из-под sudo мы запустили команду, которая создает файлы и директории. В таком случае владельцем этих файлов становится суперпользователь. Все последующие обращения к этому файлу без sudo начнут выдавать ошибку "У вас нет прав доступа". Причем даже необязательно работать с этими файлами напрямую. Множество программ так или иначе обращаются к файловой системе для чтения конфигурационных и других файлов.</p>
17 <p>Представим, что из-под sudo мы запустили команду, которая создает файлы и директории. В таком случае владельцем этих файлов становится суперпользователь. Все последующие обращения к этому файлу без sudo начнут выдавать ошибку "У вас нет прав доступа". Причем даже необязательно работать с этими файлами напрямую. Множество программ так или иначе обращаются к файловой системе для чтения конфигурационных и других файлов.</p>
18 <p>Правильный выход из ситуации в каждом случае свой. В некоторых случаях sudo - это то, что нужно. В других случаях требуется изменить права (об этом в следующем уроке), а иногда и переустановить какую-нибудь часть системы.</p>
18 <p>Правильный выход из ситуации в каждом случае свой. В некоторых случаях sudo - это то, что нужно. В других случаях требуется изменить права (об этом в следующем уроке), а иногда и переустановить какую-нибудь часть системы.</p>
19 <p>Общее правило может быть таким:</p>
19 <p>Общее правило может быть таким:</p>
20 <ul><li>Все, что лежит в личных директориях пользователя, должно принадлежать этому пользователю</li>
20 <ul><li>Все, что лежит в личных директориях пользователя, должно принадлежать этому пользователю</li>
21 <li>Все, что находится вне домашней директории пользователя и требует дополнительных прав, скорее должно запускаться с sudo, но бывают и исключения</li>
21 <li>Все, что находится вне домашней директории пользователя и требует дополнительных прав, скорее должно запускаться с sudo, но бывают и исключения</li>
22 </ul><p>Рассмотрим, как это работает на практике:</p>
22 </ul><p>Рассмотрим, как это работает на практике:</p>
23  
23