Как открыть файл с правами root в ubuntu
Перейти к содержимому

Как открыть файл с правами root в ubuntu

  • автор:

Администратор в Ubuntu, или Что такое sudo

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

Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.

Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .

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

Что такое sudo

sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.

Где используется sudo

sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic — это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.

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

Запуск графических программ с правами администратора

Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt + F2 .

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

Вместо gksudo можно подставить gksu , кроме того, пользователи KDE должны вместо gksudo писать kdesu . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска

Запуск программ с правами администратора в терминале

Для запуска в терминале команды с правами администратора просто наберите перед ней sudo :

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

Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале

Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды

с правами root исполнится только cat , поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя.

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

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

После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su , однако: — sudo -s — не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s, что обычно очень удобно. — sudo -i — сменит так же и домашний каталог на /root.

Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl + D .

Использование традиционного root аккаунта и команды su

Ubuntu 11.04 и младше

Для входа под root достаточно задать ему пароль:

Потом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.

Ubuntu 11.10 и старше

Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.

1. Устанавливаем root пароль. Введите в терминал:

2. Включаем пункт «Введите логин». Введите в терминал:

В конце файла допишите:

3. Перезагружаем lightdm. Введите в терминал:

Все, на экране входа появится пункт «Логин». В поле логин вводим «root», в поле пароль — пароль, который мы задали на первом этапе.

Для обратной блокировки учетной записи root вам потребуется откатить изменения в настройках lightdm, а также заблокировать учетную запись root командой в терминале:

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив

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

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

И в конец файла дописать строку

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге

и добавьте в конец файла строки

Время действия введённого пароля

Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:

Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.

sudo не спрашивает пароль

sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

FilePermissions

In Linux and Unix, everything is a file. Directories are files, files are files and devices are files. Devices are usually referred to as a node; however, they are still files. All of the files on a system have permissions that allow or prevent others from viewing, modifying or executing. If the file is of type Directory then it restricts different actions than files and device nodes. The super user «root» has the ability to access any file on the system. Each file has access restrictions with permissions, user restrictions with owner/group association. Permissions are referred to as bits.

To change or edit files that are owned by root, sudo must be used — please see RootSudo for details.

If the owner read & execute bit are on, then the permissions are:

There are three types of access restrictions:

There are also three types of user restrictions:

Note: The restriction type scope is not inheritable: the file owner will be unaffected by restrictions set for his group or everybody else.

Folder/Directory Permissions

Directories have directory permissions. The directory permissions restrict different actions than with files or device nodes.

Folders (directories) must have ‘execute’ permissions set (x or 1), or folders (directories) will NOT FUNCTION as folders (directories) and WILL DISAPPEAR from view in the file browser (Nautilus).

Permissions in Action

Using the example above we have the file «/etc/hosts» which is owned by the user root and belongs to the root group.

What are the permissions from the above /etc/hosts ls output?

Changing Permissions

The command to use when modifying permissions is chmod. There are two ways to modify permissions, with numbers or with letters. Using letters is easier to understand for most people. When modifying permissions be careful not to create security problems. Some files are configured to have very restrictive permissions to prevent unauthorized access. For example, the /etc/shadow file (file that stores all local user passwords) does not have permissions for regular users to read or otherwise access.

chmod with Letters

Here are a few examples of chmod usage with letters (try these out on your system).

First create some empty files:

Add owner execute bit:

Add other write & execute bit:

Remove group read bit:

Add read, write and execute to everyone:

chmod with Numbers

Owner, Group and Other is represented by three numbers. To get the value for the options determine the type of access needed for the file then add.

For example if you want a file that has -rw-rw-rwx permissions you will use the following:

Another example if you want a file that has —w-r-x—x permissions you will use the following:

Here are a few examples of chmod usage with numbers (try these out on your system).

First create some empty files:

Add owner execute bit:

Add other write & execute bit:

Remove group read bit:

Add read, write and execute to everyone:

chmod with sudo

Changing permissions on files that you do not have ownership of: (Note that changing permissions the wrong way on the wrong files can quickly mess up your system a great deal! Please be careful when using sudo!)

Recursive Permission Changes

To change the permissions of multiple files and directories with one command. Please note the warning in the chmod with sudo section and the Warning with Recursive chmod section.

Recursive chmod with -R and sudo

To change all the permissions of each file and folder under a specified directory at once, use sudo chmod with -R

Recursive chmod using find, pipemill, and sudo

To assign reasonably secure permissions to files and folders/directories, it’s common to give files a permission of 644, and directories a 755 permission, since chmod -R assigns to both. Use sudo, the find command, and a pipemill to chmod as in the following examples.

To change permission of only files under a specified directory.

To change permission of only directories under a specified directory (including that directory):

Warning with Recursive chmod

WARNING: Although it’s been said, it’s worth mentioning in context of a gotcha typo. Please note, Recursively deleting or chown-ing files are extremely dangerous. You will not be the first, nor the last, person to add one too many spaces into the command. This example will hose your system:

Note the space between the first / and home.

You have been warned.

Changing the File Owner and Group

A file’s owner can be changed using the chown command. For example, to change the foobar file’s owner to tux:

To change the foobar file’s group to penguins, you could use either chgrp or chown with special syntax:

Finally, to change the foobar file’s owner to tux and the group to penguins with a single command, the syntax would be:

Note that, by default, you must use sudo to change a file’s owner or group.

Volume Permissions with umask

This section has been moved to: Fstab#Options

ACL (Access Control List)

Posix ACLs are a way of achieving a finer granularity of permissions than is possible with the standard Unix file permissions. See the full page on ACLs FilePermissionsACLs

