Je sais que vous pouvez déterminer le propriétaire du répertoire en faisant:
ls -ld ~/foo | awk '{ print $3 }'
Vous pouvez ensuite le comparer à l'utilisateur actuel en procédant comme suit:
if [[ $(ls -ld ~/foo | awk '{ print $3 }') == "$USER" ]] # or $(id -u -n ) instead of $USER
then
echo "You are the owner"
else
echo "You are NOT the owner"
fi
Mais vous pouvez avoir des autorisations pour écrire sans en être le propriétaire. Comment déterminez-vous cela?
stat
c'est spécifique aux systèmes Linux modernes, d'autres unités peuvent avoir un différentstat
ou aucun. Analyser ls est généralement une recette pour des problèmes , mais analyser le propriétaire comme le troisième mot fonctionne principalement (les choses se décomposent ensuite); ce n'est toujours pas parfait (certains systèmes autorisent les espaces dans les noms d'utilisateurs).