'tmutil listbackups' doesn't work with tmux in Mojave
I've tried to list past TM backups while running in a tmux
session, but the solution described in this question doesn't seem to work on macOS Mojave any longer:
root@nomi ~> tmutil listbackups
The operation could not be completed because tmutil could not access
private application data on the backup disk. Use the Privacy tab
in the Security and Privacy preference pane to add Terminal to the
list of applications which can access Application Data.
I tried to grant Terminal
access to my data:
but it doesn't work. So how do I list/delete my old backups in Mojave if I run the shell in tmux
?
You must run the command inside Terminal without any ancestor other than the program itself: that is no screen
or tmux
or any other terminal helper.
Otherwise the calling program will be the helper and not Terminal itself, and you will need to add that helper to the Privacy settings of MacOS.
EDIT: add pstree info
This happens, at least for tmux
, because it spawns another process wich is not a child of iTerm/Terminal. With pstree
I see the following:
-+= 00001 root /sbin/launchd
...
| |-+= 12748 maxxer /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp maxxer
| | \-+= 12749 root login -fp maxxer
| | \-+= 12750 maxxer -zsh
| | \--= 14144 maxxer tmux
...
|-+= 14146 maxxer tmux
| \-+= 14147 maxxer -zsh
| \--= 14170 root top
|--= 14212 maxxer /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Versions/A/Support/mdworker_shared -s mdworker -c MDSImporterWorker -m com.apple.mdworker.shared
PID 14144
is tmux launched in iTerm2, while 14146
is the actual tmux
program running top
in the first shell