эй, я вхожу в свой ssh-клиент как пользователь root, так как я не знаю, как это сделать по-другому, а затем, почему я пытаюсь запустить этот скрипт, используя старый простой
./filename.ext
создается журнал ошибок, в котором говорится, что он не может быть запущен от имени пользователя root. Мне было интересно, как я могу сделать так, чтобы он работал не от имени пользователя root? Я использую дебиан
Спасибо :)
sudo -u <another_user> /path/to/filename.ext
Первый:
Вход в систему как root - это ПЛОХАЯ ИДЕЯ - Однажды вы сделаете опечатку, которая будет довольно безобидной для обычного пользователя, но может быть катастрофической для пользователя root.
Вы должны создать для себя обычного пользователя без полномочий root и войти в систему как этот пользователь. Процедуры для этого варьируются от распространения к распространению. Этот пользователь также должен иметь возможность запускать указанную команду (поскольку он не является пользователем root), что решает проблему в вашем вопросе.
Во-вторых, и частично связанные: как предлагали другие, рассмотрите судо для запуска всего, что вам нужно запустить от имени пользователя root (почти в каждом дистрибутиве Linux он установлен по умолчанию, или вы можете получить его из диспетчера пакетов). Это потребует некоторой настройки (вам нужно будет добавить пользователя в sudoers
файл, или в некоторых дистрибутивах Linux просто добавляя их в admin
группы хватит.
В качестве альтернативы вы можете просто использовать su
команда для переключения на root при необходимости. Этому не хватает гибкости sudo, но не требуется настройка в системах Linux - см. страница руководства для su
Больше подробностей.
В общих чертах вам нужно будет создать пользователя без полномочий root, а затем заставить его запускать программу.
adduser fred
mkdir /home/fred
chown fred:users /home/fred
passwd fred
как только вы это сделаете, вы можете попробовать запустить свою команду с судо
sudo -u fred ./filename.ext
В общем, вам будет лучше создать и использовать учетную запись без полномочий root, а затем использовать sudo для запуска команд, требующих привилегий root.
Взгляни на судо.
Я бы посоветовал sudo, если бы вы были пользователем и вам нужно было запускать скрипт от имени пользователя root (sudo требует настройки перед его использованием).
И наоборот, будучи root и меняя права на обычного пользователя: используйте "su".
su -c "./filename.ext" $username
или получить оболочку входа с правами пользователя:
su - $username
(изменение $ username на желаемое имя пользователя)