Этот ответ все еще должен помочь вам, даже принимая во внимание изменения в вопросе. В частности, учетная запись, созданная с помощью,
--disabled-login
не имеет установленного пароля и других средств входа в систему , но все же должна быть возможность использовать sudo
(объяснено ниже) для запуска команд или оболочки в качестве пользователя. Это, на самом деле, то, как
root
учетная запись настроена в Ubuntu.
Есть несколько проблем с командой su - irssi
.
Эта команда пытается запустить оболочку, принадлежащую пользователю с именемirssi
.
Это потерпит неудачу, если:
- Там нет
irssi
пользователя.
- В
irssi
учетной записи пользователя отключен.
- В
irssi
учетной записи пользователя отключен для интерактивного входа в систему . Иногда учетной записи разрешается использовать такие службы, как FTP, но запрещено входить в систему, настроив в своей оболочке что-то, что немедленно завершается, например /bin/false
. Тогда логин сразу заканчивается, без сообщения.
- Введенный вами пароль неверен для
irssi
пользователя.
-
Флаг делает его таким образом , оболочка имитирует первоначальный оболочку входа в систему - то есть, так что это действительно очень похоже на лесозаготовки , как irssi
. Без -
флага, если su
команда выполнена успешно, вы все равно получите оболочку, которой владеете irssi
, но переменные окружения вроде HOME
бы не изменились.
Если вы вместо этого хотите запустить вызываемую программуirssi
, вы должны вызывать по- su
другому:
su username - -c irssi
Если вы не укажете , это то же самое, что --it пытается выполнить команду от имени пользователя root.-c username
-c root
В качестве альтернативы вы можете запустить оболочку и затем выполнить команду :
- Запустите оболочку с .
su username -
- В оболочке запустите команду (
irssi
).
- Если вы сделали, оставьте оболочку, запустив
exit
.
Запуск команд как root
Если вы хотите запустить irssi
как root
, su
это не способ сделать это. Корневые входы в систему по умолчанию отключены в Ubuntu, и лишь в редких случаях есть причина их повторного включения . Если вы включили root
вход в систему, то вы сможете использовать, su
чтобы стать root
. Причина это ненужно включить root
учетную запись в том , что, независимо от того , или нет у вас, вы можете запускать команды , как root
с sudo
.
Когда вы запускаете команды с sudo
, вы вводите свой пароль, а не пароль пользователя, от имени которого вы хотите, чтобы команда запускалась. Только администраторы могут запускать произвольные команды, как root
с sudo
( sudo
конечно, если вы не перенастроите, чтобы другие могли это делать). Таким образом, пользователь, которому не разрешено администрировать систему, не может запускать команды, как root
со своим собственным паролем.
Для запуска irssi
как root
с sudo
:
sudo irssi
И вы бы вводили свой пароль при появлении запроса, а не root
s.
Кроме того, какой пароль вы вводите, это делает то же самое, что и:
su -c irssi
За исключением того, что sudo
версия может быть успешной, потому что она не требует включения root
учетной записи.
Как и с su
, вы можете использовать sudo
для запуска команд, как другой, не root
пользователь . Для запуска irssi
как username
с sudo
:
sudo -u username irssi
Если вы хотите sudo
вести себя как в su -
отношении -HOME
то есть, вы хотите использовать HOME
переменные окружения целевого пользователя , вы можете запустить sudo
с -H
флагом:
sudo -H irssi
sudo -H -u username irssi
Вы можете начать целую оболочку с sudo
, как вы можете с su
. За исключением пароля, который вы вводите, эта команда имеет тот же эффект, что и su
:
sudo -s
И эта команда имеет тот же эффект, что и su -
:
sudo -i
( i
Обозначает начальную оболочку входа .)
Вы также можете запустить оболочку как другой пользователь:
sudo -u username -s
sudo -u username -i
Дальнейшее чтение на sudo
Чтобы узнать больше оsudo
, взгляните на:
Почему gksu
работал, когда su
нет?
gksu
наверное работал бегомsudo
.
gksu
это интерфейс для обоих su
и sudo
. В Ubuntu он по умолчанию используется sudo
(поскольку в Ubuntu su
обычно не используется для становления root
и является лишь второстепенным способом стать другим, не являющимся root
пользователем).
Вы можете gksu
использовать su
в качестве внешнего интерфейса, запустив gksu --su-mode
.
Вы можете узнать, gksu
находится ли он в su
режиме или sudo
режиме, и (если хотите) изменить эту настройку, запустив gksu-properties
. Это настройка для каждого пользователя.
Когда gksu
находится в sudo
режиме, он ведет себя так же, как gksudo
.
Дальнейшее чтение на gksu
Анализ после решения
В конечном итоге вы обнаружили, что смогли выполнить необходимую команду с помощью:
sudo -u username irssi
(Какой из методов, перечисленных выше.)
В конечном итоге вы сообщили о двух фрагментах информации, которых достаточно, чтобы объяснить, почему другие методы потерпели неудачу, но это удалось:
username
Счет был создан с --disabled-login
флагом, что делает его нет без пароля (и никаких других средств авторизации). Отсутствие пароля не означает, что можно войти с пустым паролем . Это означает, что для аутентификации пароля недостаточно. В сочетании с устранением других средств аутентификации это средство username
вообще не может аутентифицироваться.
Таким образом, все su
основанные решения отсутствуют. sudo
может работать, хотя, потому что sudo
вы не аутентифицируетесь как пользователь, которого вы собираетесь выдать себя за другого. Вместо этого вы должны быть авторизованы, чтобы выдавать себя за них, и вы аутентифицируетесь как вы (то есть, вводите свой собственный пароль, а не их).
Можно установить пароль для учетной записи, который устраняет этот барьер для входа в систему:
sudo passwd username
Однако может быть веская причина, по которой пользователю не разрешено входить в систему. Например, если бы этому пользователю было разрешено войти и войти в систему графически, возникли бы серьезные проблемы из-за того, что пользовательская среда или привилегии были плохо приспособлены для запуска приложений X11. ? Если бы этот пользователь мог войти в систему, это позволило бы войти в систему удаленно как этот пользователь (для компьютеров, на которых вы выставили сетевые службы)?
Если вы когда-нибудь захотите отключить его:
sudo passwd -dl username
Связано: Повторное отключение root
учетной записи после ее временного включения.
username
Счет имеет в /bin/false
качестве своей оболочки.
Когда оболочка, подобная bash
вашей, запускается как ваша оболочка входа в систему, она настраивает вашу среду и дает вам интерактивное приглашение для управления машиной.
С /bin/false
другой стороны, при запуске он ничего не делает и сообщает об ошибке . ( /bin/true
ничего не делает и сообщает об успехе.)
false
И true
команды полезны в сценариях и для различных целей тестирования, но и для отключения учетной записи , так что , когда кто - то входит в систему , их Логин сессии немедленно заканчивается. Таким образом, пароль (или другие средства аутентификации) могут быть включены, и люди могут войти, но не для доступа к оболочке . Например, если есть FTP-сервер, они могут получить доступ к своей учетной записи через FTP. Если есть SSH-сервер, они не смогут получить оболочку через SSH, но они все равно могут использовать sftp
и scp
для передачи файлов.
Поскольку username
Логин «S оболочка была нефункциональной команды типа , , и не мог работать.su username
su - username
sudo -u username -s
sudo -u username -i
Но команды, которые не дают оболочки, любят или могут работать.sudo -u username command
su username -c 'command'
Поскольку команды могут быть запущены, вы можете изменить пользовательскую оболочку входа на что-то функциональное:
sudo chsh -s /bin/bash username
Однако это также следует делать с осторожностью, так как может быть веская причина отключить интерактивные входы в систему для пользователя.
Здесь username
оба отключили пароль и «отключили» оболочку. Отсутствие какого-либо рабочего пароля препятствовало работе всех su
решений на основе, в то время как отсутствие работающей интерактивной оболочки входа в систему препятствовало работе всех решений, порождающих оболочку (кроме ручного вызова оболочки, например ).sudo -u username bash
sudo -u username command
это то, что осталось.