Restic: MacOS Mojave: рддреНрд░реБрдЯрд┐: рдЦреБрд▓рд╛: ... рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдЕрдХреНрддреВре░ 2018  ┬╖  56рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: restic/restic

MacOS Mojave рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рд░реЗрд╕реНрдЯрд┐рдХ рдПрдХреНрд╕реЗрд╕ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ), рдореБрдЭреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдорд┐рд▓реАрдВред

рдореИрдХреЛрдЬрд╝ 10.14

рд╕реБрдбреЛ рдХреЗ рд╕рд╛рде рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

can not obtain extended attribute com.apple.rootless for /Library/Application Support/com.apple.TCC
error: Open: open /Library/Application Support/com.apple.TCC: operation not permitted
error: open /Library/Preferences/com.apple.TimeMachine.plist: operation not permitted

... рдХрдИ рдЕрдиреНрдп рдлрд╛рдЗрд▓реЗрдВред

restic version . рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ

0.9.2 (рд╣реЛрдордмреНрд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛)

рдЖрдкрдиреЗ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛?

рд╡рд╣реА рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдореИрдВ Mojave рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдорд╣реАрдиреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реВрдВред

RESTIC_PASSWORD_FILE="/path/to/file.txt" \
HOME="/path/to/homedir" \
/usr/local/bin/restic \
    --repo sftp:myserver.local:my/repo/path \
    --option='sftp.command=ssh -p REDACTEDPORT -i REDACTEDKEYFILE -o identitiesonly=yes -l restic myserver.local -s sftp' \
    --exclude-file="${DIR}/global-exclude.txt" \
    --exclude-if-present='.norestic' \
    backup \
    --cleanup-cache \
    / \
    &>> /path/to/file.log

рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдиреЗ рдХрд┐рд╕ рдмреИрдХрдПрдВрдб/рд╕рд░реНрд╡рд░/рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛?

sftp, рдКрдкрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рдкрд┐рдЫрд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд░реЗрдкреЛред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рдиреЗ рдкрд░ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдмреИрдХ рдЕрдк рд▓реЗрддрд╛ рд╣реИ (рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдПрдХ рд░реЗрд╕реНрдЯрд┐рдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ)ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдКрдкрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░

рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

sudo bash restic-backup.sh (рдКрдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ)

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ:

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП?

рдирд╣реАрдВред рдореИрдВрдиреЗ рдЕрдм рддрдХ рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ:

  • MacOS рдкрд░ рдХреЛрдИ libcap рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП setcap рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
  • рдирдП рд╕рд┐рд╕реНрдЯрдо рд╡рд░реАрдпрддрд╛рдПрдБ -> рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЧреЛрдкрдиреАрдпрддрд╛ рдлрд▓рдХ рдореЗрдВ "рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕" рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред

рдХреНрдпрд╛ рд░реЗрд╕реНрдЯрд┐рдХ рдиреЗ рдЖрдкрдХреА рдорджрдж рдХреА рдпрд╛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЦреБрд╢ рдХрд┐рдпрд╛?

рдПрдХ рдЕрдЪреНрдЫрд╛, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпреЛрдЧреНрдп, рдУрдкрди рд╕реЛрд░реНрд╕ рдмреИрдХрдЕрдк рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╣реИ рдЬреЛ рдмрд┐рд▓ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдмрд╣реБрдд рдЖрднрд╛рд░реА!

backup documentation wanted darwin discussion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрд░реЙрдирд┐рдХ рдЬреЙрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд░реВрдЯ рдХреНрд░реЙрд╕реНрдЯреИрдм sudo crontab -e рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╕реБрдбреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реБрд▓рдн рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХреВрдВ . рдореБрдЭреЗ @ n8henrie рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓ рд░рд╣реА рдереАрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреГрд╖реНрдарднреВрдорд┐:

рдореЗрд░реЗ рдкрд╛рд╕ /Users/myuser/bin рдореЗрдВ рдПрдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо restic-backup.sh рд╣реИ рдЬрд┐рд╕рдХреА рдЕрдиреБрдорддрд┐ 700 рд╣реИ (рдХреЗрд╡рд▓ рд░реВрдЯ/рд╕реБрдбреЛ рд░реАрдб/рд░рд╛рдЗрдЯ/рдирд┐рд╖реНрдкрд╛рджрд┐рдд)ред рдореИрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рд░реВрдЯ crontab sudo crontab -e рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ iTerm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ Homebrew рдХреЗ рд╕рд╛рде restic рдФрд░ zsh рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдХреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 10.14.5

рд░реЗрд╕реНрдЯрд┐рдХ-рдмреИрдХрдЕрдк.рд╢:

рдореЗрд░реА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред

#!/usr/local/bin/zsh
restic_path="/usr/local/bin"
logFile="/Users/myuser/Documents/Backups/configurations/Mac/backup_logs/$(date +%F_%H%M)_restic.log"
unset HISTFILE
export RESTIC_REPOSITORY="..."
export AWS_ACCESS_KEY_I'd="..."
export AWS_SECRET_ACCESS_KEY="..."
export RESTIC_PASSWORD="..."
$restic_path/restic --verbose backup /Users/myuser  &> $logFile

рдлрд┐рд░ рдореЗрд░реА рд░реВрдЯ рдХреНрд░реЙрд╕реНрдЯреИрдм рдлрд╝рд╛рдЗрд▓ рдореЗрдВ: sudo crontab -e рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

0 */2 * * * /Users/myuser/bin/restic-backup.sh

рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ:

рдХреНрд░реЛрди ==> /usr/sbin/cron
iTerm.app ==> /Applications/iTerm.app

@ n8henrie рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ restic рдЬреИрд╕реА рдлрд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдлрдбреАрдП рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ sudo рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдПрдлрдбреАрдП рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: cron рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ iTerm.app ред

рд╕рднреА 56 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЖрдкрдХреЛ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдХреА рдмрд╛рдд рдХрд░рдиреА рд╣реИ: https://www.backblaze.com/blog/mojave-permissions/

рдХреНрдпрд╛ рдЖрдк _рдирд┐рд╢реНрдЪрд┐рдд_ рд╣реИрдВ рдЖрдкрдиреЗ рд╕рд╣реА рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдЬреЛрдбрд╝реА рд╣реИ? рд╕рд┐рд╕реНрдЯрдо рд╡рд░реАрдпрддрд╛ рдореЗрдВ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рдЖрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдпрд╛ рдЗрд╕рдХреА рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ (рд╕реНрд╡рд╛рдорд┐рддреНрд╡, рдЖрджрд┐) рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛?

(рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореИрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ Mojave рдирд╣реАрдВ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред)

рдореИрдВ рд╣реЛрдордмреНрд░реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ /usr/local/bin/restic рдЬреЛрдбрд╝рд╛, рдПрдХ рдиреМрдХрд░реА рд╢реБрд░реВ рдХреА, рдЙрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдиреЛрдЯ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЗрдирд░реА рдореЗрдВ рдкрде рдЬреЛрдбрд╝рд╛ (рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ рд╣рд░ рдмрд╛рд░ рд░реЗрд╕реНрдЯрд┐рдХ рдЕрдкрдбреЗрдЯ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ): /usr/local/Cellar/restic/0.9.2/bin/restic , рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ, рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ sudo myscript.sh рдЪрд▓рд╛, рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рджреВрд╕рд░реЛрдВ рдкрд░ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрддрд╛ рдерд╛ред

рд╕рд╛рдЗрдб-рдиреЛрдЯ, рдПрдХ рдФрд░ (рд╕рдВрднрд╡рддрдГ Mojave- рд╕рдВрдмрдВрдзрд┐рдд) рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдореЗрд░реЗ sftp рдкрдмрдХреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдиреЗ рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ (рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ) рд╕реЗ рдЪрд▓рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдЧрд░ рдореИрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рджрд░реНрдЬ рдХрд░реЗрдВред

рджрд┐рд▓рдЪрд╕реНрдкред рдпрджрд┐ рдЖрдк рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рд╕реАрдзреЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдФрд░/рдпрд╛ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ FDA рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрд╣рд╛рдВ рд╕рд┐рд░реНрдл рдЕрдВрдзреЗрд░реЗ рдореЗрдВ рд╢реВрдЯрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ Mojave рд╣реЛрддрд╛ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рддрд╛ред

рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ред

рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдпрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ), рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ sudo bash myscript.sh ( /usr/local/bin/bash рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ) рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддрд╛ рд╣реВрдВ; рдЗрд╕реЗ рдПрдлрдбреАрдП рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдПрдлрдбреАрдП рдореЗрдВ /usr/local/bin/bash рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреЛрдИ рдкрд╛рд╕рд╛ рдирд╣реАрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реВрдВ, chmod +x рдХреЗ рдмрд╛рдж рднреА, рдореЗрд░рд╛ backup.sh рдЕрднреА рднреА рд╕реАрдзреЗ FDA рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрдмрдХрд┐ bash рдФрд░ restic рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЕрдЬреАрдмред

EDIT2: рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ bash рдФрд░ restic рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ FDA рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред

рд╢рд╛рдпрдж рд░реЗрд╕реНрдЯрд┐рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ - рдореИрдВрдиреЗ рдПрдлрдбреАрдП рд╕реВрдЪреА рдореЗрдВ /bin/ls рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИред

$ sudo /bin/ls /Users/me/Library/Suggestions
ls: Suggestions: Operation not permitted

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдмрджрд╕реВрд░рдд рдХрд╛рдордХрд╛рдЬ: рдПрдлрдбреАрдП рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ Terminal.app рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдВред

рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реВрддреНрд░: https://forums.developer.apple.com/thread/107546

рдмрд╛рдХреА рдмрд╛рдЗрдирд░реА рдФрд░ рдореЗрд░реА backup.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ codesign рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ FDA рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред

(рдЙрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж) рдЕрдЪреНрдЫрд╛рдИред рдпрд╣ рд╕реБрдкрд░ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдПрдХ рдмрд╛рд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рднреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ ...

рд╡рд╛рд╣, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╣рд░ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореЗрд░реЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореИрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдЕрдЧрд░ рдЖрдк рджреЛрдиреЛрдВ рдЗрд╕реЗ рд╕рдордЭ рд╕рдХреЗрдВ рдФрд░ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░ рд╕рдХреЗрдВ! рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!

@mholt рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк VMware рдлреНрдпреВрдЬрди рдХрд╛ 30 рджрд┐рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ Mojave рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрдм рддрдХ рдХрд┐ Apple рдЗрд╕реЗ рддрджрд░реНрде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЕрдкрдВрдЧ рди рдХрд░ рджреЗ)ред рд╡рд╣ рдкрд░реАрдХреНрд╖рдг рдХреЛрдИ рдкреНрд░рджреВрд╖рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ Terminal.app рдХреЛ System Preferences -> Security & Privacy -> Full Disk Access рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдереА ( sudo /usr/local/bin/bash mybackup.sh ) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЬрдм рдореИрдВрдиреЗ рдЖрдЬ рд╕реБрдмрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдУрд╡рд░рдирд╛рдЗрдЯ рд░реЗрд╕реНрдЯрд┐рдХ рд░рди ( launchd рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ /Library/LaunchDaemons/com.n8henrie.restic.plist рдкрд░ рдЬреЛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд░рд╛рдд рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ) рд╕реЗ рдЕрдкрдиреЗ рд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХреА, рддреЛ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЕрднреА рднреА рд╣реИрдВред

рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЕрдм рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдлрдбреАрдП рдореЗрдВ Terminal.app рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рддрдм рднреА рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ рдЬрдм рдореИрдВ sudo launchctl start com.n8henrie.restic рдпрд╛ sudo /usr/local/bin/bash mybackup.sh рдЪрд▓рд╛рддрд╛ рд╣реВрдВред

рддреЛ рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рдмрджрд▓ рдЧрдпрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЧрд╣, рдмрд╕ рд╕рднреА 3 рдХреЛ FDA рдореЗрдВ рдЬреЛрдбрд╝рд╛ - Terminal.app , /usr/local/bin/bash , рдФрд░ /usr/local/Cellar/restic/0.9.2/bin/restic - рдФрд░ рдЕрдм рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛ред тАНтЩВя╕П

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рдпрд╣рд╛рдВ рдореЗрд░рд╛ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░реА рдлреЛрдЯреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реА рдХреБрдЫ рдмрдбрд╝реА рдЪрд┐рдВрддрд╛рдПрдВ рд╣реИрдВред

@ n8henrie рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдореИрдХ рд╕рдкреЛрд░реНрдЯ рдереНрд░реЗрдб рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ FDA рдХреЛ рд╕реНрд╡реАрдХреГрдд рдРрдкреНрд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдкрдВрдЬреАрдХреГрдд .app рдмрдВрдбрд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Terminal.app рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рднреА 3 рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдлрдбреАрдП рдХреЛ? рджрд┐рд▓рдЪрд╕реНрдк...

@mholt рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬреИрд╕реЗ рд╡реЗ рдХрд▓ рдереЗ (рдПрдлрдбреАрдП рдореЗрдВ рд╕рднреА 3, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рдереАрдВ), рдФрд░ рдореЗрд░реЗ рд░рд╛рдд рднрд░ рдЪрд▓рдиреЗ рдореЗрдВ рдЕрднреА рднреА рд╡рд╣реА рдкреБрд░рд╛рдиреА рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВред

рдпрд╣ рдЕрдм рджреЛ рдмрд╛рд░ рд╣реБрдЖ рд╣реИ, рдЬрд╣рд╛рдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреБрдорддрд┐ рдХреЗ рд░рди рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ - рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреИрд╢? рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдЙрди рд░рдиреЛрдВ рд╕реЗ рдореВрд░реНрдЦ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░рд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╢реНрдиред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд░реЗрд╕реНрдЯрд┐рдХ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд┐рддрдиреА рдЖрдХреНрд░рд╛рдордХ рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред

SO рдкрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░реНрдЪрд╛: https://apple.stackexchange.com/q/338213/27415

рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╢реНрдиред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд░реЗрд╕реНрдЯрд┐рдХ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдЖрджрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд┐рддрдиреА рдЖрдХреНрд░рд╛рдордХ рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рдХреИрд╢ рдореЗрдВ рдХреЗрд╡рд▓ рд░реЗрдкреЛ рдХреА рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВ, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (рдЬреЛ рд░реЗрдкреЛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

рдареАрдХ рд╣реИ - рд╣рд╛рдБ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд░реЗрд╕реНрдЯрд┐рдХ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ macOS Mojave рдореБрджреНрджрд╛ рд╣реИ, рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд░реЗрд╕реНрдЯрд┐рдХ рдЦреБрдж рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдмрдврд╝рд┐рдпрд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмрдВрдж рд╣реЛрддреЗ рджреЗрдЦрдХрд░ рдереЛрдбрд╝рд╛ рд╣реИрд░рд╛рди рд╣реВрдВ -- рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ a
рдПрдХ рдкреНрд░рдореБрдЦ рдордВрдЪ рдХреЗ рд╕рд╛рде рдкреНрд░рдореБрдЦ рдЕрд╕рдВрдЧрддрд┐, рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдмрдВрдж рдХрд░рдирд╛
рдЗрд╕реЗ "рджреГрд╖реНрдЯрд┐ рд╕реЗ рдмрд╛рд╣рд░, рджрд┐рдорд╛рдЧ рд╕реЗ рдмрд╛рд╣рд░" рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рд╕рдордЭрддрд╛/рд╕рдордЭрддреА рд╣реВрдВ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЖрд░рд╛рдорджреЗрд╣ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ
MacOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдЪрд┐рдд рдХрджрдо рдЙрдард╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рд╣реИ,
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдкрдиреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛
рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рдлрд╝реЛрдЯреЛ) рд╕реЗ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХреА рдЬрд╛рддреА рд╣реИ
рдореИрдХ рдУ рдПрд╕ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдмреИрдХрдЕрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ!

