• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst sudo: unable to execute (Debian 12 Server)

Hallo Leute,

habe 2 Scripts im Ordner /home/chef/.local/scripts/ angelegt, eines, das eine Backupprozedur startet (make_paperless_backup.sh), ein anderes, dass diese Prozedur (und andere) aufruft, Daten sammelt (Smartmontools) und Ergebnisse per Email an mich senden soll. Soll später mal als Cronjob täglich laufen.

Beide Scripts mittels
Code:
chef@dell:~$ chmod +x /home/chef/.local/scripts/backup.sh
chef@dell:~$ chmod +x /home/chef/.local/scripts/make_paperless_backup.sh
ausführbar gemacht.

Wenn ich backup.sh per
Code:
sudo /home/chef/.local/scripts/backup.sh
starten will, erhalte ich
Code:
sudo: unable to execute /home/chef/.local/scripts/backup.sh: No such file or directory

Die Partition ist in fstab so eingestellt:
Code:
UUID=a32618d5-4145-4cfe-bac2-94512430715f / ext4 errors=remount-ro 0 1
und verhält sich vollkommen unauffällig. Alle anderen Programme funktionieren offenbar.

Kann sich ja nur um einen Anfängerfehler handeln, ..., aber welchen?
 

susejunky

Moderator
Teammitglied
Hallo @EmmJay ,

herzlich willkommen im Linux-Club-Forum.

Wenn ich backup.sh per
Code:
sudo /home/chef/.local/scripts/backup.sh
starten will, erhalte ich
Code:
sudo: unable to execute /home/chef/.local/scripts/backup.sh: No such file or directory
Bitte zeige die Ergebnisse von
Code:
ls -al /home/chef/.local
und
Code:
ls -al /home/chef/.local/scripts

Viele Grüße

susejunky
 
Falls inxi installiert ist:inxi -Sxxx
Ansonsten: uname -a

Es sollte mit dem Problem nichts zu tun haben, aber Deine Programme sind in /home/chef/bin besser aufgehoben.
 
Hallo allerseits!
@susejunky: Vielen Dank für die Begrüßung.

Zu den Requests:
Code:
chef@dell:~$ ls -al /home/chef/.local
insgesamt 20
drwx------ 5 chef chef 4096 12. Mär 11:47 .
drwx------ 8 chef chef 4096 19. Jun 11:45 ..
drwxr-xr-x 2 chef chef 4096 18. Jun 13:28 logs
drwxr-xr-x 2 chef chef 4096 19. Jun 21:14 scripts
drwx------ 4 chef chef 4096 13. Mär 09:21 share

Code:
chef@dell:~$ ls -al /home/chef/.local/scripts
insgesamt 16
drwxr-xr-x 2 chef chef 4096 19. Jun 21:14 .
drwx------ 5 chef chef 4096 12. Mär 11:47 ..
-rwxr-xr-x 1 chef chef 3703 19. Jun 08:44 backup.sh
-rwxr-xr-x 1 chef chef  121 19. Jun 08:29 make_paperless_backup.sh

Läuft übrigens auf einem Debian 12 ohne grafische Oberfläche, weil nur als Server betrieben.
 

susejunky

Moderator
Teammitglied
Hallo @EmmJay ,

Verwendest Du ACLs?

Sind auf Deinem System Sicherheitssysteme wie z.B. apparmor, selinux, o.ä. aktiviert?

Kannst Du Dein Skript in einer "root"-shell ausführen?
Code:
> su -
# /home/chef/.local/scripts/backup.sh
Sollte das funktionieren, dann sind eventuell Deine sudo-Einstellungen nicht korrekt.

Viele Grüße

susejunky
 
Hi,

ACLs ... keine Ahnung. Habe nur ein einfaches Debian 12 via NetInst installiert, also Grundsystem und SSH, sonst nix. Später dann MC, Smartmontools und Msmtp, Mailutils, hinzugefügt, Portainer und Paperless installiert. Das paperless-System läuft offenbar einwandfrei, auch jetzt noch. Die genannten Probleme treten auf, wenn ich meine Scripts aufrufen will. Ohne Sudo können die gar nicht mangels Rechten funktionieren.
Beispiel:
smartctl -H /dev/sda -> Kommando nicht gefunden
sudo smartctl -H /dev/sda -> zeigt Testergebnis an

