Как запускать приложения как root?


13

У меня странная проблема с Кейт и Крайт. Когда я нажимаю на Открыть файл , он падает с ошибкой сегментации.

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

Как мне запускать приложения как root в Ubuntu? Это плохая практика? Какова цель всего корневого объекта, когда даже если нам нужно использовать root так часто, он не используется по умолчанию?


Вы можете сделать очень пагубные вещи, когда используете root для открытия редактора, поэтому, пожалуйста, не делайте этого;) 2 других решения, не требующих root: попробуйте исправить segmentation faultили использовать другой редактор (gedit - редактор gnome). kate en kwrite - это программа KDE (поэтому не Gnome).
Rinzwind

1
какие разрушительные вещи можно сделать с помощью текстового редактора. звучит безумно
l -''''''--------- '' '' '' '' '' ''

1
@ АртёмЦарионов С одной стороны, пользователь root может редактировать файлы, которые ваш компьютер использует для загрузки операционной системы или загрузки графической среды, эффективно разрушая ваш компьютер.
Аманда

Ответы:


15

Довольно просто запустить программу от имени пользователя root.

Для консольной программы используйте

sudo <program name>

Если это приложение с графическим интерфейсом

gksudo <program name>

13

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

Это имеет смысл на нескольких уровнях. Обычно веб-сервер или другой процесс, который предоставляет порт другим (возможно, злонамеренным) компьютерам, будет работать как его собственный пользователь (Apache запускается как пользователь nobody), поэтому даже если программа веб-сервера будет взломана, злоумышленник не сможет удалить мусор вся машина довольно легко. Это даже имеет смысл в основном для однопользовательских компьютеров, таких как настольные компьютеры: если другим членам вашей семьи, например, каким-то образом удастся запустить rm -rf /( НЕ запускайте это ), у них не будет разрешения удалить каждый файл в системе , например они были бы, если бы не было такого понятия, как разделение привилегий.

Есть несколько команд, которые вы можете использовать для повышения своих привилегий. Команда sudoсуществует для временного предоставления вам привилегий корневого уровня, когда они нужны вам для администрирования системы. Вы также можете использовать команды gksudoили su. Последний может использоваться, только если вы знаете пароль пользователя root и является хорошим вариантом, если ваша учетная запись не имеет разрешения на использование sudo.

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

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


Я сталкивался с такой ошибкой, и обычно это было связано с разрешением файла. Использование rootпохоже на взятие кувалды, чтобы расколоть арахис. Лучше определить файл и решить, будете ли вы менять владельца или разрешение по мере необходимости. Например, у меня есть adminгруппа для файлов, которые другие не должны обновлять или получать к ним доступ.
будет

5

В дополнение к предыдущему ответу, в котором говорится о sudo и gksudo, да, это определенно плохая практика - запускать программу от имени пользователя root, если только она не является административной.

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


2

Вы также можете зайти /usr/share/applicationsв ubuntu и отредактировать файл запуска приложения, которое вы пытаетесь запустить.
Как я редактировал файл github atom, обычно я использую подстановочный знак, чтобы найти файлы, как это

sudo nano atom*

Это откроет atom.desktopфайл, теперь найдите команду Exec и добавьте gksudo. Например,

Перед

Exec=/usr/share/atom/atom %U  

После

Exec=gksudo -k -u root /usr/share/atom/atom %U

Теперь, когда приложение запускается, оно запрашивает пароль root.


ну, я не могу увидеть такой файл на сервере Tomcat. Я должен запускать приложение с графическим интерфейсом таким образом: "sudo ./manager-linux-x64.run" каждый день, что, я знаю, не очень хорошая вещь. Но pkexec не работает над этим приложением.
Прабеш бхаттараи
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.