GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Benutzer kann Crontab nicht bearbeiten, Fehler:„/tmp/crontab.Lm34gsJV:Berechtigung verweigert“

Das Problem

Ein nicht privilegierter Benutzer kann seine Crontab-Datei nicht mit dem Befehl „crontab -e“

bearbeiten
$ crontab -e
no crontab for oracle - using an empty one
/tmp/crontab.Lm34gsJV: Permission denied
$

Die Lösung

Dies kann hauptsächlich aufgrund einer falschen Berechtigung für das /tmp-Verzeichnis passieren. Wenn ein Benutzer versucht, die Crontab mit dem Befehl „crontab -e“ zu bearbeiten, wird eine temporäre Crontab-Datei im /tmp-Verzeichnis erstellt, die die eigentliche Crontab-Datei überschreibt, wenn der Benutzer die Änderungen speichert. Falsche Berechtigungen des Gruppenbesitzers (Root) auf / können ebenfalls diesen Fehler verursachen. Um das Problem zu lösen, überprüfen Sie die folgenden 2 Dinge auf dem Server.

Überprüfen Sie die Berechtigung von /tmp

1. Stellen Sie sicher, dass die Berechtigungen des /tmp-Verzeichnisses „drwxrwxrwt. sind ”

# ls -ld /tmp/
drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/

Wie Sie in der obigen Ausgabe sehen können, handelt es sich um eine falsche Berechtigung.

2. Stellen Sie die korrekten Berechtigungen wie folgt wieder her:

# chmod 1777 /tmp

Das Verzeichnis muss weltweit Lese-, Schreib- und Ausführungsberechtigungen zulassen. Auch das „Sticky“-Bit wird gesetzt, damit nur der Eigentümer einer Datei diese löschen kann; andernfalls könnte jeder Benutzer jede beliebige Datei im Verzeichnis löschen.

3. Versuchen Sie, eine neue Datei in /tmp/zu erstellen, um Folgendes zu überprüfen:

# touch /tmp/test_file

Überprüfen Sie die SELinux-Berechtigungen

1. Sie können auch überprüfen, ob SELinux auf dem System aktiviert ist. SELinux kann in einigen Fällen, wenn es falsch eingestellt ist, zu Problemen führen. So überprüfen Sie, ob SELinux aktiviert ist:

# getenforce
Enforcing

2. Lassen Sie uns SELinux vorübergehend deaktivieren, um zu prüfen, ob das Problem behoben wird.

# setenforce 0

3. Überprüfen Sie die Einstellungen, indem Sie die Crontab des Benutzers bearbeiten.

# crontab -e

4. Wenn es gut funktioniert, möchten Sie vielleicht SELinux wieder aktivieren und „restorecon verwenden ” um die korrekte Berechtigung des Verzeichnisses /tmp wiederherzustellen.

# setenforce 1
# restorecon -v /tmp


Linux
  1. (Gelöst) Mailbox /var/mail/user kann nicht geöffnet werden:Permission denied error in Linux

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. So bereinigt systemd-tmpfiles /tmp/ oder /var/tmp (Ersatz von tmpwatch) in CentOS / RHEL 7

  4. So verhindern Sie, dass Nicht-Root-Benutzer einen Crontab-Eintrag erstellen

  5. Berechtigung für Composer in /usr/local/bin/ verweigert

[Gelöst] Zugriff auf Speicherdatei nicht möglich, Berechtigung verweigert Fehler in KVM Libvirt

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Schreibberechtigung über Filezilla sftp nach /var/www/html verweigert

Einhängefehler 13 =Berechtigung verweigert

So ändern Sie das Standard-/tmp in /home/user/tmp

Unterschied und korrekte Verwendung für /tmp und /var/tmp