Saya bingung. Saya memiliki skrip di /home
direktori saya yang dapat dieksekusi:
[user@server ~]$ ll
total 4
-rwx------ 1 user user 2608 Jul 15 18:23 qa.sh
Namun, ketika saya mencoba untuk menjalankannya dengan sudo
mengatakan itu tidak dapat menemukannya:
[user@server ~]$ sudo ./qa.sh
[sudo] password for user:
sudo: unable to execute ./qa.sh: No such file or directory
Ini baru dibangun. Tidak ada perubahan yang dibuat yang akan menyebabkan masalah. Sebenarnya, inti dari skrip adalah untuk memastikan bahwa skrip tersebut benar-benar dibangun sesuai dengan kebijakan kami. Mungkin itu bukan dan sudo
sebenarnya sedang rusak selama pembangunan?
Saya juga harus mencatat bahwa saya dapat menjalankan sudo
dengan perintah lain di direktori lain.
EDIT: Script (saya tidak menulis jadi jangan /bin/bash
saya mengatasinya, tolong;))
#! /bin/bash
. /root/.bash_profile
customer=$1
if [ -z "$customer" ]; then
echo "Customer not provided. Exiting..."
exit 1
fi
space ()
{
echo
echo '###########################################################################'
echo '###########################################################################'
echo '###########################################################################'
echo
}
g=/bin/egrep
$g ^Listen /etc/ssh/sshd_config
$g ^PermitR /etc/ssh/sshd_config
$g ^LogL /etc/ssh/sshd_config
$g ^PubkeyA /etc/ssh/sshd_config
$g ^HostbasedA /etc/ssh/sshd_config
$g ^IgnoreR /etc/ssh/sshd_config
$g ^PermitE /etc/ssh/sshd_config
$g ^ClientA /etc/ssh/sshd_config
space
$g 'snyder|rsch|bream|shud|mweb|dam|kng|cdu|dpr|aro|pvya' /etc/passwd ; echo ; echo ; $g 'snyder|rsch|bream|shud|mweb|dam|kng|cdu|dpr|aro|pvya' /etc/shadow
space
$g 'dsu|scan' /etc/passwd ; echo ; echo ; $g 'dsu|scan' /etc/shadow
space
$g ${customer}admin /etc/passwd
space
chage -l ${customer}admin
space
$g 'urs|cust|dsu' /etc/sudoers
space
$g dsu /etc/security/access.conf
space
$g account /etc/pam.d/login
space
/sbin/ifconfig -a | $g addr | $g -v inet6
space
echo "10.153.156.0|10.153.174.160|10.120.80.0|10.152.80.0|10.153.193.0|172.18.1.0|10.153.173.0"
echo
$g '10.153.156.0|10.153.174.160|10.120.80.0|10.152.80.0|10.153.193.0|172.18.1.0|10.153.173.0' /etc/sysconfig/network-scripts/route-eth1
space
cat /etc/sysconfig/network-scripts/route-eth2
space
netstat -rn | tail -1
space
cat /etc/sysconfig/iptables
space
cat /etc/hosts
space
##file /usr/local/groundwork ; echo ; echo ; /sbin/service gdma status
##space
cat /etc/resolv.conf
space
HOSTNAME=`echo $HOSTNAME | awk -F. '{ print $1 }'`
nslookup ${HOSTNAME}
echo
echo
nslookup ${HOSTNAME}-mgt
echo
echo
nslookup ${HOSTNAME}-bkp
space
/sbin/service rhnsd status ; echo ; echo ; /sbin/chkconfig --list rhnsd ; echo ; echo ; yum update --security
space
/sbin/service osad status ; echo ; echo ; /sbin/chkconfig --list osad
space
/sbin/service sshd status ; echo ; echo ; /sbin/chkconfig --list sshd
space
/sbin/service snmpd status ; echo ; echo ; /sbin/chkconfig --list snmpd ; echo ; echo ; echo ; cat /etc/snmp/snmpd.conf
space
df -h
space
cat /proc/cpuinfo | $g ^processor
space
free -g
space
if [ -f /etc/rsyslog.conf ]; then
tail -3 /etc/rsyslog.conf
else
echo "This system is not running rsyslog."
fi
rm -f $0
bash
shell-script
executable
theillien
sumber
sumber
sh qa.sh
alih-alih./qa.sh
Jawaban:
Ini biasanya terjadi ketika baris shebang (
#!
) di skrip Anda rusak.Shebang adalah yang memberitahu kernel bahwa file harus dieksekusi menggunakan penerjemah. Saat dijalankan tanpanya
sudo
, pesannya sedikit lebih bermakna. Tetapi dengansudo
Anda mendapatkan pesan yang Anda dapatkan.Sebagai contoh:
The
bad interpreter
pesan jelas menunjukkan bahwa itu adalah peristiwa yang rusak.sumber
^M
karakter tersembunyi dan penerjemah membacanya sebagai bagian dari garis shebang. Saya menjalankannyados2unix
dan memperbaikinya. Terima kasih ~Saya baru saja mengalami masalah ini, ternyata menjadi masalah penyandian file teks. Bagi saya untuk memperbaikinya saat menjalankan Xubuntu 14.04.3 LTS, saya menginstal dos2unix dan mengkonversi pengkodean skrip dan kemudian menjalankan skrip lagi menggunakan sudo dan itu berfungsi dengan baik. Anda dapat menemukan contoh di bawah ini:
sumber
No such file or directory
kesalahan yang menyesatkan .