Я работаю над бездисковыми кластерами Linux. Я следовал инструкциям, как описано здесь. Я сделал эти шаги:
1- Installed a pxe server on server pc.
2- Installed ubuntu to a client pc.
3- Configured and installed all programs I need on client pc.
4- Copied all OS files(on client pc) to NFS share point.
5- Booted diskless pc via pxe server.
Работает. Но после входа в систему моей учетной записи, я получил это сообщение об ошибке: "Sudo: Должен Быть Корень Setuid". Таким образом, я не могу использовать /usr/bin/sudo
. Как я могу зафиксировать это? Я должен изменить некоторые файлы на файлах ОС, которые я скопировал в сервер PXE?
Я нашел проблему. Я скопировал файлы ОС с клиентского ПК на ПК сервера. Я изменил полномочия (chmod 777 -R /pathToOsFiles
) на этих файлах на сервере. Тогда я получил это сообщение об ошибке (Sudo: Must Be Setuid Root
) на бездисковом ПК. Я не мог зафиксировать его. Я использовал каждый опции (755, 744...), но ничто не изменилось.
Все работает правильно после скопированных файлов ОС с клиентского ПК на ПК сервера снова. Но на этот раз я не изменил полномочия. Если кто-то сталкивается с той же проблемой, я могу сказать, что это не касается полномочий сервера после копии файлы ОС.
Еще одна вещь: Имена пользователей могут отличаться на клиентском ПК ПК и сервера, но SUID должен быть тем же на обоих. Иначе Вы будете видеть то же сообщение об ошибке.
Эта ошибка указала, что/usr/bin/sudo файл не имеет набора атрибута setuid. Атрибут setuid означает что, когда Вы выполняетесь, как будто Вы были пользователем, который владеет файлом. Так, sudo должны принадлежать корню и иметь этот набор, или это не в состоянии позволить Вам, получают полномочия пользователя root. Можно установить этот атрибут путем выполнения chmod u+s /usr/bin/sudo
при выполнении как корень. Вы, возможно, также должны изменить владельца для укоренения (chown root:root /usr/bin/sudo
).