Frage "Sudo: Muss Setuid Root sein" Fehler nach der Anmeldung an Diskless Client


Ich arbeite an Festplattenlosen Linux-Clustern. Ich folgte den Anweisungen wie beschrieben Hier. Ich habe diese Schritte gemacht:

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.

Es klappt. Aber nach der Anmeldung in meinem Konto, habe ich diese Fehlermeldung erhalten: "Sudo: Muss Setuid Root sein". Also kann ich nicht verwenden /usr/bin/sudo. Wie kann ich das beheben? Muss ich einige Dateien auf Betriebssystemdateien ändern, die ich auf den PXE-Server kopiert habe?


1
2018-03-09 23:17


Ursprung




Antworten:


Dieser Fehler zeigt an, dass in der Datei / usr / bin / sudo das Attribut setuid nicht festgelegt ist. Das setuid-Attribut bedeutet, dass Sie ausgeführt werden, als ob Sie der Benutzer wären, der die Datei besitzt. Also muss sudo im Besitz von root sein und diese haben oder es ist nicht möglich Root-Rechte zu erlangen. Sie können dieses Attribut festlegen, indem Sie ausführen chmod u+s /usr/bin/sudo während als root ausgeführt wird. Möglicherweise müssen Sie auch den Besitzer in root ändern (chown root:root /usr/bin/sudo).


1
2018-03-09 23:47



Es kann sein, dass NFS-Dateisysteme nicht so an den Client weitergegeben werden, dass Root-Zugriff auf Dateien in ihnen möglich ist. Lesen Sie das Handbuch für weitere Informationen. Aber Vorsicht, denn es gibt einen Grund, das zu haben. Jeder kann die NFS-Volumes bereitstellen und root auf seinen eigenen Computern sein. - Anders
Ja, wenn der NFS-Server "root_squash" (der Standard) in etc / exports verwendet, wird der root-Benutzer auf dem Client "nobody" auf dem Server. Sie können dies deaktivieren, indem Sie "no_root_squash" einstellen, aber wie von @Anders erwähnt, ist dies nicht gut für die Sicherheit. Sehen manpages.ubuntu.com/manpages/precise/en/man5/exports.5.html - Tolli


Ich habe das Problem gefunden. Ich habe die OS-Dateien vom Client-PC auf den Server-PC kopiert. Ich habe die Berechtigungen geändert (chmod 777 -R /pathToOsFiles) für diese Dateien auf dem Server. Dann habe ich diese Fehlermeldung bekommen (Sudo: Must Be Setuid Root) auf einem plattenlosen PC. Ich konnte es nicht beheben. Ich benutzte alle Optionen (755, 744 ...), aber nichts änderte sich.

Nach dem Kopieren der BS-Dateien vom Client-PC auf den Server-PC funktioniert alles wieder korrekt. Aber dieses Mal habe ich die Berechtigungen nicht geändert. Wenn jemand das gleiche Problem hat, kann ich sagen, dass die Berechtigungen auf dem Server nach dem Kopieren der BS-Dateien nicht berührt werden.

Eine weitere Sache: Benutzernamen können auf Client-PC und Server-PC unterschiedlich sein, aber SUID muss auf beiden identisch sein. Andernfalls werden Sie die gleiche Fehlermeldung sehen.


1
2018-03-12 11:07



Bitte ändern Sie nicht die Rechte an 777! Je! Sie sollten nie die Rechte ändern, die andere schreiben können, es sei denn, Sie wissen wirklich, was Sie tun. Über die Rechte. In NFS die Rechte für root auf der Remote-Maschine ist in der Regel zu nobody auf deinem Server. Das ist, weil der Server nicht wirklich wissen kann, wer der Benutzer auf dem Klienten ist (konnte irgendein Programm sein). Dieses ist in den späteren Versionen von NFS geändert worden (NFS v4 denke ich). Sie können den Server so einstellen, dass er root erlaubt, aber Sie wollen nicht. In NFS v4 können der Server und der Client Benutzernamen untereinander zuordnen. Wenn nicht, verwendet es die UID und GID wie du geschrieben hast. - Anders