2016-07-02 1 views
1

通常のユーザーとしてEclipseを起動しないときにこのエラーが起こっていますが、sudoのよう起動するときにしない理由:Eclipse - Android SDKでは通常のユーザーでエラーが発生しますが、ルートではないのはなぜですか?

enter image description here

私はそれがあるかもしれないと想像できるすべてのディレクトリのパーミッションを確認しています影響を受け、私のユーザーとグループIDにchowned。

これらは私が精通してるすべての領域のルートディレクトリです:

Folder     Specification 
------------------------------------------------------------- 
/opt/android/sdk   Android SDK 
/opt/eclipse/eclipse  Eclipse 
~/myeclipse    Eclipse specific configuration area 
~/workspace    Source workspace 

これらは私のユーザーおよびグループIDが割り当てられていることを確認するために、課題だったコマンドです:

$ sudo chown -R ljames:ljames /opt/android/sdk 
$ sudo chown -R ljames:ljames /opt/eclipse/eclipse 
$ sudo chown -R ljames:ljames ~/myeclipse 
$ sudo chown -R ljames:ljames ~/workspace 

誰かがこの可能性のある原因となっている可能性のあるものを教えてもらえますか? 権限の問題?

また、このコマンドをすべてのサブディレクトリで実行して、自分のユーザーIDに属していないファイルまたはディレクトリを見つけました。

$ sudo find /opt/android/sdk ! -user ljames 
$ sudo find /opt/eclipse/eclipse ! -user ljames 
$ sudo find ~/myeclipse ! -user ljames 
$ sudo find ~/workspace ! -user ljames 

答えて

1

明らかに、これは権限の問題です。ルートはアクセス許可によって悩まされることはありません。他はある。実際には、1つの例外があります。ユーザー(EVEN ROOT)がプログラムを実行するには、permissionsフィールド(di_flags &〜(S_IFMT))の少なくとも1つの実行ビットS_IXUSR | S_IXGRP | S_IXOTHがオンになっている必要があります。これは、ディレクトリを「実行する」(すなわち検索する)ためには真であったが、もはやそうではなかった。式にマクロを組み込むときは、常に超防衛的でなければならないので、私はS_IFMTをカッコで括弧でくくっていることに注意してください。それらはあいまいなバグの原因となる可能性があります。

この問題は、表面的には微妙なものかもしれませんが、ディレクトリアクセス権の仕組みを知っていれば実際にはそうではないと思われます。どこかのディレクトリがルート以外のプログラマに検索可能であるが、READABLEではないことを私は喜んでお金を払うことになるだろう。違いは、 "search"はディレクトリ内の既知の名前のエントリを見つけることができるのに対して、 "read"は開いているカタログのようにディレクトリをブラウズできることです。たとえば、与えられた関数の本体について順次スキャンできる* .javaというファイルの全セットを発見するには、包含ディレクトリは読み込み可能であり、かつ検索可能でなければなりません。

+0

ありがとうございます!質問を訂正して更新しました。私は誤って実行したコマンドを入力するときに "-R"を残していました。ルートとして実行すると、かなり多くのファイルがrootによって所有されます。 'chown -R'を自分のユーザーIDに戻して実行した後で、root以外が所有していません。実行ファイルの場合、ファイルの所有者に実行権限が与えられていると私は理解しています。私はそれがおそらくいくつかの許可の問題であることに同意します。しかし、私は質問に記載されているもの以外にどのファイルをチェックする必要があるのか​​理解できません。 –

+0

良い最初の投稿、それはちょっと読みにくいです。 [マークダウンフォーマットガイド](http://stackoverflow.com/help/formatting)を読んでみてください。 – grochmal

関連する問題