Ich muss überprüfen, ob ein bestimmtes Dateisystem die noexec Option festgelegt hat.Wie überprüft man die Ausgabe eines Befehls in der Shell?
Zum Beispiel /dev/shm
. Ich verwende den Befehl auf die folgende Weise:
get_val=$(mount|grep /dev/shm)
if [[ -z get_val ]] ; then
# Error
else
value=$(echo "${get_val}" | cut -d " " -f 6 | grep noexec)
if [ "${value}" = "" ]; then
# Not set
else
# Set
fi
fi
Der Wert get_val etwas wie devshm on /dev/shm type devshm (rw,noexec,nosuid,gid=5,mode=0620)
Weiter ist es, was ich tun möchte, ist zu überprüfen, ob gid
und mode
auf einen bestimmten Wert eingestellt. Mit dem obigen Verfahren kann ich jedoch nur prüfen, ob eine Option eingestellt ist.
So habe ich versucht, dies:
echo "${get_val}"| cut -d " " -f 6 | awk -F, '{
if ($4 == "gid=123"){
print 1;
}
else
{ print 0;}
if ($5 == "mode=123)"){
print 1;
}
else
{ print 0;}'
Dies scheint jedoch zu stress ish und ich bin nicht sicher, was der bessere Weg sein wird, dies zu tun.
Auch andere Parameter könnten in einem Dateisystem wie nodev etc gesetzt werden, was $ 5 oder $ 2 anders machen würde.
irgendwelche Vorschläge?
http: // stackoverflow.com/questions/1891797/capturing-groups-from-a-grep-regex – xxfelixxx
Sie können dies mit mehreren GREPS IMHO beenden. – sjsam