
Пожалуйста, не спрашивайте почему, но возможно ли это сделать?
p/s: Я знаю, что это нехорошо, скажем так, кто-то из высшего руководства, кто не разбирается в компьютерах, хочет что-то вродеконтрольчерез сервер.
решение1
Не делайте этого... вы можете либо дать им пароль root, либо выполнить команду sudo passwd root
(предполагается, что sudo настроен на использование пароля пользователя или на отсутствие пароля, и что passwd — это команда, которую sudo разрешила запускать этому пользователю).
решение2
sudo
это швейцарский армейский нож индивидуальных разрешений. Вы можете попросить пользователя запустить
sudo /usr/bin/passwd root
Чтобы увидеть, как это можно реализовать, вот соответствующий пример из страницы руководства sudoers(5).
pete HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
The user pete is allowed to change anyone's password except for root on the
HPPA machines. Note that this assumes passwd(1) does not take multiple
usernames on the command line.
Конечно, вам придется инвертировать логику, чтобы достичь своих целей. Итак, вы выполните visudo
, и добавьте строку типа
user ALL = /usr/bin/passwd root
к /etc/sudoers
.
решение3
Возможно, вы можете добавить эту строку в файл sudoer (используя visudo
), заменив phunehehe
ее именем пользователя.
phunehehe localhost = NOPASSWD: /usr/bin/passwd
Я не знаю, нарушает ли это ваше положение «обычного пользователя», потому что после этого у него/нее появляется очень много власти.
EDIT: согласно комментарию xenoterraside :)
решение4
Если вы не доверяете владельцу учетной записи root, то, вероятно, нет способа помешать пользователю root удалить это специальное разрешение. Если вы доверяете пользователю root, то просто спросите у него текущий пароль.