A script listázza ki abszolút elérési útvonallal a PATH‐on található file‐ok közül azokat, amelyeket a paraméterben megadott felhasználó futtathat akár tulajdonos jogán, akár a csoportjogán, akár mindenkimás jogán.
valami tipp esetleg?
nekem eddig ez jutott eszembe:
MyPATH=`echo $PATH | tr ":" " "`
paramgroup=`id -g $1`
GROUP=`ls -la $i | awk '{ print $4 }'`
for i in $MyPATH
do
if [ `ls -la $i | awk '{ print $3 }'` == $1 || `id -g $1` = `ls -la $i | awk '{ print $4 }'`];
then
echo "egyezik $ 1-el" ;
else
echo "nem egyezik $ 1-el"
fi
done
exit 0
ez az if lenne a lényeg de nem jó, és nem tom hogy hogy kellene jól megcsinálni
if [ `ls -la $i | awk '{ print $3 }'` == $1 || `id -g $1` = `ls -la $i | awk '{ print $4 }'`];
- 1587 megtekintés
Hozzászólások
for DIR in ${PATH//:/ }; do
find $DIR -type f -and -user $USER -and -executable -or -type f -and -group $GROUP -and -executable -or -type f -and -executable
done
--
maszili
- A hozzászóláshoz be kell jelentkezni
bash-3.2$ ./hal.sh h749006
find: az útvonalaknak meg kell előzniük a kifejezést: hallgato
Használat: find [-H] [-L] [-P][-Oszint] [-D help|tree|search|stat|rates|opt|exec] [útvonal...] [kifejezés]
annyit csináltam hogy $USER helyett $1 de ne hinném,hogy ez a problem
- A hozzászóláshoz be kell jelentkezni
elvileg az executable elvegzi a szukseges vizsgalatot:
find `echo $PATH | tr : \ ` -maxdepth 1 -type f -executable
szerk: add maxdepth
- A hozzászóláshoz be kell jelentkezni
Gondoltam milyen kis egyszeru feladat, aztan az alabbi lett belole. De ez mar teljesiti a specifikaciot. :-)
A for ciklus ahhoz kell, hogy konvertaljuk a $PATH elemeit abszolut eleresi utvonalakra. A '-executable'-t azert melloztem, mert ahhoz kene egy 'su', hogy parameterezheto legyen a felhasznalo nevevel, illetve az ACL-eket is mashogy kezeli. Ez a megoldas csak a file-okat (linkeket nem) listazza.
#! /bin/bash
i=0
for DIR in ${PATH//:/ }
do
cd "$DIR"
DIRS[$((i++))]=$(pwd)
cd - >/dev/null
done
GIDS="$(id -G $1 | sed -e 's/ / -o -gid /g' -e 's/^/\( -gid /' -e 's/$/ \)/')"
find "${DIRS[@]}" -maxdepth 1 -type f \( \
\( -user "$1" -perm -u=x \) -o \
\( ! -user "$1" $GIDS -perm -g=x \) -o \
\( ! -user "$1" \( ! $GIDS \) -perm -o=x \) \
\)
- A hozzászóláshoz be kell jelentkezni
Én úgy tudom a PATH-ban eleve abszolút útvonalak vannak.
- A hozzászóláshoz be kell jelentkezni
Az alapertelmezett PATH-ban altalaban csak azok vannak, de minden tovabbi nelkul kerulhet bele relativ is.
- A hozzászóláshoz be kell jelentkezni