Я помилково ввійшов
chsh -s /usr/bin
замість
chsh -s /bin/bash
і тепер я не можу увійти до кореневої оболонки, як запустити bash shell як root вручну?
sudo vipw
роботу?
Я помилково ввійшов
chsh -s /usr/bin
замість
chsh -s /bin/bash
і тепер я не можу увійти до кореневої оболонки, як запустити bash shell як root вручну?
sudo vipw
роботу?
Відповіді:
Хоча root не має доступу, користувач групи sudo все ще може виконувати привілейовані команди - здається, помилка не в sudo, а в іншому місці sudo chsh
команди (наприклад, chsh error).
Як таке, судо, мабуть, працює.
Файл passwd можна редагувати за допомогою:
sudo vipw
І кореневу оболонку змінювали вручну.
(перший рядок /etc/passwd
зазвичай)
root:x:0:0:root:/root:/bin/bash
Fom man vipw
Команди vipw та vigr редагують файли / etc / passwd та / etc / group відповідно. За допомогою прапора -s вони редагуватимуть тіньові версії цих файлів / etc / shadow та / etc / gshadow відповідно. Програми встановлять відповідні блокування для запобігання корупції файлів.
vipw
і vigr
, дякую! Я завжди користувавсяsudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html також @tac
sudo -e
, що виконує цю функцію блокування-редагування для будь-якого редагування.
Інший варіант, якщо припустити, що у вас є доступ до іншого облікового запису, - це вручну змінити обкладинку за замовчуванням за допомогою su --shell=/bin/bash
:
-s, --shell = ПОТРІБНО
запустити SHELL, якщо / etc / shell дозволяє це
Основна перевага цього полягає в тому, що він вимагає лише доступу до іншого облікового запису, а не іншого привілейованого .
З міркувань безпеки входите в систему, будь то текстові чи графічні та утиліти, su
і sudo
які дозволяють виконувати команди як інший користувач, всі виконують ці команди через оболонку цільового користувача. Якщо оболонка цільового користувача не функціонує, ви побачили результати :-(
Якщо у вас все-таки функціонує ще функціональна коренева оболонка або щось подібне до встановленого бінарного файлу setuid або чогось, що дозволяє вам обійти це рішення, перезавантаження та виправлення проблеми за допомогою системи порятунку або живого зображення - це, мабуть, найкраща ставка.
Завантажте систему порятунку, встановіть кореневу файлову систему вашої реальної системи десь, скажімо /mnt/foo
, та відредагуйте, /mnt/foo/etc/passwd
щоб виправити оболонку. Збережіть, відключіть, і ви закінчите.
/etc/passwd
це непростий текст? Я цього не бачив принаймні, як, наприклад, десятиліття. Це все-таки річ у деяких системах? У будь-якому випадку, я думаю, chroot /mnt/foo chsh -s /bin/bash
може зробити трюк у такому випадку?
Додайте init=/bin/bash
до командного рядка ядра (якщо завантажуєтесь із grub, натисніть, e
щоб змінити запис завантаження), і у вас буде оболонка bash, що працює як root, навіть не вказуючи пароль. Ваша коренева файлова система, ймовірно, все-таки буде змонтована лише для читання, тому спочатку вам потрібно буде її перезавантажити, потім ви можете змінити оболонку назад chsh
.
sudo usermod -s /bin/bash jdoe
змінить оболонку jdoe на bash
. Потім ви можете sudo egrep jdoe /etc/passwd
перевірити.