Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam. Jestem początkujący, więc proszę o wyrozumiałość. Umieściłem w katalogu /root plik restart. Po wpisaniu /root/restart wyskakuje komunikat: : "No such file or directory" mimo, że plik tam jest. Nie mam pojęcia jak to naprawić.
Offline
To ma być wykonywalne (chmod +x plik)? Pokaż:
ls -l /root/restart
Offline
Nadałem chmod +x na ten plik.
-rwxr-xr-x 1 root root 33 Dec 7 19:52 /root/restart
Offline
file /root/restart ls -l / | grep root/
Wykonujesz ów skrypt (?) jako użytkownik czy root? Najlepiej wklej cały log.
Offline
file /root/restart /root/restart: Bourne-Again shell script text executable
Po tej drugiej komendzie nic się nie pojawia.
Tak, wykonuję to wszystko jako root.
Offline
Exusar napisał(-a):
Po tej drugiej komendzie nic się nie pojawia.
Tak, wykonuję to wszystko jako root.
Zatem wątpię, aby akurat to było problemem, ale wpisz samo:
ls -l
i wklej linijkę z katalogiem /root.
Czy nie masz jakiś dodatkowych zabezpieczeń? Typu grsec, pax, noexec przy montowaniu lub innych? Czy
bash /root/restart
zaskoczy?
Offline
lub plik nie ma naglowka odpowiedniego, np:
#!/bin/bash
lub
#!/bin/sh
Offline
@azhag
ls -l total 17556 drwxr-xr-x 5 root root 4096 Dec 6 21:22 hlds1 -rwxr-xr-x 1 root root 3513408 Sep 2 2005 hldsupdatetool.bin -rw-r--r-- 1 root root 3413 Apr 7 2005 readme.txt -rwxr-xr-x 1 root root 33 Dec 7 22:18 restart -rw-r--r-- 1 root root 1733 Dec 7 19:52 serverchecker -rwxr-xr-x 1 root root 4378 Dec 8 18:39 serwer1 -rwxr-xr-x 1 2055735652 2055733761 5265976 Jul 11 23:54 steam drwxr-xr-x 2 root root 4096 Dec 3 21:29 Steam -r-xr-xr-x 1 2055735652 2055733761 358301 Jul 25 2008 test1.so -r-xr-xr-x 1 2055735652 2055733761 453372 Jul 25 2008 test2.so -r-xr-xr-x 1 2055735652 2055733761 8306090 Jul 25 2008 test3.so drwxr-xr-x 2 root root 4096 Dec 4 21:45 ventrilo
Dodając przed komendą "bash", wykrywa skrypt, lecz pojawia się błąd:
bash restart : command not found : command not found : command not found : command not found : command not found : command not found : command not found '/serwer1: line 43: syntax error near unexpected token `{ '/serwer1: line 43: `function color_linux() {
Na wszelki wypadek podam te 2 pliki: http://goldengaming.pl/shs.rar
Offline
Ale... to się kupy nie trzyma...
Utwórz /root/tmp.sh o treści:
#!/bin/bash echo $SHELL echo ================ bash --version echo ================ bash --verbose
Daj
chmod +x /root/tmp.sh
i pokaż
bash /root/tmp.sh /root/tmp.sh
Offline
Może system plików ma wyłączoną flagę EXEC?
mount
A uruchomienie lokalne działa?
../../../../../../../../../../../../../../../../../root/restart cd /root/ && ./restart
PS. Ta pierwsza komenda to tak ma być.... Wątpię by był aż za tyloma katalogami, ale będą w "cd /" w robiąc "cd .." jest się dalej w "/".
Offline
bash /root/tmp.sh : command not found2: /bin/bash : command not found4: ================ : command not found6: : invalid option Usage: bash [GNU long option] [option] ... bash [GNU long option] [option] script-file ... GNU long options: --debug --debugger --dump-po-strings --dump-strings --help --init-file --login --noediting --noprofile --norc --posix --protected --rcfile --restricted --verbose --version Shell options: -irsD or -c command or -O shopt_option (invocation only) -abefhkmnptuvxBCHP or -o option : command not found8: ================ : command not found10: # System-wide .bashrc file for interactive bash(1) shells. # To enable the settings / commands in this file for login shells as well, # this file has to be sourced in /etc/profile. # If not running interactively, don't do anything [ -z "$PS1" ] && return # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # set variable identifying the chroot you work in (used in the prompt below) if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, overwrite the one in /etc/profile) PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' # Commented out, don't overwrite xterm -T "title" -n "icontitle" by default. # If this is an xterm set the title to user@host:dir #case "$TERM" in #xterm*|rxvt*) # PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' # ;; #*) # ;; #esac # enable bash completion in interactive shells #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then # . /etc/bash_completion #fi # if the command-not-found package is installed, use it if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then function command_not_found_handle { # check because c-n-f could've been removed in the meantime if [ -x /usr/lib/command-not-found ]; then /usr/bin/python /usr/lib/command-not-found -- $1 return $? elif [ -x /usr/share/command-not-found ]; then /usr/bin/python /usr/share/command-not-found -- $1 return $? else return 127 fi } fi # ~/.bashrc: executed by bash(1) for non-login shells. # Note: PS1 and umask are already set in /etc/profile. You should not # need this unless you want different defaults for root. # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ ' # umask 022 # You may uncomment the following lines if you want `ls' to be colorized: # export LS_OPTIONS='--color=auto' # eval "`dircolors`" # alias ls='ls $LS_OPTIONS' # alias ll='ls $LS_OPTIONS -l' # alias l='ls $LS_OPTIONS -lA' # # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i'
@NIC
mount /dev/md1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/md0 on /boot type ext3 (rw) /dev/md3 on /home type ext3 (rw)
Ostatnio edytowany przez Exusar (2011-12-08 20:53:15)
Offline
Już wiem o co chodzi, zagadka rozwiązana. :)
Oj, nieładnie! Wyszło szydło z worka! Skrypty owe (pierw ten od CS, potem mój) zapisałeś pod Windows (szklana kula podpowiada, że w Notatniku) i dopiero potem wrzuciłeś na serwer. Bardzo nieładnie! Albowiem w związku z tym znaki końca linii były windowsowe (CRLF), nie uniksowe (LF).
Przekonwertuj je (dos2unix plik), powinny działać. A na przyszłość radzę korzystać z edytora bezpośrednio na serwerze.
Ostatnio edytowany przez azhag (2011-12-08 21:41:09)
Offline
No to mam nauczkę, że lepiej robić w konsoli, niż wgrywać przez ftp ;)
Nie wiem, czy może przez to, że edytowałem jakiś plik i teraz nie mogę wykonać tej (i sporo innych, np. sudo) komendy.
dos2unix restart
-bash: dos2unix: command not found
Ostatnio edytowany przez Exusar (2011-12-08 21:25:31)
Offline
Możliwe, że musisz doinstalować.
Offline
Bardzo dziękuję za pomoc.
Offline
Nie ma sprawy. Zatem rzeczywiście kwestia znaków końca linii?
Offline
Na to wygląda. Po konwersji plików skrypt zadziałał po wpisaniu komendy: /root/restart
Offline
ok, oznaczam wątek jako rozwiązany
Offline