Wie kann ich festlegen, dass die Datei nur für andere Benutzer ausführbar, aber nicht lesbar / beschreibbar ist? Der Grund dafür ist, dass ich etwas mit meinem Benutzernamen ausführe, aber das Kennwort nicht preisgeben möchte. Ich habe es versucht :
chmod 777 testfile
chmod a=x
chmod ugo+x
Bei der Ausführung als anderer Benutzer wird mir immer noch die Berechtigung verweigert.
linux
security
permissions
executable
c0mrade
quelle
quelle
Antworten:
Sie benötigen Lese- und Ausführungsberechtigungen für ein Skript, um es ausführen zu können. Wenn Sie den Inhalt des Skripts nicht lesen können, können Sie es auch nicht ausführen.
quelle
Die vorherigen Aussagen haben eine halbe Wahrheit. Sie können ein Skript so einrichten, dass es vom Benutzer nicht gelesen, aber dennoch ausführbar ist. Der Vorgang ist etwas langwierig, aber Sie können eine Ausnahme in / etc / sudoer machen, damit der Benutzer das Skript vorübergehend als Sie selbst ausführen kann, ohne zur Eingabe eines Kennworts aufgefordert zu werden. Beispiel unten:
Einige Skripte, die ich mit einem Benutzer teilen möchte:
Erstellen Sie ein Shell-Skript, das 'somescript.pl' aufruft, und speichern Sie es in / bin /:
OPTIONALER SCHRITT Erstellen Sie einen Symlink zu somescript.sh in / bin /:
Stellen Sie sicher, dass das Shell-Skript für den Benutzer lesbar / ausführbar ist (kein Schreibzugriff):
Machen Sie eine Ausnahme in / etc / sudoer, indem Sie die folgenden Zeilen hinzufügen:
Beweis in der Pudding:
Diese Methode sollte besser sein als der Versuch, sie zu verschleiern
Filter::Crypto
oderPAR::Filter::Crypto
oderAcme::Bleach
die von einem bestimmten Benutzer rückgängig gemacht werden kann. Gleiches gilt für das Kompilieren Ihres Skripts in Binärform. Lassen Sie mich wissen, wenn Sie mit dieser Methode etwas falsch finden. Für fortgeschrittene Benutzer möchten Sie möglicherweise den Abschnitt User_Alias vollständig entfernen und SCRIPTUSER durch '% groupname' ersetzen. Auf diese Weise können Sie Ihre Skriptbenutzer mitusermod
Befehl verwalten.quelle
Wenn Sie andere Benutzer ein Programm ausführen lassen, können sie alles wissen, was das Programm tut, ob die Programmdatei lesbar ist oder nicht. Sie müssen lediglich auf einen Debugger (oder ein debuggerähnliches Programm wie
strace
) verweisen . Eine ausführbare Binärdatei kann ausgeführt werden, wenn sie ausführbar und nicht lesbar ist (ein Skript kann dies nicht, da der Interpreter das Skript lesen muss), dies gibt Ihnen jedoch keine Sicherheit.Wenn Sie möchten, dass andere Benutzer Ihr Programm als Black Box ausführen können, ohne dass sie genau sehen, was das Programm tut, müssen Sie Ihrem Skript erhöhte Berechtigungen erteilen: Legen Sie es für Ihren Benutzer fest. Nur root kann Debugging-Tools für setuid-Programme verwenden. Beachten Sie, dass das Schreiben sicherer Setuid-Programme nicht einfach ist und die meisten Sprachen nicht geeignet sind. siehe Lassen Sie setuid auf Shell - Skripten für weitere Erklärungen. Wenn Sie ein Setuid-Programm schreiben möchten, empfehle ich dringend Perl, das über einen Modus (Taint-Modus) verfügt, der explizit sichere Setuid-Skripte ermöglichen soll.
quelle
Sie können Dateiberechtigungen mit dem Befehl chmod festlegen. Sowohl der Root-Benutzer als auch der Dateieigentümer können Dateiberechtigungen festlegen. chmod hat zwei Modi, symbolisch und numerisch.
Zunächst entscheiden Sie, ob Sie Berechtigungen für den Benutzer (u), die Gruppe (g), andere (o) oder alle drei (a) festlegen. Anschließend fügen Sie entweder eine Berechtigung (+) hinzu, entfernen sie (-) oder löschen die vorherigen Berechtigungen und fügen eine neue hinzu (=). Als Nächstes entscheiden Sie, ob Sie die Leseberechtigung (r), die Schreibberechtigung (w) oder die Ausführungsberechtigung (x) festlegen. Zuletzt teilen Sie chmod mit, welche Dateiberechtigungen Sie ändern möchten.
Hier einige Beispiele.
Löschen Sie alle Berechtigungen, aber fügen Sie Leseberechtigungen für alle hinzu:
Nach dem Befehl lauten die Berechtigungen der Datei -r - r - r--
Ausführungsberechtigungen für Gruppe hinzufügen:
Jetzt wären die Berechtigungen der Datei -r - r-xr--
Fügen Sie Schreib- und Ausführungsberechtigungen für den Eigentümer der Datei hinzu. Beachten Sie, wie Sie mehrere Berechtigungen gleichzeitig festlegen können:
Danach lauten die Dateiberechtigungen -rwxr-xr--
Entfernen Sie die Ausführungsberechtigung sowohl vom Eigentümer als auch von der Gruppe der Datei. Beachten Sie erneut, wie Sie beide gleichzeitig einstellen können:
Jetzt sind die Berechtigungen -rw-r - r--
Dies ist eine Kurzreferenz zum Festlegen von Dateiberechtigungen im symbolischen Modus:
quelle
chmod
. Dies beantwortet die Frage nicht.