• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ls -lでディレクトリの実行アクセス権が必要な理)

ls -lでディレクトリの実行アクセス権が必要な理由とは?

このQ&Aのポイント
  • ls -lオプションはディレクトリの実行アクセス権を確認するために使用される。
  • ファイルサイズをディスク情報から決定するため、ディレクトリを無条件に変更しなければならない。
  • 実行アクセス権ではなく書き込みアクセス権が必要になる場合もある。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.2

> 「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリを無条件に変更してしまうことになるからです。」 確かにおかしいですね。外国の人が書いた本の翻訳版だったりします? 「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリに無条件に移動(cd)しなければならないからです。」 って解釈すれば納得いくかと。 ls non_exec_dir でディレクトリ内のファイルを表示できます。でも、 ls -l non_exec_dir とすると、 ?--------- ? ? ? ? ? testfile となって、i-nodeの情報は見えません。 そういうことが言いたいのかと思います。

osiete-pc
質問者

お礼

ご指摘どおりやはり翻訳ミスの可能性、大です おっしゃるとおりに読めば納得がいきました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4856/10272)
回答No.1

>「ファイルサイズをディスク情報から決定しなければならず、そうすると当該ディレクトリを無条件に変更してしまうことになるからです。」 確かに意味不明ですね。そんな本のことは忘れてしまいましょう。著者はUnix/Linuxをよく知らないと思われます。 >-lオプションをつけてもディレクトリファイルから当該ディレクトリの情報を読み出すだけなので読み出しアクセス権をつければいいだけではないでしょうか? ディレクトリに書かれているのは、ファイル名とinode番号だけです。 サイズやタイムスタンプなどは、そのファイルのinodeにアクセスする必要があります。 ディレクトリの下のファイルを読むためにはディレクトリに実行権限が必要なことはご存じかと思いますが、それと同じです。ファイルの中身のデータを読む場合だけでなく、ファイルの属性を読むのにも必要なのです。

osiete-pc
質問者

お礼

