| Server IP : 52.25.153.185 / Your IP : 216.73.217.131 Web Server : Apache System : Linux ip-172-26-6-158 5.10.0-35-cloud-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64 User : daemon ( 1) PHP Version : 8.1.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/sbin/ |
Upload File : |
#!/bin/sh -e
if test $# -eq 0
then
echo "usage: $0 shellname [shellname ...]" 1>&2
exit 1
fi
file=/etc/shells
# I want this to be GUARANTEED to be on the same filesystem as $file
tmpfile="${file}.tmp"
otmpfile="${file}.tmp2"
set -o noclobber
cleanup() {
rm -f "$tmpfile" "$otmpfile"
}
trap cleanup EXIT
if ! cat "$file" > "$tmpfile"
then
cat 1>&2 <<EOF
Either another instance of $0 is running, or it was previously interrupted.
Please examine ${tmpfile} to see if it should be moved onto ${file}.
EOF
exit 1
fi
# this is supposed to be reliable, not pretty
for i
do
REALDIR="$(dirname "$(realpath -m "$i")")/$(basename "$i")"
for j in "$i" "$REALDIR"
do
grep -v "^${j}$" "$tmpfile" > "$otmpfile" || true
mv "$otmpfile" "$tmpfile"
done
done
chmod --reference="$file" "$tmpfile"
chown --reference="$file" "$tmpfile"
mv "$tmpfile" "$file"
trap "" EXIT
exit 0