Я помилково ввійшов
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перевірити.