Su не работает в debian

Обновлено: 08.07.2024

После имени пользователя можно указать дополнительные аргументы, которые будут переданы регистрационной оболочке пользователя. В частности, аргумент -c заставит большинство оболочек считать следующий аргумент как команду. Команда будет выполнена оболочкой, указанной в файле /etc/passwd, которая является регистрационной для указываемого пользователя.

Вы можете использовать параметр -- чтобы отделить параметры su от параметров, которые передаются оболочке.

Текущее окружение передаётся новой оболочке. Значение $PATH сбрасывается в значение /bin:/usr/bin для обычных пользователей или в /sbin:/bin:/usr/sbin:/usr/bin для суперпользователя. Эти значения можно изменить в переменных ENV_PATH и ENV_SUPATH в файле /etc/login.defs.

Субсистемный вход в систему можно распознать по наличию символа «*» в начале регистрационной оболочки. Заданный домашний каталог будет использован как корень новой файловой системы, в которой регистрируется пользователь.

-c, --command КОМАНДА

Указать команду, которая будет запущена оболочкой в виде параметра для -c.

The executed command will have no controlling terminal. This option cannot be used to execute interactive programs which need a controlling TTY.

-, -l, --login

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

When - is used, it must be specified before any username. For portability it is recommended to use it as last option, before any username. The other forms (-l and --login) do not have this restriction.

-s, --shell ОБОЛОЧКА

Запущенная оболочка выбирается из (в порядке убывания приоритета):

Если используется --preserve-environment, то оболочка задаётся переменной окружения $SHELL. Оболочка, указанная в записи файла /etc/passwd для заданного пользователя. /bin/sh, если ни одной оболочке не было найдено с помощью методов, указанных выше.

Если заданный пользователь имеет ограниченную оболочку (то есть оболочка в поле пользовательской записи в файле /etc/passwd отсутствует в файле /etc/shells), то параметр --shell или переменная окружения $SHELL не будут учтены, если su не была запущена суперпользователем.

-m, -p, --preserve-environment

сбрасывается в значение ENV_PATH или ENV_SUPATH (смотрите далее) из /etc/login.defs; сбрасывается в значение «<space><tab><newline>», если она установлена.

Если заданный пользователь имеет ограниченную оболочку, то этот параметр не сработает (если su не запускается суперпользователем).

Заметим, что поведение окружения по умолчанию таково:

Переменные окружение $HOME, $SHELL, $USER, $LOGNAME, $PATH и $IFS сбрасываются. Если параметр --login не указан, то окружение копируется, за исключением переменных, перечисленных выше. Если параметр --login указан, то переменные окружения $TERM, $COLORTERM, $DISPLAY и $XAUTHORITY копируются (если они установлены). Дополнительные переменные окружения могут быть установлены из модулей PAM. Данная версия программы su может быть собрана с разными параметрами и только некоторые из них смогут быть использованы на любой машине. На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

CONSOLE_GROUPS (строка)

Список групп для добавления к набору пользовательских дополнительных групп при входе с консоли (определяемой переменной CONSOLE). По умолчанию не указана.

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

DEFAULT_HOME (логический)

Определяет, можно ли войти в систему, если нельзя выполнить cd в домашний каталог. По умолчанию «no».

Если равно yes, то пользователь будет попадать в корневой каталог (/), если невозможно выполнить cd в его домашний каталог.

ENV_PATH (строка)

