XYZ File Manager
Current Path:
/usr/sbin
usr
/
sbin
/
📁
..
📄
a2disconf
(15.86 KB)
📄
a2dismod
(15.86 KB)
📄
a2dissite
(15.86 KB)
📄
a2enconf
(15.86 KB)
📄
a2enmod
(15.86 KB)
📄
a2ensite
(15.86 KB)
📄
a2query
(9.6 KB)
📄
add-shell
(1.03 KB)
📄
addgroup
(47.25 KB)
📄
adduser
(47.25 KB)
📄
agetty
(67.49 KB)
📄
apache2
(712.5 KB)
📄
apache2ctl
(7.19 KB)
📄
apachectl
(7.19 KB)
📄
arp
(66.13 KB)
📄
arpd
(104.48 KB)
📄
badblocks
(34.25 KB)
📄
blkdeactivate
(15.96 KB)
📄
blkdiscard
(34.31 KB)
📄
blkid
(122.34 KB)
📄
blkzone
(78.31 KB)
📄
blockdev
(78.31 KB)
📄
bridge
(152.54 KB)
📄
capsh
(53.29 KB)
📄
chcpu
(46.3 KB)
📄
check_forensic
(952 B)
📄
chgpasswd
(66.29 KB)
📄
chmem
(66.31 KB)
📄
chpasswd
(62.36 KB)
📄
chroot
(46.98 KB)
📄
cpgr
(60.43 KB)
📄
cppw
(60.43 KB)
📄
ctrlaltdel
(38.3 KB)
📄
dcb
(144.6 KB)
📄
debugfs
(233.83 KB)
📄
delgroup
(16.33 KB)
📄
deluser
(16.33 KB)
📄
devlink
(220.98 KB)
📄
dhclient
(2.63 MB)
📄
dhclient-script
(14.21 KB)
📄
dmsetup
(166.98 KB)
📄
dmstats
(166.98 KB)
📄
dpkg-fsys-usrunmess
(16.99 KB)
📄
dpkg-preconfigure
(3.83 KB)
📄
dpkg-reconfigure
(4.38 KB)
📄
dumpe2fs
(30.31 KB)
📄
e2freefrag
(14.3 KB)
📄
e2fsck
(348.27 KB)
📄
e2image
(54.45 KB)
📄
e2label
(114.52 KB)
📄
e2mmpstatus
(30.31 KB)
📄
e2scrub
(7.12 KB)
📄
e2scrub_all
(5.27 KB)
📄
e2undo
(22.3 KB)
📄
e4crypt
(26.3 KB)
📄
e4defrag
(30.23 KB)
📄
faillock
(14.24 KB)
📄
filefrag
(18.26 KB)
📄
findfs
(14.3 KB)
📄
fsck
(54.36 KB)
📄
fsck.cramfs
(42.37 KB)
📄
fsck.ext2
(348.27 KB)
📄
fsck.ext3
(348.27 KB)
📄
fsck.ext4
(348.27 KB)
📄
fsck.minix
(122.34 KB)
📄
fsfreeze
(14.3 KB)
📄
fstab-decode
(14.23 KB)
📄
fstrim
(74.31 KB)
📄
genl
(116.51 KB)
📄
getcap
(14.23 KB)
📄
getpcaps
(14.23 KB)
📄
getty
(67.49 KB)
📄
groupadd
(99.04 KB)
📄
groupdel
(90.85 KB)
📄
groupmems
(66.33 KB)
📄
groupmod
(99.01 KB)
📄
grpck
(66.3 KB)
📄
grpconv
(58.14 KB)
📄
grpunconv
(58.14 KB)
📄
halt
(1.29 MB)
📄
httxt2dbm
(14.23 KB)
📄
hwclock
(86.44 KB)
📄
iconvconfig
(30.84 KB)
📄
ifconfig
(82.01 KB)
📄
ifdown
(86.16 KB)
📄
ifquery
(86.16 KB)
📄
ifup
(86.16 KB)
📄
init
(90.38 KB)
📄
installkernel
(2.6 KB)
📄
invoke-rc.d
(16.13 KB)
📄
ip
(674.82 KB)
📄
ipmaddr
(18.56 KB)
📄
iptunnel
(26.55 KB)
📄
isosize
(30.31 KB)
📄
killall5
(26.31 KB)
📄
ldattach
(34.31 KB)
📄
ldconfig
(959.84 KB)
📄
locale-gen
(1.38 KB)
📄
logsave
(14.09 KB)
📄
losetup
(114.42 KB)
📄
make-ssl-cert
(6.65 KB)
📄
mii-tool
(27.08 KB)
📄
mke2fs
(138.58 KB)
📄
mkfs
(14.3 KB)
📄
mkfs.bfs
(34.31 KB)
📄
mkfs.cramfs
(42.24 KB)
📄
mkfs.ext2
(138.58 KB)
📄
mkfs.ext3
(138.58 KB)
📄
mkfs.ext4
(138.58 KB)
📄
mkfs.minix
(110.32 KB)
📄
mkhomedir_helper
(22.27 KB)
📄
mklost+found
(14.23 KB)
📄
mkswap
(114.31 KB)
📄
nameif
(14.65 KB)
📄
newusers
(102.92 KB)
📄
nologin
(14.23 KB)
📄
pam-auth-update
(20.79 KB)
📄
pam_getenv
(2.82 KB)
📄
pam_namespace_helper
(467 B)
📄
pam_timestamp_check
(14.24 KB)
📄
paperconfig
(4.07 KB)
📄
phpdismod
(7.11 KB)
📄
phpenmod
(7.11 KB)
📄
phpquery
(6.24 KB)
📄
pivot_root
(14.3 KB)
📄
plipconfig
(14.48 KB)
📄
poweroff
(1.29 MB)
📄
pwck
(58.26 KB)
📄
pwconv
(54.13 KB)
📄
pwhistory_helper
(18.24 KB)
📄
pwunconv
(54.17 KB)
📄
rarp
(37.13 KB)
📄
readprofile
(34.34 KB)
📄
reboot
(1.29 MB)
📄
remove-shell
(1.08 KB)
📄
resize2fs
(62.3 KB)
📄
rmt
(59.02 KB)
📄
rmt-tar
(59.02 KB)
📄
route
(69.17 KB)
📄
rtacct
(44.37 KB)
📄
rtcwake
(46.31 KB)
📄
rtmon
(112.45 KB)
📄
runlevel
(1.29 MB)
📄
runuser
(70.31 KB)
📄
service
(8.89 KB)
📄
setcap
(14.23 KB)
📄
shadowconfig
(2.22 KB)
📄
shutdown
(1.29 MB)
📄
slattach
(41.2 KB)
📄
split-logfile
(2.36 KB)
📄
sshd
(1.21 MB)
📄
start-stop-daemon
(43.42 KB)
📄
sulogin
(54.31 KB)
📄
swaplabel
(18.3 KB)
📄
swapoff
(22.3 KB)
📄
swapon
(50.3 KB)
📄
switch_root
(18.3 KB)
📄
sysctl
(30.31 KB)
📄
tarcat
(936 B)
📄
tc
(574 KB)
📄
telinit
(1.29 MB)
📄
tipc
(152.6 KB)
📄
tune2fs
(114.52 KB)
📄
unix_chkpwd
(38.24 KB)
📄
unix_update
(38.24 KB)
📄
update-ca-certificates
(5.29 KB)
📄
update-fonts-alias
(5.71 KB)
📄
update-fonts-dir
(3.98 KB)
📄
update-fonts-scale
(6.1 KB)
📄
update-gsfontmap
(470 B)
📄
update-locale
(2.99 KB)
📄
update-passwd
(38.49 KB)
📄
update-rc.d
(17.33 KB)
📄
update-shells
(3.89 KB)
📄
useradd
(155.8 KB)
📄
userdel
(110.95 KB)
📄
usermod
(143.61 KB)
📄
validlocale
(1.73 KB)
📄
vdpa
(116.66 KB)
📄
vigr
(72.64 KB)
📄
vipw
(72.64 KB)
📄
wipefs
(46.31 KB)
📄
zic
(58.73 KB)
📄
zramctl
(114.42 KB)
Editing: update-shells
#!/bin/sh # SPDX-License-Identifier: GPL-2.0-or-later # Copyright 2021 Helmut Grohne <helmut@subdivi.de> # A "hashset" is a shell variable containing a sequence of elements separated # and surrounded by hash (#) characters. None of the elements may contain a # hash character. The character is thus chosen, because it initiates a comment # in /etc/shells. All variables ending in _SHELLS in this file are hashsets. set -e # Check whether hashset $1 contains element $2. hashset_contains() { case "$1" in *"#$2#"*) return 0 ;; *) return 1 ;; esac } log() { if [ "$VERBOSE" = 1 ]; then echo "$*" fi } ROOT=${DPKG_ROOT:-} VERBOSE=0 NOACT=0 while [ $# -gt 0 ]; do case "$1" in --help) cat <<EOF usage: $0 [options] --no-act Do not move the actual update into place --verbose Be more verbose --root DIR Operate on the given chroot, defaults to / EOF exit 0 ;; --no-act) NOACT=1 ;; --root) shift if [ "$#" -lt 1 ]; then echo "missing argument to --root" 1>&2 exit 1 fi ROOT=$1 ;; --verbose) VERBOSE=1 ;; *) echo "unrecognized option $1" 1>&2 exit 1 ;; esac shift done PKG_DIR="$ROOT/usr/share/debianutils/shells.d" STATE_FILE="$ROOT/var/lib/shells.state" TEMPLATE_ETC_FILE="$ROOT/usr/share/debianutils/shells" TARGET_ETC_FILE="$ROOT/etc/shells" SOURCE_ETC_FILE="$TARGET_ETC_FILE" NEW_ETC_FILE="$TARGET_ETC_FILE.tmp" NEW_STATE_FILE="$STATE_FILE.tmp" if ! test -e "$SOURCE_ETC_FILE"; then SOURCE_ETC_FILE="$TEMPLATE_ETC_FILE" fi PKG_SHELLS='#' LC_COLLATE=C.UTF-8 # glob in reproducible order for f in "$TEMPLATE_ETC_FILE" "$PKG_DIR/"*; do test -f "$f" || continue while IFS='#' read -r line _; do [ -n "$line" ] || continue PKG_SHELLS="$PKG_SHELLS$line#" realshell=$(dpkg-realpath --root "$ROOT" "$(dirname "$line")")/$(basename "$line") if [ "$line" != "$realshell" ]; then PKG_SHELLS="$PKG_SHELLS$realshell#" fi done < "$f" done STATE_SHELLS='#' if [ -e "$STATE_FILE" ] ; then while IFS='#' read -r line _; do [ -n "$line" ] && STATE_SHELLS="$STATE_SHELLS$line#" done < "$STATE_FILE" fi cleanup() { rm -f "$NEW_ETC_FILE" "$NEW_STATE_FILE" } trap cleanup EXIT : > "$NEW_ETC_FILE" ETC_SHELLS='#' while IFS= read -r line; do shell=${line%%#*} # copy all comment lines, packaged shells and local additions if [ -z "$shell" ] || hashset_contains "$PKG_SHELLS" "$shell" || ! hashset_contains "$STATE_SHELLS" "$shell"; then if [ -z "$shell" ] || ! hashset_contains "$ETC_SHELLS" "$shell"; then echo "$line" >> "$NEW_ETC_FILE" ETC_SHELLS="$ETC_SHELLS$shell#" fi else log "removing shell $shell" fi done < "$SOURCE_ETC_FILE" : > "$NEW_STATE_FILE" saved_IFS=$IFS IFS='#' set -f # shellcheck disable=SC2086 # word splitting intended, globbing disabled set -- ${PKG_SHELLS###} set +f IFS=$saved_IFS for shell; do echo "$shell" >> "$NEW_STATE_FILE" # add shells that are neither already present nor locally removed if ! hashset_contains "$ETC_SHELLS" "$shell" && ! hashset_contains "$STATE_SHELLS" "$shell"; then echo "$shell" >> "$NEW_ETC_FILE" log "adding shell $shell" fi done if [ "$NOACT" = 0 ]; then if [ -e "$STATE_FILE" ]; then chmod --reference="${STATE_FILE}" "${NEW_STATE_FILE}" || chmod $(stat -c %a "${STATE_FILE}") "${NEW_STATE_FILE}" chown --reference="${STATE_FILE}" "${NEW_STATE_FILE}" || chown $(stat -c %U "${STATE_FILE}") "${NEW_STATE_FILE}" else chmod 0644 "$NEW_STATE_FILE" fi chmod --reference="${SOURCE_ETC_FILE}" "${NEW_ETC_FILE}" || chmod $(stat -c %a "${SOURCE_ETC_FILE}") "${NEW_ETC_FILE}" chown --reference="${SOURCE_ETC_FILE}" "${NEW_ETC_FILE}" || chown $(stat -c %U "${SOURCE_ETC_FILE}") "${NEW_ETC_FILE}" sync -d "$NEW_ETC_FILE" "$NEW_STATE_FILE" mv -Z "${NEW_ETC_FILE}" "${TARGET_ETC_FILE}" || mv "${NEW_ETC_FILE}" "${TARGET_ETC_FILE}" sync "$TARGET_ETC_FILE" sync "$(dirname "$TARGET_ETC_FILE")" mv "$NEW_STATE_FILE" "$STATE_FILE" sync "$STATE_FILE" sync "$(dirname "$STATE_FILE")" trap "" EXIT fi
Upload File
Create Folder