ご回答ありがとうございます。 よく分かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ワイルドカードを使うときに実行アクセス権が必要な

    ワイルドカードを使うときにディレクトリに実行アクセス権が必要な理由が分かりません。 なぜ、どのような仕組みで実行アクセス権限が必要なのでしょうか? 分かりやすく平易に教えていただけるとうれしいです。 よろしくお願いいたします。

  • lsの4096とディレクトリ容量計測方法について

    ls -la を実行すると サイズが4096というディレクトリ(test1とする)が多々見つかります。 またディレクトリによっては、0(test2とする)というのもありました。 ただ、test2ディレクトリの下に、file1というファイルがありサイズが10kでした。 【環境】 /root/test1(4096) /root/test2(0)   →file1(10K) /root/test3(4096) 【質問1】 ls -la で表示される4096とは何のことなのでしょうか? 【質問2】 ウインドウズのフォルダのように、ファイルサイズがディレクトリサイズに反映されてtest2に、 ディレクトリサイズが10kではなく、0と表示される理由は、なぜなのでしょうか? 【質問3】 各ディレクトリのサイズをlsで見れないとすれば、duコマンドで調べるしかないのでしょうか? 以上3点、 ご教授お願いします。

  • lsでのファイル名・パスのフルパス取得

    環境:Solaris10 lsコマンドでディレクトリ、ファイル名の一覧を取得しようとしています。 条件としては 1.対象は全てのディレクトリ・ファイル(ls -R) 2.実行結果はアクセス権・所有者の情報も含む(ls -lの結果のような) 3.ディレクトリ・ファイル名ともにフルパスで表示 この上記3点を満たそうとして、 ls -dlR / と実行してみましたが、この場合Rスイッチが有効になりませんでした。 OS標準コマンドでこの3点を満たすことは出来るのでしょうか?

  • 特定ディレクトリの監視と実行

    お世話になります。 現在、Windows上でタスクスケジュールを使い、 特定のディレクトリ内のファイルを1分毎にバッチファイルを使い、ftpでputするという作業を行っています。 しかし回線負担が多いので、 特定のディレクトリ内のファイルが更新されたら、バッチファイルを使い、ftpでputするという仕組みに変えたいと思っています。 そこで質問なのですが、 その特定のディレクトリを監視して、 ディレクトリ内に変更があった場合、 バッチファイルを実行したいのですが、 なにか良い方法は無いでしょうか? よろしくおねがいします。

  • ディレクトリのパーミッション(実行フラグ)について

    今まで意識して考えたことが無かったのですが、ふと気づいたので質問させていただきます。 ディレクトリの実行フラグが立たないとそのディレクトリ内のファイルに対して読み書きが出来ないので、通常はパーミッションを必ず奇数にする必要があると思っていました。 これまでは意識せずそうしてきたのですが、自分の使っているVineLinuxでは/var/logのパーミッションが666となっていました。 不思議なことに!?他の一般ユーザーではアクセスすらできないlogディレクトリに、rootでは問題なくlogディレクトリへのアクセスやファイルの作成等ができました。 たしかにrootで消せなくなるファイルがあると問題になるのでrootは特別なのかもしれませんが、ディレクトリのパーミッションが666の場合どういう扱いになるのか教えていただけないでしょうか。

  • ls-lコマンドについて

    ls-lコマンドを実行すると 「-rwxr-xr-- 1 user group 402 May 26 1997 sample.dat」 という情報が表示されると思うのですが、「-rwxr-xr--」の後の 「1」は何を表しているのか教えてください。お願いします。

  • ls -lの見方を教えてください。

    ls -lのパーミッションの次にでてくる数字はファイルとディレクトリの場合で何を表すか教えてください。 [root@hogehoge etc]# ls -l /etc/sysconfig/networking/profiles/default/ 合計 36 -rw-r--r-- 2 root root 146 8月 25 23:12 hosts -rw-r--r-- 3 root root 221 8月 25 23:12 ifcfg-eth0 -rw-r--r-- 3 root root 147 8月 25 23:12 ifcfg-eth1 -rw-r--r-- 1 root root 0 8月 25 23:12 network -rw-r--r-- 2 root root 80 8月 25 23:12 resolv.conf

  • Apacheでディレクトリにアクセス出来ない

    Linux初心者です。 Fadora10でApacheを動作させたいのですが、ディレクトリにアクセス権の設定がうまく出来ていないようで、アクセスすることが出来ません。 httpd.confに以下の記述をして、/httpRootをApache用のディレクトリにしたいと考えています。 Alias /test "/httpRoot" /httpRootのアクセス権を "ls -l"コマンドで確認したところ、"drwxrwxrwx"になっています。 当初root権限でディレクトリを作成したため、所有者がrootになっており、それが問題なのかも?、と思い、所有者は現在はrootではありません。 尚、/httpRootはsambaとvsftpdからも読み書きできるようにしたいと考えています。

  • admin/testディレクトリにアクセスできない

    sOS:TurboLinux8.0 Apache/1.3.26 admin test 上記2ディレクトリに存在するファイルに、ブラウザ上からアクセスすると「Not Found」になってしまいます。 もちろん、lsなどで見てみるとファイル自体は存在しています。 そこで上記2ディレクトリの名前を別のもの(例えばadmin2)に変更するとアクセスできるようになります。 admin/test これらのディレクトリは予め使えないようになっているなどの制約は存在するのでしょうか? また、その制約はどのような環境の時に発生するのでしょうか? 実はもう一つサーバを所有していてそちらでは上記ディレクトリ名は問題なく利用できたりします。環境は若干違うかもしれませんが・・・ ご存知の方、ご教授頂ければ幸いです。 よろしくお願い致します。

  • 困ってます Cygwin で ls が実行できません

    はじめまして、勉強のために Cygwin をダウンロードしました。 しかし、実行できるコマンドとできないコマンドがあって困っています。 とりあえず例をあげますと、cd, pwd は動いて、ls は動きません。 なぜか ls.exe だと動きます。(オプションもOK) 以下にその bash のコマンド実行画面をコピペします。ユーザ名だけ隠させていただきます。 bash-3.2$ pwd /cygdrive/c/usr/ユーザ名 bash-3.2$ ls ls: invalid option -- Try `ls --help' for more informati bash-3.2$ ls.exe kterm.exe work bash-3.2$ cd work/ bash-3.2$ pwd /cygdrive/c/usr/ユーザ名/work ------------------------------- Cygwin を C:\cygwin にダウンロード後にしたことは3つです。 1.Windows の 環境変数 に HOME : C:\usr\ユーザ名 と   Path : C:\cygwin\bin;C:\cygwin\usr\local\bin; を追加。 2.bash の作業ディレクトリを C:\usr\ユーザ名 に設定。 3.C:\usr\ユーザ名 に .bashrc などを設置。 といった所だと思います。覚えていないだけかもしれませんが。 以上、よろしくお願いします。

このQ&Aのポイント
  • B’s動画レコーダー8のインストールでエラーが発生し、Windowsが再起動する問題が発生しています。
  • B’s動画レコーダー8のアンインストールも失敗しており、ファイルが見つからないエラーが出力されています。
  • 再度インストールしようとしても、既にインストール済みというエラーメッセージが表示されます。RemoveLicBDRも実行しても解決しません。どのように対処すればよいでしょうか?
回答を見る