рдХреБрдЫ рд╕реБрдЭрд╛рд╡/рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ (рдЬрд┐рди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ):

  • рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ

    • рдХреНрдпрд╛ рдПрдХ рдЙрдЪрд┐рдд рдореИрдХреЛрдЬрд╝ рд░реИрдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ

      рдПрдлрдбреАрдП рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ

    • рдпрджрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп

      рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдХреНрдпрд╛ рд╣рдо рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

      рдЦреБрдж рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдпрд╛ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде?

  • рд╕рдорд╛рдзрд╛рди

    • рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд/рдиреНрдпреВрдирддрдо рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

      рдЬрд┐рд╕реЗ рдПрдлрдбреАрдП рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

    • SIP рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА (рдФрд░ рдЬреЛрдЦрд┐рдо) рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

  • рдЪреЗрддрд╛рд╡рдиреА

    • рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд╣реАрдВ рдРрд╕реА рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ Mojave рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧреА

      рдЙрдирдХрд╛ рдбреЗрдЯрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреИрдХрдЕрдк рд╣реИ

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╕реНрдерд┐рддрд┐ рд░реВрдЯ рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реНрдг рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рднрд┐рдиреНрди рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ
рд▓рд┐рдирдХреНрд╕ рдкрд░, рдПрд╕рдЖрдИрдкреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЬреИрд╕реЗ рдЪрд▓рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ
рдЬрдбрд╝, рдФрд░ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдордЭреМрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде
FDA рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ setcap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реА рдореИрдХрдмреБрдХ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рджреБрдХрд╛рди рдореЗрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛
рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рдЪрд╛рд░ рд╕реБрдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА
рджреВрд╕рд░реЛрдВ рд╕реЗ; рд╢рд╛рдпрдж рдореИрдВ рдЖрдзрд╛рд░ рд╕реЗ рджреВрд░ рд╣реВрдБ, рдпрд╛ рд╕рдВрднрд╡рддрдГ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╕реЗ рдЕрдирднрд┐рдЬреНрдЮ рд╣реВрдБ
рдореБрджреНрджреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдЯреАрдо рд╡рд░реНрдХрдлрд╝реНрд▓реЛред

рдЕрдм рдХреБрдЫ рдФрд░ рдЕрдкрдбреЗрдЯ рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реА рдорд╢реАрди рд╡рд╛рдкрд╕ рдЖ рдЧрдИ рд╣реИ:

рдореИрдВ рдЕрдкрдиреА рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯрдо рдмреИрдХрдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдЕрдкрдиреА рд╕рдлрд▓рддрд╛рдУрдВ рдХреЛ рджреЛрд╣рд░рд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ред

рдореИрдВрдиреЗ рдиреАрдЪреЗ рджреА рдЧрдИ рд╕рднреА рдХреЛ рдПрдлрдбреАрдП рд╕реВрдЪреА (рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ) рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ:

  • рд░реЗрд╕реНрдЯрд┐рдХ
  • рджреЗ рдШреБрдорд╛ рдХреЗ
  • рдкреНрд░рдХреНрд╖реЗрдкрдг
  • рд▓реЙрдиреНрдЪрдбреА
  • Terminal.app

рдХреЗрд╡рд▓ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдПрдлрдбреАрдП рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рдирдВрдЧреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред MacOS рдФрд░ Homebrew рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП ls рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:

$ codesign -d /bin/ls
Executable=/bin/ls
$ codesign -d /usr/local/opt/coreutils/libexec/gnubin/ls
/usr/local/opt/coreutils/libexec/gnubin/ls: code object is not signed at all

рдПрдлрдбреАрдП рд╕реВрдЪреА рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдЬреЛрдбрд╝рдирд╛:

$ /bin/ls ~/Library/Mail
ls: Mail: Operation not permitted
$ /usr/local/opt/coreutils/libexec/gnubin/ls ~/Library/Mail
ls: cannot open directory '/Users/n8henrie/Library/Mail': Operation not permitted
$ # Added to FDA
$ /bin/ls ~/Library/Mail
PersistenceInfo.plist V6
$ /usr/local/opt/coreutils/libexec/gnubin/ls ~/Library/Mail
PersistenceInfo.plist  V6

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЬрдм рддрдХ ls FDA рдореЗрдВ рд╣реИ (рдЕрд▓рдЧ рд╕реЗ bash рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ), рддрдм рддрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдкрд░ рд╡реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ restic рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдПрдлрдбреАрдП рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдмрд╛рдЗрдирд░реА рдПрдлрдбреАрдП рдореЗрдВ рд╣реИ (рд▓реЙрдиреНрдЪрдб/рд▓реЙрдиреНрдЪрдХреНрдЯрд▓/рдХреБрдЫ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рддрдм рддрдХ рд▓реЙрдиреНрдЪрдб рд╕реЗ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рднреА рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    matches, err := ioutil.ReadDir("/Users/n8henrie/Library/Mail")
    if err != nil {
        fmt.Println("Err:", err)
    } else {
        for _, match := range matches {
            fmt.Println(match.Name())
        }
    }
}

рдЖрдЙрдЯрдкреБрдЯ:

$ ./gotest
Err: open /Users/n8henrie/Library/Mail: operation not permitted
$ # Add to FDA
$ ./gotest
.DS_Store
PersistenceInfo.plist
V6

рдЖрдЧреЗ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдлрдбреАрдП рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рднреА рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреНрдпреЛрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреНрдп рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдПрдХ рдмрд╛рд░ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ)ред

рдареАрдХ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реВрдВрдЧрд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЬреЛрдбрд╝реЗрдВред

~рдлрд┐рд░ рднреА рдирдП рд░реЗрдкреЛ рдкрд░ Open рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓ рд░рд╣реА рд╣реИрдВ, restic рдХреЛ FDA рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред~

рдиреАрдЪреЗ рд╕рдВрдкрд╛рджрд┐рдд рджреЗрдЦреЗрдВред

$ restic -r /tmp/restic backup ~/Library/Mail -vvv
open repository
enter password for repository:
repository 9ccb5357 opened successfully, password is correct
created new cache in /Users/me/Library/Caches/restic
lock repository
load index files
start scan on [/Users/me/Library/Mail]
start backup on [/Users/me/Library/Mail]
scan: Open: open /Users/me/Library/Mail: operation not permitted
scan finished in 1.849s: 0 files, 0 B
can not obtain extended attribute com.apple.quarantine for /Users/me/Library/Mail:
error: Open: open /Users/me/Library/Mail: operation not permitted
new       /Users/me/Library/, saved in 0.012s (0 B added, 13 B metadata)
new       /Users/me/, saved in 0.012s (0 B added, 381 B metadata)
new       /Users/, saved in 0.013s (0 B added, 379 B metadata)

Files:           0 new,     0 changed,     0 unmodified
Dirs:            3 new,     0 changed,     0 unmodified
Data Blobs:      0 new
Tree Blobs:      4 new
Added to the repo: 1.119 KiB

processed 0 files, 0 B in 0:01
snapshot 4a658c73 saved
$ restic -r /tmp/restic ls latest
enter password for repository:
repository 9ccb5357 opened successfully, password is correct
snapshot 4a658c73 of [/Users/me/Library/Mail] filtered by [] at 2018-11-04 11:30:05.334024 -0700 MST):
/Users
/Users/me
/Users/me/Library

screenshot 2018-11-04 at 11 32 18 am

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░реЗрдВ - рдореИрдВ рдЕрднреА рднреА рд░реБрдХ-рд░реБрдХ рдХрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рддреНрд░рд╕реНрдд рд╣реВрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдЧрддрд┐ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реА рд╣реИрдВ, рд╢рд╛рдпрдж рдХрд▓ рдореИрдХрдУрдПрд╕ 10.14.1 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдеред рдЖрдЬ, рдХрд▓ рд╕реЗ рд╡рд╣реА рдЧреЛ рдХреЛрдб рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдПрдлрдбреАрдП рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ (рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛) рдЕрдм рдПрдлрдбреАрдП рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ ред ls рдХреЗ рд╕рд╛рде рд╣реАред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ Terminal.app рдХреЛ FDA (рдПрдХрдорд╛рддреНрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд▓ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред

тАНтЩВя╕П

рдЕрдЧрд░ рдореИрдВ Apple рдлрд╝реЛрд░рдо рдореЗрдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рднреА рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдБ рддреЛ рдореИрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдБрдЧрд╛ред

EDIT2: рдкрддреНрдиреА рдХреА рдореИрдХрдмреБрдХ рдЕрднреА рднреА 10.14 рдкрд░ рд╣реИ, рдФрд░ /bin/ls ~/Library/Mail рдПрдлрдбреАрдП рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП /bin/ls рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 10.14.1 рдореЗрдВ рдпрд╣ рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ

рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рдмрд╣реБрдд рджрд░реНрджрдирд╛рдХ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдВрддрддрдГ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рд╕реНрддреГрдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ:

рдРрдкреНрдкрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк Script Editor.app рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣ AppleScript рдЖрдкрдХреА рд░реЗрд╕реНрдЯрд┐рдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ /path/to/restic-backup.sh , рдЬрд╣рд╛рдВ restic-backup.sh рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдореЗрд░реА рд╡рд╛рдВрдЫрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд░реЗрд╕реНрдЯрд┐рдХ рдЪрд▓рддреА рд╣реИ), рдФрд░ рдЖрдк рдкрд░рд┐рдгрд╛рдореА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рдХреЛ FDA рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдмреИрдХрдЕрдк рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд open рдХрдорд╛рдВрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдЬрдм рдПрдлрдбреАрдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдкрд░ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реЗрдВрдЧреА рдЬреЛ рдХреЗрд╡рд▓ рд░реВрдЯ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реВрдЯ) -рд╕реНрд╡рд╛рдорд┐рддреНрд╡ 0600 рд╕рд╛рдорд╛рди)ред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ AppleScript рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ sudo рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗ рдФрд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрд┐рдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗ ( sudo visudo , NOPASSWD: , рдЖрджрд┐ред)ред

рдпрд╣ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд╡рд╛рд▓реЗ MacOS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдХреБрдЫ рдФрд░ рд╕рдВрддреЛрд╖рдЬрдирдХ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдмрд╣реБрдд рд╕рдВрддреЛрд╖рдЬрдирдХ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред

рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп, рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рд╛рдл рдФрд░ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реИред

// Runrestic provides a binary to run my restic backup script in MacOS Mojave with Full Disk Access
package main

import (
    "log"
    "os"
    "os/exec"
    "path/filepath"
)

func main() {
    ex, err := os.Executable()
    if err != nil {
        log.Fatal(err)
    }
    dir := filepath.Dir(ex)
    script := filepath.Join(dir, "restic-backup.sh")
    cmd := exec.Command("/usr/local/bin/bash", script)
    if err := cmd.Run(); err != nil {
        log.Fatal(err)
    }
}

рдкрд░рд┐рдгрд╛рдореА рдмрд╛рдЗрдирд░реА chown root рдФрд░ chmod 0700 рд╣реЛ рд╕рдХрддреА рд╣реИ, рдлрд┐рд░ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП /Library/LaunchDaemons рдкреНрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╣рд▓реЗ 2 рд░рди рдЕрдм рддрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдКрдкрд░ рдХрдИ рдЭреВрдареА рд╢реБрд░реБрдЖрдд рдХреА рддрд░рд╣ рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдХрд▓ рд░рд╛рдд рдореЗрд░реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВ рдЖрдЬ рдЗрд╕ рд░рдгрдиреАрддрд┐ рдХреЛ рдЕрдкрдиреА рдкрддреНрдиреА рдХреА рдореИрдХрдмреБрдХ рдПрдпрд░ рдкрд░ рддреИрдирд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЙрдЪрд┐рдд рд╕реБрдзрд╛рд░ рдорд╛рдиреВрдВрдЧрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рдкреАрдЖрд░ рдкрд░ https://github.com/restic/restic рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред net (рдпрджрд┐ рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ)ред

рд╣рд╛рдп @ n8henrie , рдореИрдВ рдЗрд╕ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣рд╛рдВ рдЖрдпрд╛ рд╣реВрдВред рдпрд╣ рд╕рдм рд╢реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди (рд╕рд░рд▓ рдЧреЛ рдмрд╛рдЗрдирд░реА рд╕реЗ рдХреЙрд▓ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рддрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ?

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ stdout/stderr рдХреЛ/dev/null рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯрдбрд┐рди рдХреЛ рднреА рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрд╕реНрдЯрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред (рдпрд╣ рднреА рдЕрдЬреАрдм рд╣реИ, рдЖрдкрдХрд╛ рдмреИрд╢ рдХреНрдпреЛрдВ рд╣реИ /usr/local/bin/bash рдФрд░ рдирд╣реАрдВ /bin/bash ? рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБред)

рд╡реИрд╕реЗ рднреА рдореИрдВрдиреЗ рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рд╣реИрдВ:

    cmd := exec.Command("/bin/bash", script)
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реА рдкрд╣рд▓реА рдкреНрд░рд╡реГрддреНрддрд┐ рдПрдлрдбреАрдП рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдереА, рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП 10.14.1 (18B75) рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрдпреЛрдВ рдбрд╛рд▓рдирд╛ (рдЧреЛ рд░реИрдкрд░ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛, рдЖрдЦрд┐рд░рдХрд╛рд░ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛) рдХреБрдЫ рднреА рдмрджрд▓ рджреЗрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

@ n8henrie рд╣рдореЗрдВ рддреИрдирд╛рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдХреА рдмреНрд▓реЙрдЧ рдкрд░ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ (рдореИрдиреБрдЕрд▓ рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛) ... :)

@ fd0 рдореБрдЭреЗ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛!

@armhold рд╣рд╛рдБ, рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдиреАрдЪреЗ рджреЗрдЦреЗрдВред рдореЗрд░реА рдкрддреНрдиреА рдХреЗ рдПрдордмреАрдП рдкрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдПрдХ рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд░ рдирд╣реАрдВ)ред рдЙрд╕рдХреЗ рд▓рд┐рдП IIRC, рдореИрдВрдиреЗ рдмрд╛рдЗрдирд░реА рдмрдирд╛рдИ, рдлрд┐рд░ рд░рд┐рдмреВрдЯ рдХрд┐рдпрд╛, рдлрд┐рд░ FDA рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдлрд┐рдХреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ:

Thu Nov 15 02:00:00 MST 2018 :: Starting restic-backup.sh
can not obtain extended attribute com.apple.rootless for /Library/Application Support/com.apple.TCC:
error: Open: open /Library/Application Support/com.apple.TCC: operation not permitted
error: open /Library/Preferences/com.apple.TimeMachine.plist: operation not permitted
error: Open: open /Users/me/Library/Application Support/AddressBook: operation not permitted
error: Open: open /Users/me/Library/Application Support/CallHistoryDB: operation not permitted
error: Open: open /Users/me/Library/Application Support/CallHistoryTransactions: operation not permitted
error: Open: open /Users/me/Library/Application Support/MobileSync: operation not permitted
error: Open: open /Users/me/Library/Application Support/com.apple.TCC: operation not permitted
error: Open: open /Users/me/Library/Calendars: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.Home: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.Safari: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.VoiceMemos: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.iChat: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.mail: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.news: operation not permitted
error: Open: open /Users/me/Library/Containers/com.apple.stocks: operation not permitted
can not obtain extended attribute com.apple.quarantine for /Users/me/Library/Cookies:
error: Open: open /Users/me/Library/Cookies: operation not permitted
error: Open: open /Users/me/Library/HomeKit: operation not permitted
error: Open: open /Users/me/Library/IdentityServices: operation not permitted
can not obtain extended attribute com.apple.quarantine for /Users/me/Library/Mail:
error: Open: open /Users/me/Library/Mail: operation not permitted
error: Open: open /Users/me/Library/Messages: operation not permitted
error: Open: open /Users/me/Library/Metadata/CoreSpotlight: operation not permitted
error: Open: open /Users/me/Library/Metadata/com.apple.IntelligentSuggestions: operation not permitted
can not obtain extended attribute com.apple.metadata:com_apple_backup_excludeItem for /Users/me/Library/PersonalizationPortrait:
error: Open: open /Users/me/Library/PersonalizationPortrait: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.AddressBook.plist: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.AddressBook.plist.KaSTvBv: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.AddressBook.plist.M410OmB: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.AddressBook.plist.Sjhd5Xh: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.AddressBook.plist.ceAM0im: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.homed.notbackedup.plist: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.homed.plist: operation not permitted
error: open /Users/me/Library/Preferences/com.apple.mail-shared.plist: operation not permitted
error: Open: open /Users/me/Library/Safari: operation not permitted
can not obtain extended attribute com.apple.metadata:com_apple_backup_excludeItem for /Users/me/Library/Suggestions:
error: Open: open /Users/me/Library/Suggestions: operation not permitted
can not obtain extended attribute com.apple.FinderInfo for /Users/me/Pictures/Photos Library.photoslibrary:
can not obtain extended attribute com.apple.quarantine for /Users/me/Pictures/Photos Library.photoslibrary:
error: Open: open /Users/me/Pictures/Photos Library.photoslibrary: operation not permitted

Files:         179 new,   261 changed, 857338 unmodified
Dirs:            0 new,     0 changed,     0 unmodified
Added to the repo: 266.392 MiB

processed 857778 files, 186.192 GiB in 12:57
snapshot 46831f24 saved
Thu Nov 15 02:12:58 MST 2018 :: restic-backup.sh finished.
Duration: 778 seconds

рдлрд┐рдХреНрд╕ рдХреЗ рдмрд╛рдж:

Tue Nov 27 02:00:00 MST 2018 :: Starting restic-backup.sh

Files:         389 new,  2367 changed, 1055845 unmodified
Dirs:            0 new,     0 changed,     0 unmodified
Added to the repo: 430.279 MiB

processed 1058601 files, 295.471 GiB in 18:16
snapshot e58d8f1c saved
Tue Nov 27 02:18:17 MST 2018 :: restic-backup.sh finished.
Duration: 1097 seconds

рдореЗрд░реА рдкрддреНрдиреА рдХреА рдореИрдХрдмреБрдХ рдПрдпрд░ рдкрд░ рднреА рд╡рд╣реА рдлрд┐рдХреНрд╕ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рджреЛрдиреЛрдВ рд░рд┐рдореЛрдЯ рдкрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реИрдВ restic find '/Users/*/Library/Mail' --snapshot latest --host=$(hostname) (рдЬрд╣рд╛рдВ ~/Library/Mail рдЖрдорддреМрд░ рдкрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓реЙрдЧ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) .

рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ stdout/stderr рдХреЛ/dev/null рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯрдбрд┐рди рдХреЛ рднреА рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрд╕реНрдЯрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдореЗрд░реА рдореВрд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ, рдЗрд╕реЗ рдПрдХ (рд░реВрдЯ-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реА 0600) рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдирд╡рд░ рдпрд╛ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рднреА рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ: &>> /path/to/file.log ред

(рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдордЬрд╛рдХрд┐рдпрд╛, рдЖрдкрдХрд╛ рдмреИрд╢/usr/рд▓реЛрдХрд▓/рдмрд┐рди/рдмреИрд╢ рдХреНрдпреЛрдВ рд╣реИ рдФрд░/рдмрд┐рди/рдмреИрд╢ рдирд╣реАрдВ рд╣реИ? рдмрд╕ рдЙрддреНрд╕реБрдХ рд╣реИред)

рдореИрдВ рдмреИрд╢ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдордмреНрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

$ /bin/bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.
$ /usr/local/bin/bash --version
GNU bash, version 4.4.23(1)-release (x86_64-apple-darwin17.5.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

рдпрд╣ рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ &>file.log рдСрдкрд░реЗрдЯрд░ (рдЬреЛ 2>&1 >file.log рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдмрдЪрд╛рддрд╛ рд╣реИред

рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░реА рдкрд╣рд▓реА рдкреНрд░рд╡реГрддреНрддрд┐ рдПрдлрдбреАрдП рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдереА, рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП 10.14.1 (18B75) рдХреЗ рддрд╣рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрдпреЛрдВ рдбрд╛рд▓рдирд╛ (рдЧреЛ рд░реИрдкрд░ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛, рдЖрдЦрд┐рд░рдХрд╛рд░ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛) рдХреБрдЫ рднреА рдмрджрд▓ рджреЗрдЧрд╛ред

рдореИрдВ рднреА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВред рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕реЗ рдЕрдиреНрдп рд╕реЗрдЯрдЕрдк рд╣реИрдВ рдЬреЛ рдореИрдВ рдЕрдкрдиреА рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ (рдХреБрдЫ рдЬрдЯрд┐рд▓ sftp рдХрдорд╛рдВрдб рдЬрд╣рд╛рдВ рдЧрдВрддрд╡реНрдп, рдмреИрдХрдЕрдк рдкрде рдФрд░ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реЛрд╕реНрдЯрдирд╛рдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ) рдЗрд╕рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реА рдирд╣реАрдВ рдерд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдкред рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдареАрдХ рд╣реИ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг, рд░рд┐рдмреВрдЯрд┐рдВрдЧ + FDA рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА operation not permitted рдорд┐рд▓рддрд╛ рд╣реИред рдмрд╛рдЗрдирд░реА рд░реИрдкрд░ рдФрд░ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рдХреЛ/рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВред рдореИрдВ рдЦреБрджрд╛рдИ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред

рд╣реБрд╣ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП /Applications рдореЗрдВ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдЖрдк 10.14 рдпрд╛ 10.14.1 рдкрд░ рд╣реИрдВ? рдореИрдВ рдмрд╛рдж рдореЗрдВ рд╣реВрдБред

рдФрд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд tccutil рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ 10.14.1 (18B75) рдкрд░ рд╣реВрдВред рдореИрдВрдиреЗ tccutil рдХрдорд╛рдВрдб рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХреЛрдИ рдХрд┐рд╕реНрдордд рдирд╣реАрдВред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдРрдкреНрдкрд▓ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╣реБрд╣ред рдпрд╣ рдЧрд▓рдд рд╣реИред

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореИрдВ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ред

рдЕрд╕реНрдкрд╖реНрдЯ рдХреНрдпреЛрдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди (рдореЗрд░реЗ рд▓рд┐рдП) рд╣реИред

рдПрдХ рдФрд░ рдЖрдВрддрд░рд╛рдпрд┐рдХ рддреНрд░реБрдЯрд┐ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд░реБрдХрдирд╛ рдЪрд╛рд╣рд┐рдП
рдФрдкрдЪрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг/рд▓реЗрдЦрди рдЬрдм рддрдХ рд╣рдо рдХрд┐рд╕реА рдФрд░ рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ
рдХрдВрдкреНрдпреВрдЯрд░ рдПрдХ рд╣реА рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ 2 рдХреЗ рд▓рд┐рдП 2 рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрддрд╛ рдХреНрдпреЛрдВ
рдпрд╣ @armhold рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

@armhold , рдХреНрдпрд╛ рдЖрдк рд╕рдЯреАрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЧреЛ рдХреЛрдб рдХреА рдПрдХ рдкреНрд░рддрд┐ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреЗ рдЕрдВрдд рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореИрдВ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ред

рд╣рд╛рдБ, рдореИрдВ рдпрд╣реА рдирд╣реАрдВ рд╕рдордЭрддрд╛ред рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЧреЛ рд░реИрдкрд░ рдХреНрдпреЛрдВ рд╕рдлрд▓ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рд╕реНрд╡рдпрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред рдХреБрдЫ рд╣рдЯрдХрд░ рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд╕рдЯреАрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЧреЛ рдХреЛрдб рдХреА рдПрдХ рдкреНрд░рддрд┐ рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдЬрд╝рд░реВрд░, рдпрд╣ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/armhold/restic-fdaред

  • рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЧреЛ рд░реИрдкрд░ рджреЛрдиреЛрдВ рдореЗрд░реА ~/bin рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред
  • рд╕рд┐рд╕реНрдЯрдо рд╡рд░реАрдпрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ FDA рдореЗрдВ ~/bin/restic-fda рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛
  • рдореИрдВ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдПрдХ рдЧреИрд░-рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рд╕реЗ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ restic-fda рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓рддреА рд╣реИрдВ рдЬреИрд╕реЗ: error: Open: open /Users/armhold/Library/Application Support/AddressBook: operation not permitted ред
  • рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рд╕реБрдбреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдЗрд╕реА рддрд░рд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред

рд▓рд┐рдЯрд┐рд▓ рд╕реНрдирд┐рдЪ, рдПрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓, рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реИ - рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреВрдЫреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ "рдЯрд░реНрдорд┐рдирд▓ рдереНрд░реВ рд░реЗрд╕реНрдЯрд┐рдХ" рдХреЛ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдП (рд╕рд┐рд░реНрдл рд░реЗрд╕реНрдЯрд┐рдХ рдХреЗ рдмрдЬрд╛рдп); рдпрд╛рдиреА Terminal.app рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рд╣реИред

рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдореЗрд░реА рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд▓реИрдЯрд┐рдкрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдРрдк рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдирд╛ рдерд╛, рдФрд░ рдЙрд╕ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдРрдк рдХреЛ рдПрдлрдбреАрдП рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдерд╛ред рдлрд┐рд░ рдлрд╛рдЗрдВрдбрд░ рдХреЗ рдЬрд░рд┐рдП рдмреИрдХрдЕрдк рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдЕрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред

рдПрдлрд╡рд╛рдИрдЖрдИ рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдХреЛрдЬрд╝ рд╕рд╣рд┐рдд)
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ)ред @armhold рд╕реЗ рдХреЛрдИ рдЦрдмрд░?

рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╣рд╛рд░ рдорд╛рди рд▓реА рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдПрдлрдбреАрдП рдХреЛ рджреЗ рджрд┐рдпрд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдлрд┐рд░ рд╕реЗ рд╕реНрдЯрдореНрдкреНрдб рд╣реВрдБред

рдореИрдВ 10.14.2 рдкрд░ рд╣реВрдВред рдореЗрд░реА рд░реЗрд╕реНрдЯрд┐рдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рдХреЗ рд▓реЙрдЧ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдореБрдЭреЗ @armhold рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ (рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ~/Library/Mail рдЦреЛрд▓реЗрдВ)ред

тАНтЩВя╕П

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ (рдХрд╛рдордХрд╛рдЬреА) рд░реИрдкрд░ рдХреЛ рдПрдХ рддрд╛рдЬрд╛ рд░реЗрдкреЛ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдиреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрдкреЛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ рдЙрддрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрд╕реНрдЯрд┐рдХ рдкреЗрдбрд╝ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред

@mholt рдЗрд╕ рдФрд░ рдЕрд╡рд╢реЗрд╖ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ - рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреНрдпрд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ?

рдХреБрдЫ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рдФрд░ рдмрд┐рдирд╛ рд╕рд╛рдорд╛рди рд▓рдкреЗрдЯреЗ рдФрд░ рдЧрдбрд╝рдмрдбрд╝ рдХрд┐рдП рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

@rawtaz

рдЗрд╕ рдкрд░ рдФрд░ рдЕрд╡рд╢реЗрд╖ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ - рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреНрдпрд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реИрдВ?

рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рд╣реА Mojave рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд░реЗрд▓рд┐рдХрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ ~/рд▓рд╛рдЗрдмреНрд░реЗрд░реА/рдореЗрд▓ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп "рдСрдкрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ" рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рдлрд┐рд░ рдореИрдВрдиреЗ FDA рд╕реНрдХреНрд░реАрди рдореЗрдВ Relica.app рдЬреЛрдбрд╝рд╛ рдФрд░ Relica рдмреИрдХрдЕрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ред

screen shot 2018-12-27 at 1 54 49 pm

рдЗрд╕ рдмрд╛рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмреИрдХрдЕрдк рд▓рд┐рдпрд╛ рдЧрдпрд╛ (рдЬрдмрдХрд┐ рд░реЗрд▓рд┐рдХрд╛ + рд░реЗрд╕реНрдЯрд┐рдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкрд╣рд▓рд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдЕрдиреБрдорддрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдореЗрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рдерд╛):

screen shot 2018-12-27 at 1 51 31 pm

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИред :-/ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ _keep_ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рднреА рдПрдлрдбреАрдП рджреЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд░реЗрд╕реНрдЯрд┐рдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ .app рдмрдВрдбрд▓ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдкрд░ рдмрд╕ рдЧрдпрд╛ред рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИред

рдкрд╣рд▓реЗ рддреЛ рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдПрдлрдбреАрдП рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред
рдореИрдВрдиреЗ рдЕрдкрдиреА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рд░реЗрд╕реНрдЯрд┐рдХ рдХрд╣рддреЗ рд╣реИрдВ) рдПрдлрдбреАрдП рджреЗрдиреЗ рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╡рд╣ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ @armhold рдХреЗ рд░реИрдкрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдкреНрд▓реИрдЯрд┐рдкрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ .app рдмрдВрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ macOS рдХреА рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ FDA рдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдореИрдВрдиреЗ рдЬреЛ рдПрдХрдорд╛рддреНрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рджреЗрдЦрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм .app рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ crontab рджреНрд╡рд╛рд░рд╛ open -ga ~/Applications/Backup.app рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛ рдлреЛрдХрд╕ рдЦреЛ рджреЗрддреА рд╣реИред рдпрд╣ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдВрднреАрд░ рдЭреБрдВрдЭрд▓рд╛рд╣рдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдмреИрдХрдЕрдк рд╣реИрдВред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ -g рд╕реНрд╡рд┐рдЪ рдЗрд╕рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗрдЧрд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдмрд╣реБрдд рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк .app рдмрдВрдбрд▓ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ (рдЗрд╕реЗ рдЯреНрд░реИрд╢, рдЦрд╛рд▓реА рдЯреНрд░реИрд╢ рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ) рдФрд░ рдЗрд╕реЗ рд╕рдорд╛рди рдирд╛рдо рд╡рд╛рд▓реЗ рдПрдХ рдирдП .app рдмрдВрдбрд▓ рд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдЕрд╡рд▓реЛрдХрди рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдореЗрдВ FDA рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдирдП рдХреЛ рд╡рд╛рдкрд╕ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдирдП .app рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдЧрд╛ред рдПрдлрдбреАрдП рд╣реЛрдирд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдореИрдВрдиреЗ рдЙрд╕рдХреЗ рдмрд╛рдж рдирдпрд╛ рдРрдк рдЪрд▓рд╛рдпрд╛, рддреЛ рдореБрдЭреЗ рдореВрд▓ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЧрдИрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдореЗрдВ рдРрдк рдХреЗ рд▓рд┐рдП рдПрдлрдбреАрдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдПрдлрдбреАрдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЬреЛрдбрд╝ рджреА, рддреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлрд┐рд░ рд╕реЗ рдЪрд▓реА рдЧрдИрдВред рддреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ .app рдмрдВрдбрд▓ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдПрдлрдбреАрдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреЛрдИ .app рдмрдВрдбрд▓ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд░рд╣реЗрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП AFAICT рдХреА рдФрд░ рдЬрд╛рдВрдЪ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЬреЛ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ .app рдмрдВрдбрд▓ рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдпрджрд┐ рдЖрдк рдмрд╕ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдкрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд░рд╛рд╕реНрддрд╛: https://medium.com/@mattholt/packaging -a-go-application-for-macos-f7084b00f6b5

10.14.3 - рдЕрднреА рднреА рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдЪреНрдЫреА рдЦрдмрд░ рдирд╣реАрдВ рд╣реИред

$ /bin/ls ~/Library/Mail/
ls: : Operation not permitted

рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ Terminal.app рдХреЛ FDA рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ ls (рдпрд╛ рдЕрдиреНрдп рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝) рдХреЗ рд╕рд╛рде рдирд╣реАрдВред

рд╕реЗрдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ/рд╕реНрд╡рдЪрд╛рд▓рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЧреЛрджреА рдореЗрдВ рдПрдХ рдЖрдЗрдХрди рджрд┐рдЦрд╛рддрд╛ рд╣реИ; рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, xcode/swift cli рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрд╕реЗ рдПрдХ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ FDA рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ( /full/path/to рдХреЛ рдЕрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрдереЛрдВ рд╕реЗ рдмрджрд▓реЗрдВ)

import Foundation
import os

let task = Process()

task.launchPath = "/full/path/to/bash"
task.arguments = ["/full/path/to/backup_script.sh"]

do{
    try task.run()
}
catch{
    os_log("error")
}

task.waitUntilExit()

@daviehh рдпрд╣рд╛рдБ рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рд╣реИред

import Foundation
import os

let task = Process()

task.launchPath = "/bin/ls"
task.arguments = ["/Users/me/Library/Mail"]

do{
    try task.run()
}
catch{
    os_log("error")
}

task.waitUntilExit()
$ swiftc foo.swift
$ ./foo
ls: Mail: Operation not permitted
$ # add to FDA
$ ./foo
ls: Mail: Operation not permitted
$ sudo ./foo
ls: Mail: Operation not permitted

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░реЗрд╕реНрдЯрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрд░реЙрдирд┐рдХ рдЬреЙрдм рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд░реВрдЯ рдХреНрд░реЙрд╕реНрдЯреИрдм sudo crontab -e рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЗрд╡рд▓ рд╕реБрдбреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реБрд▓рдн рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХреВрдВ . рдореБрдЭреЗ @ n8henrie рдЬреИрд╕реА рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓ рд░рд╣реА рдереАрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рдкреГрд╖реНрдарднреВрдорд┐:

рдореЗрд░реЗ рдкрд╛рд╕ /Users/myuser/bin рдореЗрдВ рдПрдХ рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо restic-backup.sh рд╣реИ рдЬрд┐рд╕рдХреА рдЕрдиреБрдорддрд┐ 700 рд╣реИ (рдХреЗрд╡рд▓ рд░реВрдЯ/рд╕реБрдбреЛ рд░реАрдб/рд░рд╛рдЗрдЯ/рдирд┐рд╖реНрдкрд╛рджрд┐рдд)ред рдореИрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ рд░реВрдЯ crontab sudo crontab -e рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ iTerm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ Homebrew рдХреЗ рд╕рд╛рде restic рдФрд░ zsh рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдореИрдХреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 10.14.5

рд░реЗрд╕реНрдЯрд┐рдХ-рдмреИрдХрдЕрдк.рд╢:

рдореЗрд░реА рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред

#!/usr/local/bin/zsh
restic_path="/usr/local/bin"
logFile="/Users/myuser/Documents/Backups/configurations/Mac/backup_logs/$(date +%F_%H%M)_restic.log"
unset HISTFILE
export RESTIC_REPOSITORY="..."
export AWS_ACCESS_KEY_I'd="..."
export AWS_SECRET_ACCESS_KEY="..."
export RESTIC_PASSWORD="..."
$restic_path/restic --verbose backup /Users/myuser  &> $logFile

рдлрд┐рд░ рдореЗрд░реА рд░реВрдЯ рдХреНрд░реЙрд╕реНрдЯреИрдм рдлрд╝рд╛рдЗрд▓ рдореЗрдВ: sudo crontab -e рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

0 */2 * * * /Users/myuser/bin/restic-backup.sh

рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ:

рдХреНрд░реЛрди ==> /usr/sbin/cron
iTerm.app ==> /Applications/iTerm.app

@ n8henrie рдХреА рддрд░рд╣, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ restic рдЬреИрд╕реА рдлрд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдлрдбреАрдП рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ sudo рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдПрдлрдбреАрдП рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: cron рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ iTerm.app ред

рдореИрдВрдиреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдЦреЛрдЬрд╛: рдЬрдм рдХрд┐рд╕реА рдРрдк рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдРрдк рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдмрд╛рдЗрдирд░реА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рддреЛ, рдЖрдкрдХреЛ рд╕реАрдзреЗ рдРрдк рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрдк рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рдордирдорд╛рдирд╛ рдРрдк рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕ рдРрдк рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХрдорд╛рддреНрд░ рдЪреЗрддрд╛рд╡рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рднреА рдЖрдк рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдмрд╛рдЗрдирд░реА рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдРрдк рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

@atticusmatticus @russelldavis - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ MacOS рдЕрдкрдбреЗрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ - рдореИрдВрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрди рджреЛрдиреЛрдВ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд┐рд╕реНрдордд рдХреЗ рдЖрдЬрдорд╛рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдиреАрдЪреЗ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдЬрд┐рд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рддрд░рд╣ рдХрд╛):

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    fmt.Println("Starting...")
    matches, err := ioutil.ReadDir("/Users/me/Library/Mail")
    if err != nil {
        fmt.Println("Err:", err)
    } else {
        for _, match := range matches {
            fmt.Println(match.Name())
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.me.gotest</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/me/go/src/github.com/me/gotest/gotest</string>
        </array>
        <key>StartInterval</key>
        <integer>15</integer>
        <key>StandardErrorPath</key>
        <string>/Users/me/go/src/github.com/me/gotest/stderr.txt</string>
        <key>StandardOutPath</key>
        <string>/Users/me/go/src/github.com/me/gotest/stdout.txt</string>
    </dict>
</plist>
  1. go build
  2. рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ gotest рдмрд╛рдЗрдирд░реА (рдФрд░ рдХреБрдЫ рдирд╣реАрдВ) рдЬреЛрдбрд╝реЗрдВ
  3. рдкреНрд▓рд┐рд╕реНрдЯ рдХреЛ ~/Library/LaunchAgents/ . рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
  4. рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдбреЗрдореЙрди рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ: launchctl load -w ~/Library/LaunchAgents/com.me.gotest.plist

рдЕрдм, рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, gotest рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди launchd (рдпрд╛ launchctl ) рдХреЛ FDA рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдореИрдВ рдЕрднреА рднреА рд╕реАрдзреЗ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛:

$ ls -l gotest
-rwxr-xr-x 1 me staff 2142552 Jul  2 09:15 gotest
$ ./gotest
Starting...
Err: open /Users/me/Library/Mail: operation not permitted
$ sudo ./gotest
Password:
Starting...
Err: open /Users/me/Library/Mail: operation not permitted

рд▓реЗрдХрд┐рди рдпрд╣ рд▓реЙрдиреНрдЪ рдбреЗрдореЙрди (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд░ 15 рд╕реЗрдХрдВрдб) рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ ( ~/Library/ рдирд╣реАрдВ /Library/ , рдФрд░ launchctl load рдирд╣реАрдВ sudo launchctl load ):

$ cat stdout.txt | head
Starting...
.DS_Store
PersistenceInfo.plist
V6
Starting...
.DS_Store
PersistenceInfo.plist
V6
Starting...
.DS_Store

рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, рдореИрдВ рдЕрднреА рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рд░реАрдмреВрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ:

||рдПрдлрдбреАрдП рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ|рдПрдлрдбреАрдП рдореЗрдВ рдмрд╛рдЗрдирд░реА рдирд╣реАрдВ рдЬрд╛рдУ
---|:---:|:---:
рдмрд┐рдирд╛ sudo |err|err . рдХреЗ рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ
sudo |err|err . рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ
рд▓реЙрдиреНрдЪрдб рд░рдирд┐рдВрдЧ рдЧреЛ рдмрд╛рдЗрдирд░реА|рд░рдирд╕|рддреНрд░реБрдЯрд┐

рд╕реАрдзреЗ рд╕рдВрдмрдВрдзрд┐рдд рд░реЗрд╕реНрдЯрд┐рдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ FDA рд╕рдорд╕реНрдпрд╛ рд╕реЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдХрдкреНрддрд╛рди рдирд╣реАрдВ рд╣реВрдВред рдореИрдВ рдЕрднреА рддрдХ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдЪрд░реНрдЪрд╛, рд▓реЗрдЦ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред

рдПрдлрдбреАрдП рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЙрджреНрдШрд╛рдЯрди рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реЗ рд▓реЙрдиреНрдЪ рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╣реИрдВ), рдХрд┐рд╕реА рднреА рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рд╕реАрдзреЗ launchd ( launchd.plist рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╣реИрдВ) launchctl submit )ред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдмрд╛рдЗрдирд░реА рдЧреИрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рд╡рд╛рд▓реЗ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреЗрдбрд╝ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рддреА рд╣реИред

рдЗрд╕рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ launchd рд╣реИ рдЬреЛ рдЖрд╡реЗрджрди/рдмрд╛рдЗрдирд░реА рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рдХрд╛ рдкрде рд╕рдЯреАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╢реНрд╡реЗрддрд╕реВрдЪреА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдмрд╛рдЗрдирд░реА рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рдкреНрд▓рд┐рд╕реНрдЯ рдореЗрдВ WorkingDirectory рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ рдФрд░ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде ./some-binary рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рднреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ /some/path/./some-binary рдпрд╛ /some/path/../path/some-binary рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ /some/path/some-binary ред
launchd рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдкрд░ рднреА рд╢реЗрдмреИрдВрдЧ рдХреЗ рд▓рд┐рдП рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП #!/some/path/some-binary рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреЗрд╡рд▓ /some/path/some-binary /path/to/script ред

рд╣рд╛рдВ, рдореИрдВ launchd рд╕реЗ рджреМрдбрд╝рддрд╛ рд╣реВрдВред рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдпрд╣рд╛рдБ рдкрдврд╝рддрд╛ рд╣реИ

https://eclecticlight.co/2018/10/02/how-privacy-protection-is-enforced-through-the-attribution-chain/

https://eclecticlight.co/2018/09/06/working-with-mojaves-privacy-protection/

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ (рдФрд░ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдареАрдХ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддрд╣рдд рдПрдХ рдирдпрд╛ рдмрд┐рдВрджреБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдмреИрдХ рдЕрдк рдкрд░ рдЕрдиреБрднрд╛рдЧ?

рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ:

  • рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдбрд┐рд╕реНрдХ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
  • рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд▓реЙрдиреНрдЪрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдмрд╛рдЗрдирд░реА рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдПрдлрдбреАрдП рдХреЗ рддрд╣рдд рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдмрд┐рдирд╛ рдПрдлрдбреАрдП рдХреЛ рд▓реЙрдиреНрдЪрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  • рдЬрдм рддрдХ Terminal.app рдХреЛ FDA рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдмрд╛рдЗрдирд░реА рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИ
  • рдпрджрд┐ Terminal.app рдХреЛ FDA рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реНрдг рдбрд┐рд╕реНрдХ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдмрд╛рдЗрдирд░реА рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЪрд╛рд╣реЗ рд╡рд╣ рдмрд╛рдЗрдирд░реА FDA рдореЗрдВ рд╣реЛ рдпрд╛ рдирд╣реАрдВ

рдХреНрдпрд╛ рдпрд╣ рдЖрд╡рд╛рдЬ рд╣рд░ рдХрд┐рд╕реА рдХреА рд╕рдордЭ рдФрд░ рдЕрдиреБрднрд╡ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ?

рдХреБрдЫ рд╣рдж рддрдХ рдЬрдЯрд┐рд▓ рд╣реЛрдиреЗ рдкрд░, рдореИрдВ рдкрд┐рдЫрд▓реЗ> 1y рдкрд░ 2 рдореИрдХрдмреБрдХ рдкрд░ рдЪрд▓ рд░рд╣реЗ рдЕрдкрдиреЗ рд╕реЗрдЯрдЕрдк рд╕реЗ рдкреНрд░рд╕рдиреНрди рд╣реВрдВ, рдФрд░ рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВрдЧрд╛ред рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рд╣реИ:

  • рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдорд╢реАрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрд╕реНрдЯрд┐рдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреА рд╣реИ (рд╡рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ 4 рд▓рд┐рдирдХреНрд╕ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рднреА рдЪрд▓рддреА рд╣реИ, рдЬреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реАрдзреЗ рдХрд╣рддреЗ рд╣реИрдВ)ред
  • рдЕрдкрдиреЗ рдореИрдХреЛрдЬрд╝ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░, рдореИрдВ рдПрдХ рдЧреЛ рдмрд╛рдЗрдирд░реА рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рд╢реИрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред рдореИрдВ рдЖрд╕рд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рдЕрдкрдбреЗрдЯ/рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╕реАрдзреЗ рдЧреЛ рдореЗрдВ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдпрд╣ рдмрд╛рдЗрдирд░реА рдПрдлрдбреАрдП рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ
  • рдореИрдВ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдЗрд╕ рдЧреЛ рдмрд╛рдЗрдирд░реА рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо-рд╡рд╛рдЗрдб рд▓реЙрдиреНрдЪ рдбреЗрдореЙрди (рдЬреЛ рд░реВрдЯ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИ) рдЪрд▓рд╛рддрд╛ рд╣реВрдВ

https://github.com/restic/restic/issues/2051#issuecomment -442872479 рдХреЗ рд╕рдорд╛рди рдмрд╛рдЗрдирд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ c рдХреЗ рд╕рд╛рде рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдЗрдВрд╕реНрдЯрд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рджреВрд╕рд░реЛрдВ рдХреЛ рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. рдмреИрдХрдЕрдк.рд╕реА
#include <stdlib.h>
int main(void) {
  int status = system("./backup.sh");
  int ret = WEXITSTATUS(status);
  return ret;
}
  1. рд╕рдВрдХрд▓рди: gcc -Wall -o backup backup.c
  2. рдмреИрдХрдЕрдк рдмрд╛рдЗрдирд░реА рдХреЛ рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, рдореИрдВ рдЕрднреА рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рд░реАрдмреВрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ:

рдПрдлрдбреАрдП рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ рдПрдлрдбреАрдП рдореЗрдВ рдирд╣реАрдВ рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ
sudo рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ
sudo рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдЬрд╛рдУ
рд▓реЙрдиреНрдЪрдб рд░рдирд┐рдВрдЧ рдЧреЛ рдмрд╛рдЗрдирд░реА рд░рди рддреНрд░реБрдЯрд┐

рдзрдиреНрдпрд╡рд╛рдж!

рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди .plist рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдерд╛ рдЬреЛ рд╕реАрдзреЗ рд░реЗрд╕реНрдЯрд┐рдХ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ -p, --exclude-files, --files-from рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдпрд╛ рддреЛ рдЕрдВрджрд░ рдпрд╛ рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбрд╛рд▓ рджреЗрддреА рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░реЗрд╕реНрдЯрд┐рдХ рдмрд╛рдЗрдирд░реА рдПрдлрдбреАрдП рдЕрдиреБрдорддрд┐рдпрд╛рдВ рджреЗрдВ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>my.backup_agent</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/restic</string>
        <string>backup</string>

        <string>-r</string>
        <string>s3:https://MY.STORAGE.SERVER/....</string>

        <string>-p</string>
        <string>.config/backup/restic.pwd</string>

        <string>--files-from</string>
        <string>.config/backup/backup.lst</string>

        <string>--exclude-file</string>
        <string>.config/backup/exclude.lst</string>
    </array>

    <key>EnvironmentVariables</key>
    <dict>
        <key>AWS_ACCESS_KEY_ID</key>
        <string>XXX</string>

        <key>AWS_SECRET_ACCESS_KEY</key>
        <string>YYY</string>
    </dict>

    <key>WorkingDirectory</key>
    <string>/Users/ME</string>

    <key>StandardErrorPath</key>
    <string>/Users/ME/log/backup.log</string>

    <key>StandardOutPath</key>
    <string>/Users/ME/log/backup.log</string>

    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>13</integer>

        <key>Weekday</key>
        <array>
        <integer>1</integer>
        <integer>2</integer>
        <integer>3</integer>
        <integer>4</integer>
        <integer>5</integer>
        </array>
    </dict>
</dict>
</plist>

рдХреИрд╕реЗ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ FDA рдореЗрдВ рдХреМрди рд╕рд╛ рдРрдк рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдРрдк рдЗрд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ рдвреВрдВрдвреЗрдВред

рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреВрд░реНрд╡рдЬ рдкрд┐рдб 1 рд╣реЛрдиреЗ рддрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдореВрд▓ рдкрд┐рдб рдкрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ, ps ajx рдпрд╛ ps ao pid,ppid,command рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ grep #$ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:

  • crontab рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдБ, /usr/sbin/cron , launchd.plist . рджреНрд╡рд╛рд░рд╛ рдкрджрд╛рд╡рдирдд
  • Program рдпрд╛ ProgramArguments . рдореЗрдВ рдмрд╛рдЗрдирд░реА рд▓реЙрдиреНрдЪрдб.рдкреНрд▓рд┐рд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ
  • рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЪрд▓рд╛рдПрдВ, Terminal.app
  • рдПрд╕рдПрд╕рдПрдЪ, /usr/libexec/sshd-keygen-wrapper рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ
  • рдЕрдиреНрдп рдРрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдПрдВ, рдЗрд╕реЗ рдвреВрдВрдвреЗрдВред

рддреЛ, @ n8henrie рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЗрдирд░реА рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд▓реЙрдиреНрдЪрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреАрдЬреЗрдВ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ: рд▓реЙрдиреНрдЪрдХрдВрдЯреНрд░реЛрд▓ рдЕрдм fdautil рдирд╛рдордХ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╢реНрд╡реЗрддрд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ fdautil exec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рд▓реЙрдиреНрдЪрдХрдВрдЯреНрд░реЛрд▓ рдпрд╛ fdautil set рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реНрд╡реЗрддрд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИред

https://www.soma-zone.com/LaunchControl/FAQ.html рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рдРрдк рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

e2b picture e2b  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

viric picture viric  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shibumi picture shibumi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

christian-vent picture christian-vent  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TheLastProject picture TheLastProject  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