Eine Lösung in bash wäre die Verwendung von Shell-Funktionen und Aliasnamen. Sie können sie in / etc / bashrc oder ~ / .bashrc ablegen, wenn Sie sie nur für bestimmte Benutzer wünschen. Hier sind einige Funktions- und Alias-Definitionen, mit denen Sie etwa das tun können, was Sie gefragt haben.
DANGERLIST=/etc/dangerous.paths _dangerouspath() { file=$(readlink -e "$1") [ -z "$" ] && return 1 while read pattern do [[ "$" =~ ^$$ ]] && return 0 done < $ return 1 } _checkpaths() { shift while [ -n "$1" ] do [[ "X$1" =~ ^X[^-].* ]] && _dangerouspath $1 && return 0 shift done return 1 } _saferun() { p="$1" shift if _checkpaths $* then read -p "Are you sure you want to do this? (y/n) " r && [ "$r" = "y" ] && $p $* else $p $* fi } alias chown="_saferun /bin/chown" alias chgrp="_saferun /bin/chgrp" alias chmod="_saferun /bin/chmod"
Sie müssen in "$ DANGERLIST" (/etc/dangerous.paths) eine Liste von Pfaden erstellen, die Sie schützen möchten. Dies würde etwa so aussehen
/ /home /etc.* /usr/bin.* /bin.*