SYD-LS(1)

πŸ“¦
version 3.59.0 Β· 3 versions
, in arch rolling

πŸ’… SYD-LS(1) β€” like, the actual manual page, bestie πŸŽ€

okay so picture this: it's a General Commands Manual page, the utility is called syd-ls, and I'm about to explain the whole thing to you with zero gatekeeping. you're welcome. ✨


🌸 NAME 🌸

syd-ls β€” lists out all the unsafe directories, capabilities, system calls, environment variables, ioctl requests, personalities, and prctl options. it's giving "inventory era" and honestly? iconic. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

syd-ls [set]

that's it. one optional thing. we love a low-maintenance queen. πŸ’…


✨ DESCRIPTION ✨

so syd-ls prints the names of the system calls that belong to whatever set you hand it. the available sets are:

  • aio
  • cpu
  • dead
  • deny
  • ebpf
  • futex
  • hook
  • nice
  • noop
  • pkey
  • ptrace
  • safe
  • setid
  • time
  • uring

and then there's the special ones, each with their own main-character moment:

  • if set is drop, then syd-ls prints the list of Linux capabilities(7) that get dropped at startup. bye bestie, you are not keeping those πŸ‘‹
  • if set is env, then syd-ls prints the list of unsafe environment variables. sus behavior, flagged.
  • if set is ioctl, then syd-ls prints the list of allowed ioctl requests.
  • if set is prctl, then syd-ls prints the list of allowed prctl options.
  • if set is personality, then syd-ls prints the list of allowed personalities. (not your personality, don't worry, yours slays πŸ’–)

and if you give it no set at all? plot twist β€” syd-ls lists all files in the current working directory. no cap. in this mode, getdents64(2) is used directly, and the whole point is you use it to list files in untrusted directories with a huge number of files. file names are printed hex-encoded, delimited by newline β€” so grab syd-hex(1) to decode them. there's a whole demo in the EXAMPLES section, keep reading 🫢


πŸ”₯ EXAMPLES πŸ”₯

this is the part where it gets good. look at this absolute flex:

[alip@caissa tmp]$ mkdir test; cd test
[alip@caissa test]$ for i in {1..10000000}; do :>$i; done
[alip@caissa test]$ df -i .
Filesystem       Inodes    IUsed IFree IUse% Mounted on
tmpfs          10048576 10000228 48348  100% /tmp
[alip@caissa test]$ syd-ls | head -n5 | syd-hex -dfs
.
..
10000000
9999999
9999998
[alip@caissa test]$ for ls in syd-ls gls 9ls 'busybox ls'; do
> sync
> sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
> echo "[*] $ls"
> time $ls >/dev/null
> done
[*] syd-ls
syd-ls: Listed 10000002 files in 2.882764582 seconds.

real    0m2.889s
user    0m0.883s
sys     0m1.995s
[*] gls

real    0m7.548s
user    0m5.724s
sys     0m1.803s
[*] 9ls

real    0m15.306s
user    0m2.523s
sys     0m12.743s
[*] busybox ls

real    0m18.011s
user    0m11.178s
sys     0m6.786s
[alip@caissa test]$ gls --version | head -n1
ls (GNU coreutils) 9.6
[alip@caissa test]$ pacman -Ss 9base | head -n1
extra/9base 6-9 [installed]
[alip@caissa test]$ busybox | head -n1
BusyBox v1.36.1 () multi-call binary.

did you SEE those numbers 😭 syd-ls ate that benchmark up, 2.8 seconds vs. 18 for busybox. not me being obsessed with a directory lister. it's giving speedrun any%. ⭐


πŸ‘€ SEE ALSO πŸ‘€

syd homepage: https://sydbox.exherbo.org/ β€” go click it, i'll wait πŸ¦‹


πŸ’œ AUTHORS πŸ’œ

maintained by Ali Polatel. up-to-date sources can be found at https://gitlab.exherbo.org/sydbox/sydbox.git and on Radicle at rad:z38HCnbmcDegA2BMxuPaPRPMdp6wF. bugs/patches can be submitted to https://gitlab.exherbo.org/groups/sydbox/-/issues. discuss in #sydbox on Libera Chat or in #sydbox:mailstation.de on Matrix. come hang out, the vibes are immaculate 🫢


and that's the page!! version/date stamp for the girlies: 2026-09-01. periodt. πŸ’…πŸŽ€βœ¨

πŸ“¦ where this page comes from