su - will nicht funktionieren
Code:
chef@dell:~$ su -
Passwort:
su: Fehler bei Authentifizierung

hab's mit sudo su probiert:
Code:
chef@dell:~$ sudo su
root@dell:/home/chef# /home/chef/.local/scripts/backup.sh
bash: /home/chef/.local/scripts/backup.sh: cannot execute: required file not found

Übrigens:
Wenn ich MC per Sudo starte, kann ich beispielsweise die fstab bearbeiten (via nano), ohne Sudo geht das nicht. Also der MC wird da offenbar mit Root-Rechten ausgestattet.
 
Nachtrag:
Meine Scripts sehen innen so aus:
Code:
#!/bin/bash
bakold=/home/chef/backup/paperless/backup_old.zip
baknew=/home/chef/backup/paperless/backup_new.zip
logfile=/home/chef/.local/logs/backup.log
receiver=xxx.yyy@irgendwo.de
engine=DELL
ok=PASSED
TODAY=$(date '+%Y-%m-%d')
echo "******* "$engine" Report *******" > $logfile
currdate=`date +%d.%m.%Y_%T`
echo -e "\n"$currdate" | Paperless Backup gestartet" >> $logfile
#
/home/chef/.local/scripts/make_paperless_backup.sh
while ps $PID 1>/dev/null 2>&1; do
  sleep 2
done
#
#
# geht noch weiter mit Smartmontools-Reports, alle Augaben werden in die log-Datei umgeleitet,
# am Ende wird die log-Datei per Mail an mich gesendet ...
Mehr oder weniger per Copy&Paste zusammengestellt ... bin halt Anfänger (oder noch nicht viel weiter weg davon).

Passt das mit #!/bin/bash und so überhaupt?
 
su - will nicht funktionieren
Passwort falsch? PAM verkonfiguriert? Schau mit einem passenden journalctl-Befehl im Systemlog nach, ob dazu etwas zu finden ist.

Wenn ich MC per Sudo starte, kann ich beispielsweise die fstab bearbeiten (via nano)
Dann zeige uns den Inhalt folgender Dateien: /etc/sudoers /etc/shadow

Passt das mit #!/bin/bash und so überhaupt?
Ja, formale Fehler würden Dir beim Aufruf des Skripts angezeigt werden, aber soweit kommt es nicht.

An susejunky: ACL wird bei den im Beitrag 5 gezeigten Objekten nicht verwendet.
 
Hi

whereis bash
Code:
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz

sudoers:
Code:
# This file MUST be edited with the 'visudo' command as root.
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
# See the man page for details on how to write a sudoers file.
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# This fixes CVE-2005-4890 and possibly breaks some versions of kdesu
# (#1011624, https://bugs.kde.org/show_bug.cgi?id=452532)
Defaults        use_pty
# This preserves proxy settings from user environments of root
# equivalent users (group sudo)
#Defaults:%sudo env_keep += "http_proxy https_proxy ftp_proxy all_proxy no_proxy"
# This allows running arbitrary commands, but so does ALL, and it means
# different sudoers have their choice of editor respected.
#Defaults:%sudo env_keep += "EDITOR"
# Completely harmless preservation of a user preference.
#Defaults:%sudo env_keep += "GREP_COLOR"
# While you shouldn't normally run git as root, you need to with etckeeper
#Defaults:%sudo env_keep += "GIT_AUTHOR_* GIT_COMMITTER_*"
# Per-user preferences; root won't have sensible values for them.
#Defaults:%sudo env_keep += "EMAIL DEBEMAIL DEBFULLNAME"
# "sudo scp" or "sudo rsync" should be able to use your SSH agent.
#Defaults:%sudo env_keep += "SSH_AGENT_PID SSH_AUTH_SOCK"
# Ditto for GPG agent
#Defaults:%sudo env_keep += "GPG_AGENT_INFO"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root    ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d