If set, it will be used to define the PATH environment variable when a regular user login. The value is a colon separated list of paths (for example /bin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/bin:/usr/bin.

ENV_SUPATH (строка)

If set, it will be used to define the PATH environment variable when the superuser login. The value is a colon separated list of paths (for example /sbin:/bin:/usr/sbin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/sbin:/bin:/usr/sbin:/usr/bin.

SULOG_FILE (строка)

Если определена, то любая активность su будет протоколироваться в этот файл.

SU_NAME (строка)

Если определена, то выводится имя команды когда работает «su -». Например, если значение равно «su», то «ps» покажет команду как «-su». Если не определена, то «ps» покажет имя запускаемой оболочки например как «-sh».

SYSLOG_SU_ENAB (логический)

Включить протоколирование «syslog» действий su — дополнительно к протоколированию в файле sulog. При успешном выполнении su возвращает код выхода команды, которая была выполнена.

Если выполнение команды завершилось по сигналу, то su возвращает номер этого сигнала плюс 128.

Если su завершила команду (так как был запрос сделать это и команда не завершилась в положенное время), то su завершается с кодом 255.

То же самое, если я пытаюсь установить несколько пакетов. Что я делаю?

Если это полезная информация - я использую Debian

Это учетная запись клиента на коммерческом сервере? Если вы не являетесь владельцем сервера, что заставило вас думать, что у вас есть право устанавливать или удалять программное обеспечение? спросите у администратора Что произойдет, если вы бежите apt-cache policy sudo ? Не все дистрибутивы Linux устанавливают sudo по умолчанию (например, Debian установит sudo, если и только если вы не укажете пароль root при установке). Вы можете запустить apt-cache без прав root.

По умолчанию sudo не установлен в Debian, но вы можете установить его. Сначала включите su-mode:
su -

Установите sudo, запустив:
apt-get install sudo -y

После этого вам нужно будет поиграться с пользователями и разрешениями. Дайте право sudo своему собственному пользователю.

usermod -aG sudo yourusername

Убедитесь, что в вашем файле sudoers добавлена ​​группа sudo. Выполнить:
visudo изменить файл sudoers и добавить в него следующую строку (если он отсутствует):

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

Это должен быть принят ответ, это решило мою проблему Я получаю "su: Невозможно определить ваше имя пользователя". делать су - Спасибо @MakimLuzik. Мой - контейнер для докеров. Идеи на этой странице не являются полезными для меня. Может быть, я должен написать отдельный вопрос.

Поскольку это коммерческий сервер, у вас не будет доступа к учетной записи root и вы не сможете работать с привилегиями root. Это означает, что вы не сможете sudo ни запускать, ни устанавливать пакеты. То, что вы можете попытаться сделать, это:

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

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

su и sudo две разные, но связанные команды. Это необычно для sudo не быть установленным, но это может просто не быть на вашем Пути. Попробуй /usr/bin/sudo command .

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

Это попросит вас root ввести пароль пользователя, после чего вам, вероятно apt install sudo , следует выйти из корневой оболочки, а затем продолжить работу в обычном режиме.

Имейте в виду, что в отличие от вас sudo , который запрашивает ваш пароль, su попросит вас ввести пароль root .

Как восстановить доступ к Debian Linux в случае проблем с sudo или утратой root-пароля


В некоторых ситуациях может получиться так, что мы потеряем административный доступ к серверу на базе Debian GNU/Linux. Например, к такому исходу могут привести некорректные действия администратора по настройке механизма sudo (ошибки при правке файлов /etc/sudoers и/или /etc/sudoers.d/* ) и, как следствие, получение ошибки «Username is not in the sudoers file» при любых дальнейших попытках использования sudo. Иногда бывают ситуации, когда локальный доступ к серверу есть, а данные административной учётной записи недоступны и требуется восстановить административный доступ к серверу.

Загрузка в recovery mode

Для того, чтобы попасть в меню загрузки, в процессе запуска ОС Debian нажимаем кнопку Shift. В появившемся меню загрузчика GRUB выбираем расширенный режим загрузки:


Затем выбираем интересующее нас ядро Linux в режиме recovery mode…



В таком случае мы можем прибегнуть к приёму изменения параметров загрузки ядра.

Нестандартная загрузка

В процессе загрузки в GRUB выбираем в списке ядер нужное нам ядро (режим recovery mode здесь уже не важен) и нажимаем «e» для редактирования параметров загрузки.


Находим строку начинающуюся с «linux …»


В конце строки меняем значение « ro » на « rw », а в самом конце строки дописываем вызов оболочки « init=/bin/bash ».


После чего для продолжения загрузки жмём F10


Дополнительные источники информации:

Проверено на следующих конфигурациях:


Автор первичной редакции:
Алексей Максимов
Время публикации: 13.06.2018 15:45

Они прописаны. Читайте по ссылке. И нет, это не специфичное для Debian поведение.

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Не понял, как это относится к сабжу, но вместо него давно уже pepperflashplugin-nonfree.

в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик

Нет. Такое поведение когда-то было нормальным едва ли не для всех дистрибутивов. Потом его практически везде поменяли, теперь вот в Debian зачем-то вернули (не вникал, зачем, и меня не парит, потому что я ещё в те времена привык к su - , а вообще предпочитаю sudo).

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

Воспользовался. 10+ лет назад действительно было море, сейчас — лишь малая доля от того, поскольку нынче большинство использует sudo. Например:
Проблемы с настройками bash
Решено: Konsole
проблемы с su %)
РЕШЕНО не работает команда ifconfig

Читайте также: