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

10

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

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

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

    
задан l--''''''---------'''''''''''' 28.10.2012 в 04:24
источник

4 ответа

12

Очень просто запустить программу с правами root.

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

sudo <program name>

Если это приложение графического интерфейса, используйте

gksudo <program name>
    
ответ дан Goddard 28.10.2012 в 04:28
12

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

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

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

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

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

    
ответ дан thirtythreeforty 28.10.2012 в 05:22
4

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

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

    
ответ дан Masroor 28.10.2012 в 04:45
1

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

sudo nano atom*

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

До

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

После

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

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

    
ответ дан Mehul 29.05.2015 в 14:04