shadow:
Code:
root:!:19793:0:99999:7:::
daemon:*:19793:0:99999:7:::
bin:*:19793:0:99999:7:::
sys:*:19793:0:99999:7:::
sync:*:19793:0:99999:7:::
games:*:19793:0:99999:7:::
man:*:19793:0:99999:7:::
lp:*:19793:0:99999:7:::
mail:*:19793:0:99999:7:::
news:*:19793:0:99999:7:::
uucp:*:19793:0:99999:7:::
proxy:*:19793:0:99999:7:::
www-data:*:19793:0:99999:7:::
backup:*:19793:0:99999:7:::
list:*:19793:0:99999:7:::
irc:*:19793:0:99999:7:::
_apt:*:19793:0:99999:7:::
nobody:*:19793:0:99999:7:::
systemd-network:!*:19793::::::
systemd-timesync:!*:19793::::::
messagebus:!:19793::::::
sshd:!:19793::::::
chef:$y$j9T$LEmpdecoq17y6gRwVXw470$.R1eEBTaoB1r4R9n0GBsszWmhdRhPAy/yzZB8yPe7b5:19793:0:99999:7:::
msmtp:!:19793::::::
avahi:!:19793::::::
saned:!:19793::::::
polkitd:!*:19793::::::
colord:!:19793::::::
 
@Christina:

Code:
chef@dell:~$ sudo su -
[sudo] Passwort für chef:
root@dell:~# ln -s /usr/bin/bash /bin/bash
ln: die symbolische Verknüpfung '/bin/bash' konnte nicht angelegt werden: Die Datei existiert bereits

hat das Problem auch nicht behoben, denn ...
Code:
chef@dell:~$ sudo /home/chef/.local/scripts/backup.sh
sudo: unable to execute /home/chef/.local/scripts/backup.sh: No such file or directory


@Sauerland :
Ich sehe wahrscheinlich vor lauter Wald keine Bäume mehr. Ich habe keine Ahnung, ob das Ausrufezeichen in "#!/bin/bash" und das /usr in "/usr/bin/bash" einen funktionellen Unterschied macht. "#!/bin/bash" steht praktisch in jedem Script drin, die man sich im Internet angucken kann und ich habe in den letzten vielleicht 20 Debian-Installationen (weil "learning by doing" und "viel auf'm Holzweg") noch kein "#!"-Verzeichnis gesehen (was nicht heißen muss, dass es das nicht doch gäbe). Da
Code:
bash --help
mir die Syntax recht ausführlich aufzeigt, gehe ich davon aus, dass das nicht das Problem ist. Kann aber auch so ein Holzweg sein ...
 
"#!/bin/bash" steht praktisch in jedem Script drin
Das ist auch der Standard-Shebang. (Sowieso ist die symbolische Verknüpfung /bin/bash -> /usr/bin/bash bei dir bereits vorhanden.)
Vielleicht kann @Gräfin Klara was dazu sagen.

Du könntest mal noch bitte diese beiden Ausgaben zeigen:
Code:
ls -l /bin/sh
ls -l /usr/bin/sh

(Wobei der Shebang #!/bin/sh weniger üblich ist.)
 
@ Geier0815
Stimmt, mit Absicht. wenn Root-Rechte gebraucht werden, dann halt mit sudo. Hab' ich schon immer so gemacht und das war auch nie ein Problem. Im Gegenteil, wenn ein Root-PW hinterlegt ist, dann funzt was anderes nicht mehr so gut, was genau, kann ich Dir nicht sagen, war ein Tipp in CT, glaube ich.

@ Sauerland
bash-completion - nie gehört, was'n das?

Habe gerade mal die /etc/shadow mit einer aus einer Ubuntu-Server-Installation verglichen und folgenden Unterschied gefunden:
Debian 12: root:!:19793:0:99999:7:::
Ubuntu-Server: root:*:19836:0:99999:7:::
also mal mit ! und mal mit *
Dachte, Ubuntu und Debian würden sich nicht so weit unterscheiden. Weiß jemand, was der Stern oder das Ausrufezeichen da ausmacht? Würde es ja ausprobieren, wäre aber blöd, wenn die Kiste dann ganz abschmiert ...

@ Christina
Code:
chef@dell:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4  5. Jan 2023  /bin/sh -> dash
chef@dell:~$ ls -l /usr/bin/sh
lrwxrwxrwx 1 root root 4  5. Jan 2023  /usr/bin/sh -> dash
 
Zuletzt bearbeitet:
@Christina,

Code:
:/# ls -lah
insgesamt 108K
drwxr-xr-x  18 root root 4,0K 29. Mai 20:35 .
drwxr-xr-x  18 root root 4,0K 29. Mai 20:35 ..
lrwxrwxrwx   1 root root    7 11. Jun 2023  bin -> usr/bin
...

Der symlink setzt tiefer an
 
Oben