PATH:
snap
/
core18
/
2999
/
usr
/
sbin
#!/bin/sh -e if test $# -eq 0 then echo usage: $0 shellname '[shellname ...]' 1>&2 exit 1 fi file=/etc/shells # I want this to be GUARANTEED to be on the same filesystem as $file tmpfile=${file}.tmp otmpfile=${file}.tmp2 set -o noclobber trap "rm -f $tmpfile $otmpfile" EXIT if ! cat $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 # this is supposed to be reliable, not pretty for i do REALDIR="$(dirname $(realpath -m $i))/$(basename $i)" for j in "$i" "$REALDIR" do grep -v "^${j}$" $tmpfile > $otmpfile || true mv $otmpfile $tmpfile done done chmod --reference=$file $tmpfile chown --reference=$file $tmpfile mv $tmpfile $file trap "" EXIT exit 0
[+]
..
[-] aa-remove-unknown
[edit]
[-] aa-status
[edit]
[-] add-shell
[edit]
[-] addgroup
[edit]
[-] adduser
[edit]
[-] apparmor_status
[edit]
[-] arpd
[edit]
[-] chgpasswd
[edit]
[-] chmem
[edit]
[-] chpasswd
[edit]
[-] chroot
[edit]
[-] cpgr
[edit]
[-] cppw
[edit]
[-] delgroup
[edit]
[-] deluser
[edit]
[-] e2freefrag
[edit]
[-] e4crypt
[edit]
[-] e4defrag
[edit]
[-] faillock
[edit]
[-] fdformat
[edit]
[-] filefrag
[edit]
[-] genl
[edit]
[-] groupadd
[edit]
[-] groupdel
[edit]
[-] groupmems
[edit]
[-] groupmod
[edit]
[-] grpck
[edit]
[-] grpconv
[edit]
[-] grpunconv
[edit]
[-] iconvconfig
[edit]
[-] invoke-rc.d
[edit]
[-] ip6tables-apply
[edit]
[-] iptables-apply
[edit]
[-] ldattach
[edit]
[-] mklost+found
[edit]
[-] netplan
[edit]
[-] newusers
[edit]
[-] nfnl_osf
[edit]
[-] nologin
[edit]
[-] pam-auth-update
[edit]
[-] pam_getenv
[edit]
[-] pam_timestamp_check
[edit]
[-] pwck
[edit]
[-] pwconv
[edit]
[-] pwunconv
[edit]
[-] readprofile
[edit]
[-] remove-shell
[edit]
[-] rfkill
[edit]
[-] rmt
[edit]
[-] rmt-tar
[edit]
[-] rtcwake
[edit]
[-] service
[edit]
[-] sshd
[edit]
[-] tarcat
[edit]
[-] tzconfig
[edit]
[-] update-ca-certificates
[edit]
[-] update-mime
[edit]
[-] update-passwd
[edit]
[-] update-rc.d
[edit]
[-] useradd
[edit]
[-] userdel
[edit]
[-] usermod
[edit]
[-] vigr
[edit]
[-] vipw
[edit]
[-] visudo
[edit]
[-] zic
[edit]