68user's page 掲示板

Prev< No. 4368〜4371> Next  [最新発言に戻る] [過去ログ一覧]
No. 4368 # 68user 2005/11/09 (水) 00:14:27
>>4364 がちゃぴ
ありがとうございます。ご意見・ご指摘がありましたら遠慮なくどうぞ。

なお、世の中いろんな人がいますので、文章の一部を削除させていただきました。
削除した部分に関する話題はご遠慮いただきたく思います。ご理解ください。

>>4366 anonymous
紛らわしいのでハンドルを「68user」から「anonymous」と変更しました。
今後は適切なハンドルを使用してください。

No. 4369 # マーブル 2005/11/09 (水) 01:36:27
>>4363 68user
御回答ありがとうございました。
また情報交換ができてうれしく思います、重ねてお礼申し上げます。

>>4367 has
話に割り込んでしまってごめんなさい。
>>4366 anonymous
コマンドが読み書きするファイルのアクセス権限を考慮して判断するのが良いと思います。
例えばmountコマンドでは一般userにデバイスへのアクセス権限がないので(当方FreeBSD)、
コマンドは実行できてもmountはできません。
また許可を与えたい場合、デバイスファイルのパーミッションを変更すれば使用できますが、
いろいろ問題がありそうなので、
http://x68000.q-e-d.net/~68user/unix/pickup?sudo
の方法を取ったりするそうです。

ついでにちょっと変な話。
実行権限がないディレクトリに対して移動(cd)もディレクトリの内容の確認も(ls)もできません。
が、opendir(c言語)を用いいると実行権限がなくても内容の確認ができてしまいます。
なんだか不思議な感じがしませんか?

No. 4370 # 68user 2005/11/09 (水) 02:02:19
>>4369 マーブル
> 実行権限がないディレクトリに対して移動(cd)もディレクトリの内容の確認も(ls)もできません。
> が、opendir(c言語)を用いいると実行権限がなくても内容の確認ができてしまいます。
少々誤解があるようですが、実行権限がないディレクトリに対しては、移動 (cd) は
できませんが、ディレクトリの内容の確認 (ls) はできます (読み込み権限があれば)。
しかし ls -l はこけます。

引数なしの ls が行っていることは opendir(2) なわけですが、opendir(2) は
ディレクトリの下にアクセスしません。ディレクトリエントリを読むだけなので
    % cat ディレクトリ名
相当の処理しかしていません。よって、ディレクトリに対する読み込み権限があれば
ファイル一覧を取得できます (ディレクトリも広義のファイル)。

一方 ls -l は opendir(2) して、取得したファイル名それぞれについて stat(2) する
わけですが、stat(2) するには それぞれのファイルの i-node を知る必要があります。
しかし i-node を知るには、そのファイルが属する上位ディレクトリの実行権限が必要です。

結局のところ、ディレクトリに対する実行権限とは
      「ファイル名から i-node への変換を許可するかどうか」
であり、言い換えると
      「namei(9) を許可するかどうか」
だとわたしは思っていますが、違っていたら誰か教えてください。

No. 4371 # マーブル 2005/11/09 (水) 08:21:56
>>4370 68user
すいません-Fのエイリアス掛かってました。
\lsで動作します、掲示板汚してごめんなさい。

truss ls -F testdirの結果の一部
fchdir(0x5) ERR#13 'Permission denied'
よりディレクトリ内に移動できないということらしいです(FreeBSD)
(Linuxで試したらfstatでのエラーだったのでものによりけりな予感

Prev< No. 4368〜4371> Next  [最新発言に戻る] [過去ログ一覧]