macOS-sudoなしではrmできません


0

Macの新しい所有者、マシンを知る。

私は非常に面倒な問題に出くわしました-sudoなしではrmを使用できません。実際、rmコマンドを作成するたびに、結果は次のようになります。

rm: illegal option -- I
usage: rm [-f | -i] [-dPRrvW] file ...
   unlink file

一方、コマンドをsudoで実行すると、正常に実行されます。

追加情報:

  • macOS Sierra v.10.12.6
  • ファイルはすべて777のアクセス許可を持ち、ユーザー 'staff'に属します。
  • staffユーザーが作成したグループ/ユーザーではありません。期待は、OSによって提供される基本ユーザー/グループです。

質問は、これらのファイルを変更したいときにsudoする必要がないようにするにはどうすればよいですか?(さらに、この「スタッフ」ユーザーとは何ですか?)


1
これはどのディレクトリにありますか?どこでもいいの?あなたのホームディレクトリでも?あなたは(自分のホームディレクトリに移動した場合cd ~/)、その後経由でファイルを作成しtouch、このようにtouch zzz_test.txtして、rm zzz_test.txtあなたはそれが動作しないだろうと言っていますか?
JakeGould

1
ファイルを削除するためにファイルへの書き込みアクセスは必要ありません。親ディレクトリへの書き込みアクセスが必要です。呼び出し元sudobashシェルとは異なる環境で動作することに注意してください。rm余分なパラメーターを追加することで再定義するエイリアスまたは関数があるように見えます:使用type -a rm可能なすべての解釈を見つけるために使用します。また、の$(which rm) ...代わりに試しrm ...て、適切な実行可能ファイルを使用していることを確認してください(これは通常/bin/rmですが、Macでは異なる可能性があります)。
AFH

1
作業しようとしている特定のフォルダ/ファイルについて心配します。現在のユーザーが所有している通常のファイルで作業しているときに現在のユーザーが所有している通常のディレクトリでは、問題なくファイルを削除できます。
クリストファー人質

@AFH素晴らしい発見!Linuxから.bash_aliasesを転送しrm -Iましたが、ファイルの下部にrm =>のエラートレランスエイリアスがリストされていました。行を削除すると問題は解決しました!必要に応じて、コメントを回答としてコピーして、適切な回答として受け入れます。
フィリップヘバート

回答:


3

エラーメッセージからは、rm追加のパラメータを追加することで再定義されているエイリアスまたは関数があるように見えます。これは、sudo呼び出し元のシェルとは異なる環境で動作し、通常シェルの初期化からエイリアスと関数の定義をインポートしないためですスクリプト。

このコマンドは、rmコマンドの考えられるすべての解釈を表示します。

type -a rm

また、シェル内では、適切な実行可能ファイルを使用していることを確認するために、$(which rm) ...代わりに使用できます。rm ...外部whichプログラムは、内部typeコマンドがチェックするエイリアスと関数定義を知らないためです。ディレクトリコンポーネントを使用したコマンドは、常にファイルシステムにアクセスして検索し、エイリアスと機能をバイパスします。

ファイルを削除するために、ファイルへの書き込みアクセスは必要ないことに注意してください。必要なのは、その親ディレクトリへの書き込みアクセスです。


1

質問へのコメントに基づいて、ユーザーがファイルを所有していない限り、スーパーユーザーの許可なしにオブジェクトを消去することはできません。

StaffMacOSのシステムグループです。このグループが所有するファイルを変更すると、潜在的に危険になりますが、ユースケースで何をしているのか知っている可能性が高いです。

-IMacOSのではありません指示、rm命令; -i同様の置換がない限り、を使用する必要があります。

sudoをスキップするには、.bashrc(rm='sudo rm -i')にrmエイリアスを追加し、でMacOSのSudoersファイルに自分自身を追加してから、すべてのコマンドへのフルsudoアクセスをsudo visudo追加するYOUR_USERNAME_HERE ALL=NOPASSWD: ALLYOUR_USERNAME_HERE ALL=(ALL:ALL) NOPASSWD: /bin/rm、rmコマンドのみへのフルアクセスを制限します。

注: MacOSのrmコマンドは/ bin / rmにない場合があります。私は最近それを使用していませんが、以前の知識からそこにあると仮定します。


AFHと相まって、あなたの答えは-I、デフォルトパラメータとして含まれているrmのエイリアス設定があることを実感しました。良いキャッチ!
フィリップヘバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.