|
Server IP : 82.165.83.148 / Your IP : 216.73.216.85 Web Server : Apache System : Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux User : u67745506 ( 4824611) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF Directory (0755) : /etc/../../sbin/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
#!/bin/sh -e
if test $# -eq 0
then
echo "usage: $0 shellname [shellname ...]"
exit 1
fi
file=/etc/shells
# I want this to be GUARANTEED to be on the same filesystem as $file
tmpfile="${file}.tmp"
set -o noclobber
cleanup() {
rm -f "$tmpfile"
}
trap cleanup EXIT
if ! awk '{print}' "$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
for i
do
REALDIR="$(dirname "$(realpath -m "$i")")/$(basename "$i")"
for j in "$i" "$REALDIR"
do
if ! grep -q "^${j}$" "$tmpfile"
then
echo "$j" >> "$tmpfile"
fi
done
done
chmod --reference="$file" "$tmpfile"
chown --reference="$file" "$tmpfile"
mv "$tmpfile" "$file"
trap "" EXIT
exit 0
