Ця відповідь все-таки повинна вам допомогти, навіть враховуючи зміни до питання. Зокрема, для облікового запису, створеного за допомогою
--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
Якщо ви залишитесь , це те саме, що - це спроба запустити команду як 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
.
Окрім пароля, який ви вводите, це робить те саме, що:
su -c irssi
За винятком sudo
версії може бути успішною, оскільки вона не вимагає root
ввімкнення облікового запису.
Як і у випадку su
, ви можете використовувати командиsudo
для запуску команд як інший, не root
користувач . Для запуску irssi
як username
з sudo
:
sudo -u username irssi
Якщо ви хочете , sudo
щоб вести себе як su -
по відношенню доHOME
--that, ви хочете використовувати цільового користувача 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
це те, що залишилося.