Setting up ACL

  1. Install the acl package:
  1. Remount partition(s) on which you want to enable ACL. For example:

The commands, setfacl and getfacl, set and read ACLs on files and directories.

Example Usage

  1. Create a directory with full permission:

GUI ACL Editor

The Eicielhttp://apt.ubuntu.com/p/eiciel package allows GUI access to ACLs through the Nautilus file manager.

Useful ACL Resources

File removal

To remove a file you cannot delete use

where filename is the name and path of the file to delete.

Nota bene: Be very careful when using the command rm with the -rf option since -r makes the file removal recursive (meaning it will remove files inside of folders) and -f will force the removal even for files which aren’t writable. To play it safe, please consider typing in the absolute path to the file

to prevent any mishaps that can/will occur. It takes longer to type but you can’t put a price on peace of mind. See the rm man page for details.

Sticky Bit

The sticky bit applies only to directories, and is typically used on publicly-writeable directories. Within a directory upon which the sticky bit is applied, users are prevented from deleting or renaming any files that they do not personally own.

To add or remove the sticky bit, use chmod with the «t» flag:

The status of the sticky bit is shown in the other execute field, when viewing the long output of ls. «t» or «T» in the other execute field indicates the sticky bit is set, anything else indicates it is not.

Как открывать программы с рут-доступом в Linux

Иногда требуется открытие программ с привилегиями root в Linux из-за характера безопасности платформы. Дело в том, что некоторые операции невозможны с обычным пользователем (на ум приходят такие вещи, как управление файлами в корневой папке, форматирование жесткого диска или редактирование системных файлов).

Есть несколько способов открыть программы с root-доступом в Linux. В этом руководстве мы покажем вам, как это сделать. Однако имейте в виду: чтобы запускать программы с учетной записью Root, вам необходимо сначала включить ее. Если вы используете ОС Linux с отключенной учетной записью root, следуйте приведенным ниже инструкциям, чтобы узнать, как ее включить.

Включите учетную запись Root

Запустите окно терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре. Затем, если ваша система имеет права sudo, используйте команду sudo -s для входа в сеанс с повышенными привилегиями.

Затем введите passwd, чтобы принудительно сбросить пароль учетной записи Root в системе.

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

Открытые программы с Root — Терминал

Самый быстрый и обычно самый надежный способ запуска программ с привилегиями Root — это войти в Root в терминале, а затем выполнить имя программы как команду.

Получив root-доступ в сеансе терминала, вы сможете запускать программу. Так, например, если вы хотите получить доступ к файловому менеджеру Gnome с доступом root, вы должны запустить команду nautilus в терминале.

Итак, помните. Войдите в систему как Root, затем запустите приложение:

Большинство программ могут быстро запуститься с привилегиями суперпользователя, если вы являетесь пользователем root. Однако имейте в виду, что метод окна терминала не на 100% надежен. Из-за характера командной строки в Linux некоторые приложения просто не запускаются.

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

Открытые программы с рутом — Pkexec

В большинстве операционных систем Linux, когда программа должна запускаться от имени пользователя root, появляется запрос пароля. Это приглашение инструктирует пользователя ввести пароль своей учетной записи. Затем приложения запускаются с повышенными привилегиями. Запуск программ на рабочем столе таким способом стал возможным благодаря инструменту Pkexec.

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

Чтобы использовать pkexec, нажмите Alt + F2 на клавиатуре. Эта комбинация клавиш запустит окно быстрого запуска в среде рабочего стола.

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

Например, чтобы запустить диспетчер разделов Gparted от имени пользователя root, вы должны:

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

Не хотите использовать панель быстрого запуска на рабочем столе Linux? Также можно запускать приложения как Root через инструмент pkexec в терминале. Просто запустите сеанс терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T. Затем выполните:

Открытые программы с рутом — Gksu

Задолго до того, как инструмент Pkexec занял его место, появился Gksu. Он работает так же, как Pkexec, но разработчики дистрибутива Linux решили отказаться от него, так как он также не работает. Тем не менее, если вам не нравится использовать Pkexec и вам нужен способ запускать программы с правами root, он все равно работает.

К сожалению, Gksu не установлен во многих репозиториях программного обеспечения современных дистрибутивов Linux, так как он не так часто используется. На данный момент Debian 7-9 поддерживает его, OpenSUSE LEAP (42.3 и 15.0) и Tumbleweed поддерживают его. Ubuntu 16.04 LTS тоже.

Чтобы установить его, откройте терминал и введите команды, соответствующие вашей операционной системе.

Ubuntu 16.04 LTS
Debian
OpenSUSE LEAP 15.0
OpenSUSE LEAP 42.3
OpenSUSE Tumbleweed

Когда приложение Gksu настроено в вашей системе Linux, оно должно быть готово к использованию. Чтобы запустить программу как Root, нажмите Alt + F2 на рабочем столе. Появится панель запуска. На панели напишите gksu, а затем программу, которую хотите запустить. Например, чтобы запустить файловый менеджер XFCE4, вы должны:

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

Вы также можете запустить приложение прямо из терминала как Root с тем же синтаксисом.

Редактирование файла с правами администратора (root)

Редактирование файлов с правами администратора небезопасно и может повредить систему при неправильном использовании. Будьте внимательны при редактировании файлов с правами администратора.

Для редактирования файлов с правами администратора, запустите gedit из терминала, введя:

При использовании команды sudo , необходимо правильно ввести пароль, прежде чем gedit откроется.

В качестве альтернативы команде sudo , можно получить права администратора, введя:

Затем нужно запустить gedit , введя команду gedit .

После запуска gedit с правами администратора, он будет обладать правами администратора, пока вы не закроете его.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *