web-dev-qa-db-ja.com

OSX mojave: "crontab:tmp / tmp.X:操作は許可されていません"

OSXをMojaveに更新した後、crontabを編集できなくなったようです。そうしようとすると、この質問のタイトルにエラーメッセージが表示されます。

私はcrontabを/private/var/atまで追跡しましたが、権限はEl Capitanを実行している別のコンピューターと同じです。

/private/var/at$ ls -laO
total 0
drwxr-xr-x   8 daemon  wheel  -           256B Feb 18 16:47 ./
drwxr-xr-x  26 root    wheel  sunlnk      832B Feb 18 16:51 ../
-rw-r--r--   1 root    wheel  -             0B Aug 22 22:11 at.deny
-rw-r--r--   1 root    wheel  compressed    6B Aug 17  2018 cron.deny
drwxr-xr-x   2 daemon  wheel  -            64B Aug 17  2018 jobs/
drwxr-xr-x   2 daemon  wheel  -            64B Aug 22 22:11 spool/
drwx------   4 root    wheel  -           128B Nov 22 12:46 tabs/
drwx------   2 root    wheel  -            64B Feb 18 15:04 tmp/

/private/var$ ls -laOd at
drwxr-xr-x  8 daemon  wheel  -  256B Feb 18 16:47 at/

/private$ ls -laOd var
drwxr-xr-x  26 root  wheel  sunlnk  832B Feb 18 16:51 var/

そのコンピューターとは異なり、/private/var/at(例:Sudo touch test)の下で私がしようとするSudoの変更は、「操作は許可されていません」になります。 /private/var以降では、Sudoで何でも変更できます(_anythingではなく、/private/var/atでテストした限定的で明白なタイプの変更のように)。

/private/var/atの内容を変更できない原因があり、crontab/private/var/at/tmpに書き込んでtmp crontabを作成できないため、これがcrontabエラーメッセージの原因であると思いますエラーメッセージで報告されるファイル。

OSXでcrontabが推奨される方法ではないことは知っていますが、それがこの質問の要点ではありません。

11
Joao Encarnacao

short 答え:

[システム環境設定]> [セキュリティとプライバシー]に移動し、ターミナルへのフルディスクアクセスを許可します。

long 答え:

  1. Appleメニューをプルダウンし、[システム環境設定]を選択します
  2. 「セキュリティとプライバシー」コントロールパネルを選択します
  3. 次に[プライバシー]タブを選択し、左側のメニューから[フルディスクアクセス]を選択します
  4. 設定パネルの左下隅にあるカギのアイコンをクリックし、管理者レベルのログインで認証します
  5. [+]プラスボタンをクリックして、フルディスクアクセスのアプリケーションを追加します。
  6. / Applications/Utilities /フォルダーに移動し、「ターミナル」を選択して、ターミナルにフルディスクアクセス権限を付与します
  7. ターミナルを再起動すると、「操作は許可されていません」というエラーメッセージが表示されなくなります
11
Freddy

sshdが「フルディスクアクセス」に対してすでに有効になっているという事実に依存する、権限の変更を必要としない別のアプローチは、ローカルホストへのsshを介してcrontab更新を実行することです(共有でリモートログイン/ sshが有効になっている場合)システム設定)例:

ssh localhost
crontab -e
6
Pierz

サンドボックスが原因で、crontabを作成できません。 crontabコマンドを実行すると…

  • ローカルマシンのターミナルを使用:システム環境設定>セキュリティとプライバシー、およびターミナルへのフルディスクアクセスを許可
  • サードパーティのターミナルアプリを使用:システム環境設定>セキュリティとプライバシー、およびサードパーティのターミナルアプリにフルディスクアクセスを付与
  • 別のマシンからssh経由:動作するはずです(@Pierzの回答を参照)
  • screenコマンドからscreenからログアウトするか、@ Pierzの回答を使用します。
2
Ortwin Gentz

[システム設定]> [セキュリティとプライバシー]> [フルディスクアクセス]にcronを追加する必要がありました

  1. プライバシー設定を見つける:CMD + Space、 "priv"

  1. Full Disk Accessの設定のロックを解除し、選択メニューを開きます

  1. 選択メニューCMD + Shift +。を押して隠しファイルを再表示し、/usr/sbin/cronに移動します。 (ターミナルで$ which cronを実行して、cron実行可能ファイルの場所を確認できます)

]

0
Petr Javorik