Ich muss etwas als sudo ohne Passwort ausführen, also habe ich visudo
verwendet und dies meinem sudoers
Datei:
MYUSERNAME ALL = NOPASSWD: /path/to/my/program
Dann habe ich es ausprobiert:
$ sudo /path/to/my/program [sudo] password for MYUSERNAME:
Warum wird nach einem Passwort gefragt? Wie kann ich Befehle als root mit einem Nicht-root-Benutzer ausführen / verwenden, ohne nach einem Passwort zu fragen?
Antwort
Sie Sie haben einen weiteren Eintrag in der Datei sudoers
, die sich normalerweise unter /etc/sudoers
befindet , die auch zu Ihrem Benutzer passt. Die NOPASSWD
-Regel muss nach dieser Regel stehen, damit sie Vorrang hat.
Nachdem dies geschehen ist, sudo
fordert normalerweise ein Kennwort für alle Befehle mit Ausnahme von /path/to/my/program
an, mit dem Sie immer ausgeführt werden können, ohne nach Ihrem Kennwort zu fragen.
Kommentare
- würde dies immer noch funktionieren, wenn
/path/to/my/program
ein Python-Skript wäre? - Kann das Programm stattdessen ein Alias für Bash sein (dh in
.bashrc
)? Oder sogar ein Shell-Skript in/usr/local/sbin
? Zum Ausprobieren. - Nikos – nein, es kann kein Alias sein. Es muss auf einen echten Weg hinweisen.
- Sudoers? wo ist? Es ist schwierig, Ihre Antwort zu verwenden (
- @VasiliiSuricov: ‚ ist normalerweise in
/etc
, aber einige Systeme geben es an Wenn Sie ‚ es nicht finden können, versuchen Sie es mitman sudoers
. Der lokale Speicherort für diese Datei sollte durchman
Seite zum Zeitpunktsudo
wurde für dieses System erstellt.
Antwort
Wenn in /etc/sudoers
mehrere übereinstimmende Einträge vorhanden sind, verwendet sudo den letzten. Wenn Sie also einen Befehl mit einer Kennwortabfrage ausführen können, Wenn Sie einen bestimmten Befehl ohne Kennwortabfrage ausführen möchten, benötigen Sie die letzte Ausnahme.
myusername ALL = (ALL) ALL myusername ALL = (root) NOPASSWD: /path/to/my/program
Beachten Sie die Verwendung von , damit das Programm als Root, aber nicht als andere Benutzer ausgeführt werden kann. (Geben Sie nicht mehr Berechtigungen als das erforderliche Minimum an, es sei denn, Sie haben die Auswirkungen durchdacht.)
Hinweis für re Aders, die Ubuntu nicht ausführen oder die Standard-Sudo-Konfiguration geändert haben (Ubuntus Sudo ist standardmäßig in Ordnung) : Das Ausführen von Shell-Skripten mit erhöhten Berechtigungen ist riskant. Sie müssen von einer sauberen Umgebung aus starten (sobald die Die Shell wurde gestartet, es ist zu spät (siehe Setuid für Shell-Skripte zulassen ), daher benötigen Sie sudo, um dies zu erledigen. Stellen Sie sicher, dass Sie Defaults env_reset
in /etc/sudoers
haben oder dass diese Option die Standardeinstellung für die Kompilierung ist (sudo sudo -V | grep env
sollte Reset the environment to a default set of variables
) enthalten.
Kommentare
- ex, um mit sudo von jhon root zu werden su an no pass —– > john ALL = (ALL) NOPASSWD: / bin / su
- @adrian Wenn Sie beliebige Befehle als zulassen möchten root, machen Sie das
john ALL=(ALL) NOPASSWD: all
. Es macht keinen Sinn, ‚ übersu
zu gehen. - Frage: Sollte ich die Berechtigungen meines Shell-Skripts ändern? damit es aus Sicherheitsgründen nur vom Root-Benutzer geändert und gelesen werden kann? Ich ‚ denke an einen Angreifer, der das Skript ändert und über alle Berechtigungen verfügt, ohne dass ein Kennwort erforderlich ist, damit es das tut, was er / sie möchte. Offensichtlich kann der Angreifer ‚ nicht einmal die sudoers-Datei lesen, um zu wissen, welche Skripte dieses Privileg haben, kann es aber trotzdem mit allen meinen benutzerdefinierten Skripten versuchen, sobald er den Ordner gefunden hat, in dem sie sich befinden in der Hoffnung gespeichert, dass einige erlaubt sind, oder so ähnlich.
- @JeffreyLebowski Wenn Sie eine Sudo-Regel haben, die das Skript (direkt oder indirekt) ausführt, dann ‚ Es ist wichtig, dass nur root (oder Personen, die ohnehin über Root-Rechte verfügen) in die Skriptdatei und in das Verzeichnis mit der Skriptdatei sowie in das übergeordnete Verzeichnis usw. schreiben kann. ‚ spielt keine Rolle, dass jemand die Skriptdatei lesen kann (es sei denn, sie enthält ein Kennwort oder etwas anderes, aber ‚ ist eine schlechte Idee. Wenn ‚ ein Passwort ist, sollte es sich in einer eigenen Datei befinden, andernfalls besteht ‚ zu viel Risiko, dass es versehentlich durch z. Einfügen dieses Codeabschnitts in eine Frage auf dieser Site.
- @alper Nein. Nur sehr wenige Dinge müssen neu gestartet werden. Nach dem Ändern von
sudoers
müssen Sie ‚ nichts Besonderes tun:sudo
überprüft es jedes Mal.
Antwort
WARNUNG : Diese Antwort wurde als unsicher eingestuft. Siehe Kommentare unten
Vollständige Lösung: Die folgenden Schritte helfen Ihnen, die gewünschte Ausgabe zu erzielen:
-
Erstellen Sie eine neue Skriptdatei (ersetzen Sie
create_dir.sh
durch Ihren gewünschten Skriptnamen):vim ~/create_dir.sh
Das Skript wird im Home-Verzeichnis des Benutzers erstellt.
-
Fügen Sie einige Befehle hinzu, die nur eine
root
odersudo
Benutzer kann Folgendes ausführen wie das Erstellen eines Ordners auf der Ebene des Stammverzeichnisses:mkdir /abc
Hinweis: Fügen Sie diesen Befehlen nicht
sudo
hinzu. Speichern und beenden (mit:wq!
) -
Weisen Sie ihm Ausführungsberechtigungen zu, indem Sie Folgendes verwenden:
sudo chmod u+x create_dir.sh
-
Nehmen Sie Änderungen vor, damit für dieses Skript kein Kennwort erforderlich ist.
-
Öffnen Sie die Datei:
sudo visudo -f /etc/sudoers
-
Fügen Sie am Ende die folgende Zeile hinzu:
ahmad ALL=(root) NOPASSWD: /home/ahmad/create_dir.sh
Ersetzen Sie
ahmad
durch einen beliebigen Benutzernamen. Stellen Sie außerdem sicher, dass dies die letzte Zeile ist. Speichern und beenden.
-
-
Fügen Sie nun beim Ausführen des Befehls
sudo
hinzu, bevor Sie Folgendes tun:sudo ./create_dir.sh
Dadurch werden die Befehle in der Skriptdatei ausgeführt, ohne nach einem Kennwort zu fragen.
Befolgen Sie die Anweisungen Hier erwähnte Schritte http://step4wd.com/2013/09/14/run-root-commands-in-linux-ubuntu-without-password/
Kommentare
- Es wäre besser, wenn Sie hier die relevanten Schritte angeben und den Link als Backup für detailliertere Informationen verwenden würden. Auf diese Weise behält Ihre Antwort den möglichen Wert, auch wenn dieser Link nicht mehr gültig wäre.
- Dieser Rat ist unsicher. Der
sudo
Teil vonsudo chmod u+x create_dir.sh
ist nicht erforderlich, da der Benutzer (vermutlich) Eigentümer seines Heimatverzeichnisses ist. Da der Benutzer increate_dir.sh
schreiben kann, haben Sie diesem Benutzer effektiv eine kostenlose Root-Shell zugewiesen. - @Lekensteyn Dies bedeutet auch für jedes Programm, das als Benutzer ausgeführt wird . Könnte dem Benutzer auch erlauben, alles mit sudo ohne Passwort auszuführen.
- Vermisse ich etwas? Ich glaube, dass die gesamte
chmod
nicht erforderlich ist, da Sie sich aufsudo
verlassen, um Ihre Berechtigungen zu erhöhen.
Antwort
Ich denke, Ihre Syntax ist falsch. Zumindest verwende ich Folgendes, was für mich funktioniert:
myusername ALL=(ALL) NOPASSWD: /path/to/executable
Kommentare
- Die
(ALL)
Teil ist optional, das Weglassen hat genau den gleichen Effekt.(root)
wäre zwar besser, aber seine Abwesenheit ‚ erklärt das Problem nicht. - +1 für sudo für diesen Befehl und sonst nichts! Kein Grund, das gesamte System zu beschädigen …
- @Johan: Das war bereits in Frage.
Antwort
Wenn Sie vermeiden möchten, dass sudo verwendet oder die sudoers-Konfigurationsdatei geändert werden muss, können Sie Folgendes verwenden:
sudo chown root:root path/to/command/COMMAND_NAME sudo chmod 4775 path/to/command/COMMAND_NAME
Dies Der Befehl wird als Root ausgeführt, ohne dass Sudo erforderlich ist.
Kommentare
- Wow, ich habe noch nie von dieser Lösung gehört, umwerfend
- @RyanNerd: Dies ist keine sichere Lösung. Das OP kann den Befehl jetzt nicht nur als root ohne Kennwort ausführen, sondern jeder kann den Befehl jetzt als root-Benutzer ausführen.
- “ chmod 4775 filename “ ist eine Möglichkeit. Zweitens ist “ chmod u + s Dateiname er bessere Weg zu SETUID , ohne die Berechtigungen für ganze Dateien neu zu definieren div id = „c696d5b803“>
Antwort
Wenn Sie eine Distribution wie Manjaro haben Wenn Sie sich zuerst mit einer Datei befassen müssen, die die Definition von / etc / sudoers überschreibt, können Sie sie löschen oder direkt mit dieser Datei arbeiten, um Ihre neuen Konfigurationen hinzuzufügen.
Diese Datei lautet:
sudo cat /etc/sudoers.d/10-installer
Die einzige Möglichkeit, dies zu sehen, sind Root-Berechtigungen. Sie können dieses Verzeichnis nicht ohne es auflisten. Diese Datei ist Manjaro-spezifisch. Möglicherweise haben Sie diese Konfiguration mit einem anderen Namen gefunden , aber im selben Verzeichnis.
In der Datei Ihrer Wahl können Sie die folgenden Zeilen hinzufügen, um die gewünschten Konfigurationen zu erhalten:
Authentifizierung für eine Gruppe ignorieren
%group ALL=(ALL) NOPASSWD: ALL
oder Authentifizierung für einen Benutzer ignorieren
youruser ALL=(ALL) NOPASSWD: ALL
oder Authentifizierung einer ausführbaren Datei für einen bestimmten Benutzer ignorieren
youruser ALL=(ALL) NOPASSWD: /path/to/executable
SCHNELLER HINWEIS: Sie öffnen eine Tür, um SUDO ohne Authentifizierung zu verwenden. Dies bedeutet, dass Sie ausgeführt werden können Alles, was alles von Ihrem System ändert, verwenden Sie es verantwortungsbewusst.
Antwort
Stellen Sie sicher, dass sudo nicht mit einem Alias versehen ist. Führen Sie Folgendes aus:
/usr/bin/sudo /path/to/my/program
Beispiel: Ein Shell-Alias wie dieser:
alias sudo="sudo env PATH=$PATH"
kann dieses Verhalten verursachen.
Kommentare
- Sie haben Recht, mein Kommentar war hier nicht in Ordnung, Entschuldigung . Trotzdem bin ich ‚ fasziniert – wie soll Aliasing die Verarbeitung von
sudoers
durch sudo ändern? Oder sprechen Sie davon,sudo
auf etwas umzuleiten, das diese Fehlermeldung immer druckt, um Passwörter zu scoopen? Das ist hier unwahrscheinlich … - Ich hatte das gleiche Problem wie das OP. Es stellte sich heraus, dass
alias sudo="sudo env PATH=$PATH"
in meinem~/.bashrc
enthalten war. Anstatt es nur für mich selbst zu lösen und blindlings mein Geschäft zu betreiben, habe ich meine Antwort als mögliche Lösung für alle anderen eingereicht, die diesen Thread verfolgen. - That ‚ ist in Ordnung, aber wenn es nicht offensichtlich ist (was in diesem Fall zumindest für einige Leute nicht ‚ ist), ist es gut, eine Erklärung in die Antwort aufzunehmen, um einen Kontext bereitzustellen und verhindern, dass Menschen blind magische Beschwörungsformeln verwenden. +2 (- (- 1) + +1). 🙂
Antwort
Wenn Sie Ihr Skript ausführen, müssen Sie es als .
Bearbeiten: Basierend auf Ihrem Kommentar zu einer anderen Antwort möchten Sie dies über ein Symbol ausführen. Sie müssen eine .desktop
-Datei erstellen, die Ihr Programm wie auf dem Terminal mit sudo ausführt.
Sie können auch die Verwendung von für eine visuelle Passwortabfrage.
Sie sollten wahrscheinlich die Idee in Betracht ziehen, dass Sie Dinge nicht als root ausführen sollten und dass Sie das System weiter unten ändern, damit Sie es nicht tun Root-Berechtigungen überhaupt benötigen wäre ein besserer Weg.
Kommentare
- Machen Sie keine Shell-Skripte setuid . Siehe Setuid für Shell-Skripte zulassen .
- Ich habe darüber nachgedacht, es nicht einmal zu erwähnen, weil es ‚ ist Es ist so eine schlechte Option. Ich habe es gerade gelöscht, weil ich ‚ befürchte, dass dieser Fragesteller den Rat auch mit der Warnung verwenden könnte, dass es sich um einen schlechten Rat handelt!
Antwort
Dies löste das Problem für mich (versuchte auch einige der anderen Antworten, die möglicherweise geholfen haben):
Das Skript, das ich aufgerufen habe befand sich in /usr/bin
, einem Verzeichnis, für das ich keine Schreibberechtigung habe (obwohl ich dort normalerweise keine Dateien lesen kann). Das Skript war chmodded + x (ausführbare Berechtigung), aber es funktionierte immer noch nicht. Durch Verschieben dieser Datei in einen Pfad in meinem Home-Verzeichnis anstelle von /usr/bin
konnte ich sie endlich mit sudo aufrufen, ohne ein Passwort einzugeben.
Auch etwas, das ich Zweifel (Klarstellung für zukünftige Leser): Sie müssen Ihr Skript als sudo ausführen. Geben Sie sudo
ein, wenn das Skript aufruft. Verwenden Sie sudo
nicht für den Befehl in Ihrem Skript, der tatsächlich root benötigt (in meinem Fall wird die Hintergrundbeleuchtung der Tastatur geändert). Vielleicht funktioniert das auch, aber Sie müssen es nicht und es scheint eine bessere Lösung zu sein, um dies nicht zu tun.
Kommentare
- Der zweite Absatz hatte die Antwort auf mein Problem
- @MuhammadAhmadZafar Glad es hat geholfen!
- Die Verwendung von
sudo
in einem Skript ist vollkommen in Ordnung, vorausgesetzt, Sie haben die entsprechenden Rechte (festgelegt insudoers
), um den betreffenden Befehl ohne Passwort auszuführen. Es macht die Dinge ein bisschen sicherer. - könnte diese Antwort wirklich als Schritt für Schritt umgeschrieben verwenden. ‚ So machen Sie es ‚ anstatt als Dialog mit den anderen Antworten
- @WalrustheCat Guter Punkt. Wenn ich meine Antwort noch einmal lese, denke ich, dass ich selbst ein wenig verwirrt gewesen sein könnte. Im Moment kann ich mich jedoch nicht ‚ an die genaue Situation erinnern, sodass ich ‚ nicht wirklich besser schreiben kann. Wenn Sie es herausfinden, vielleicht eine Kombination aus mehreren Antworten, senden Sie auf jeden Fall eine neue Antwort!
Antwort
Eine andere Möglichkeit besteht darin, die super Befehl zum Ausführen Ihres Skripts als
super /path/to/your/script
Wenn Sie eine binäre ausführbare Datei (z. B. die Sie aus einem C-Quellcode in eine ELF -Binärdatei kompiliert haben) – die ist kein Skript – als Root könnten Sie in Betracht ziehen, es setuid (und tatsächlich /bin/login
, /usr/bin/sudo
und /bin/su
und super
verwenden alle diese Technik). Seien Sie jedoch sehr vorsichtig, Sie könnten eine große Sicherheitslücke öffnen .
Konkret sollte Ihr Programm dies tun paranoisch codiert sein (überprüfen Sie also alle Argumente sowie die Umgebung und die äußeren Bedingungen, bevor “ “ handelt und einen potenziell feindlichen Benutzer annimmt), dann Sie könnte seteuid (2) und Freunde (siehe auch setreuid (2) ) vorsichtig verwenden () Siehe auch -Funktionen (7) & Anmeldeinformationen (7) & execve (2) …)
Sie werden Verwenden Sie chmod u+s
(lesen Sie chmod (1) ), wenn Sie eine solche Binärdatei installieren.
Aber Seien Sie sehr vorsichtig .
Lesen Sie viele Dinge über setuid , einschließlich Advanced Linu x Programmieren , bevor Sie so etwas codieren.
Beachten Sie, dass ein Skript oder ein shebang -ed Ding, kann nicht gesetzt werden. Sie können jedoch (in C) eine kleine setuid-binäre Umhüllung codieren.
Beachten Sie, dass unter Linux der Anwendungscode mit dem Linux-Kernel Verwenden von syscalls (2) . Die meisten von ihnen könnten fehlschlagen, siehe errno (3) . Viele Linux-Anwendungen (z. B. GNU-Bash , GNU make , GNU gdb , GNOME ) sind Open Source: Sie dürfen den Quellcode herunterladen, studieren und dazu beitragen.
Kommentare
- Erweiterte Linux-Programmierung ist ein toter Link.
Antwort
Wenn Sie anpassen, welche Befehle über sudo
ausgeführt werden können, sollten Sie diese Änderungen idealerweise in einer separaten Datei unter /etc/sudoers.d/
anstatt die Datei sudoers
direkt zu bearbeiten. Sie sollten auch immer visudo
verwenden, um die Datei (en) zu bearbeiten. Sie sollten NIEMALS NOPASSWD
für ALL
Befehle erteilen.
Beispiel: sudo visudo -f /etc/sudoers.d/mynotriskycommand
Fügen Sie Ihre Zeile ein, die die Berechtigung erteilt: myuser ALL= NOPASSWD: /path/to/your/program
Speichern und beenden Sie dann und visudo
wird Sie warnen, wenn Sie Syntaxfehler haben.
Sie können sudo -l
ausführen, um die Berechtigungen anzuzeigen, die Ihrem Benutzer erteilt wurden, sofern dies benutzerspezifisch ist NOPASSWD
-Befehle werden VOR jedem %groupyouarein ALL=(ALL) ALL
-Befehl in der Ausgabe angezeigt, und Sie werden zur Eingabe Ihres Kennworts aufgefordert.
Wenn Sie finden Wenn Sie selbst viele dieser sudoers.d-Dateien erstellen, möchten Sie sie möglicherweise pro Benutzer benennen, damit sie leichter zu visualisieren sind. Beachten Sie, dass die Reihenfolge der DATEINAMEN und der REGELN in der Datei sehr wichtig ist. Der LETZTE, der geladen wird, gewinnt, unabhängig davon, ob er MEHR oder WENIGER zulässig ist als die vorherigen Einträge.
Sie können die Reihenfolge der Dateinamen mithilfe eines Präfixes von 00-99 oder aa / bb / cc steuern. Beachten Sie jedoch auch, dass Dateien mit keinem numerischen Präfix vorhanden sind wird nach den nummerierten Dateien geladen und überschreibt die Einstellungen. Dies liegt daran, dass die Shell abhängig von Ihren Spracheinstellungen bei der „lexikalischen Sortierung“ zuerst Sortiernummern verwendet und dann beim Sortieren in „aufsteigender“ Reihenfolge möglicherweise Groß- und Kleinbuchstaben verschachtelt.
Versuchen Sie, printf "%s\n" {{0..99},{A-Z},{a-z}} | sort
und printf "%s\n" {{0..99},{A-Z},{a-z}} | LANG=C sort
auszuführen, um festzustellen, ob Ihre aktuelle Sprache AaBbCc
etc oder ABC
dann abc
, um zu bestimmen, welches das beste „letzte“ Buchstabenpräfix verwendet werden soll be.
Antwort
Damit jeder Benutzer ein Programm als sudo ausführen kann, ohne nach einem Passwort zu fragen, können Sie die folgende Zeile hinzufügen:
%sudo ALL=(root) NOPASSWD: /path/to/your/program
in /etc/sudoers
Beachten Sie, dass % sudo es schafft.
Kommentare
- Während dies ‚ eine Möglichkeit ist, eine Sudo-Regel zu erreichen, ist dies nicht ‚ Beantworten Sie nicht die Frage, warum das Setzen des NOPASSWD-Flags für diese Regel immer noch zu einer Kennwortabfrage führte. In der akzeptierten Antwort finden Sie eine Idee, warum dies passiert ist.
Antwort
Das Folgende gilt für den Fall, dass Sie möchte einen Befehl ohne Kennwort nur ausführen, wenn er über einen bestimmten Satz von Optionen verfügt, wobei ein Teil der Optionen die Variable ist. AFAIK Es ist nicht möglich, Variablen oder Wertebereiche in sudoers-Deklarationen zu verwenden, dh Sie können den expliziten Zugriff auf command option1
, aber nicht command option2
zulassen, indem Sie:
user_name ALL=(root) /usr/bin/command option1
aber wenn die Struktur command option1 value1
ist, wobei value1
kann variieren. Für jeden möglichen Wert von value1
müssten explizite Sudoer-Zeilen vorhanden sein. Das Shell-Skript bietet eine Möglichkeit, dies zu umgehen.
Diese Antwort wurde von M. Ahmad Zafars Antwort inspiriert und behebt das dortige Sicherheitsproblem.
- Erstellen Sie ein Shell-Skript, in dem Sie sich befinden Rufen Sie den Befehl ohne
sudo
auf. - Speichern Sie das Skript in einem Ordner mit Root-Rechten (z. B.
/usr/local/bin/
) Die Datei im Root-Besitz (z. B.chown root:wheel /usr/local/bin/script_name
) ohne Schreibzugriff für andere (z. B.chmod 755 /usr/local/bin/script_name
). -
Fügen Sie Sudoern mit visudo die Ausnahme hinzu:
user_name ALL=(root) NOPASSWD: /usr/local/bin/script_name
. -
Führen Sie Ihr Skript
sudo script_name
.
Zum Beispiel möchte ich das Ruhezeitlimit für die Anzeige unter macOS ändern. Dies geschieht mit:
sudo pmset displaysleep time_in_minutes
Ich betrachte das Ändern des Ruhezeitlimits als unschuldige Aktion, die den Aufwand der Kennworteingabe nicht rechtfertigt, aber pmset
kann viele Dinge tun und ich möchte diese anderen Dinge hinter dem sudo-Passwort behalten.
Ich habe also Folgendes Skript unter /usr/local/bin/ds
:
#!/bin/bash if [ $# -eq 0 ]; then echo "To set displaysleep time, run "sudo ds [sleep_time_in_minutes]"" else if [[ $1 =~ ^([0-9]|[1-9][0-9]|1[0-7][0-9]|180)$ ]]; then pmset displaysleep $1 else echo "Time must be 0..180, where 0 = never, 1..180 = number of minutes" fi fi
Am Ende der Datei sudoers
steht die folgende Zeile:
user_name ALL=(root) NOPASSWD: /usr/local/bin/ds
Um das Zeitlimit auf 3 Minuten festzulegen, führe ich mein Skript über das normale Benutzerkonto user_name
aus:
sudo ds 3
PS Der größte Teil meines Skripts ist eine Eingabevalidierung, die nicht obligatorisch ist. Daher würde auch Folgendes funktionieren:
#!/bin/bash pmset displaysleep $1
Antwort
Alternativ können Sie Python verwenden Pudo Paket.
Installation:
user$ sudo -H pip3 install pudo # you can install using pip2 also
Nachfolgend finden Sie das Code-Snippet zur Verwendung in der Python-Automatisierung zum Ausführen von Befehlen mit Root-Rechten:
user$ python3 # or python2 >>> import pudo >>> (ret, out) = pudo.run(("ls", "/root")) # or pudo.run("ls /root") >>> print(ret) >>> 0 >>> print(out) >>> b"Desktop\nDownloads\nPictures\nMusic\n"
Nachfolgend finden Sie das cmd-Beispiel für die Ausführung von Befehlen unter Root-Berechtigungen:
user$ pudo ls /root Desktop Downloads Pictures Music
Antwort
Im Skript sudoers
, das sich in / etc / befindet, kommentieren Sie die folgende Zeile aus:
#includedir /etc/sudoers.d
Erstellen Sie eine Datei mit einem beliebigen Namen im Verzeichnis /etc/sudoers.d/ und fügen Sie den Inhalt wie in den maximalen Antworten angegeben hinzu. Wie für alle Benutzer als root
#!/bin/bash ALL ALL = NOPASSWD: /path/of/the/script/which/you/want/to/run/as/root
Dies ist die sicherste Methode, um das Skript mit root-Berechtigung auszuführen.