GNU/Linux >> Linux の 問題 >  >> Linux

Faclは「x」権限を無視しますが、ファイルのみですか?

setfaclを使用して、子ファイル/ディレクトリに必要なアクセス許可を管理する場合、何らかの理由で、ファイルには実行( "x")以外のすべてのアクセス許可があります。

[email protected]:/opt/lampp/htdocs/project$ getfacl .
# file: .
# owner: someuser
# group: webs
# flags: -s-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

[email protected]:/opt/lampp/htdocs/project$ touch file
[email protected]:/opt/lampp/htdocs/project$ mkdir dir
[email protected]:/opt/lampp/htdocs/project$ ls -l
total 4
drwxrwsrwx+ 2 someuser webs 4096 paź 31 13:35 dir
-rw-rw-rw-  1 someuser webs    0 paź 31 13:35 file

umaskと関係があると思いましたが、さまざまな方法で変更しても、何かが足りない場合を除いて、期待どおりの結果が得られることはありません。

これはどのように修正できますか?

承認された回答:

Hauke Lagingの答えは、次のように言おうとしています。

    ファイルまたはディレクトリを作成するプログラムは、そのファイルに持たせたいモード(権限)
    を指定します。
    これは、ほとんどの場合、Cプログラムでハードコーディングされています
    (または使用されている言語)
    であり、ユーザーが直接アクセスすることはほとんどありません。
    次に、umask 値とデフォルトのACLは、許可ビットをオフにすることができますが、
    追加することはできません。

    あなたの問題は、mkdir 777のモードを指定します(rwxrwxrwx )、
    ファイルを作成するほとんどすべてのプログラムは666(rw-rw-rw- )。
    これにはtouchが含まれます 、シェル
    (I / Oリダイレクト用。例:program > file )、
    編集者(vivimemacs 、など…)、ddsplit 、 等々。
    したがって、rwxrwxrwxの権限は取得されません プレーンファイルでは、
    作成直後(これらのプログラムのいずれかによる)、
    ACLで何をするかに関係なく、
    ファイルを作成してから、chmodを作成する必要があります。

    このルールにはいくつかの例外があります:

    • cp および関連するプログラム(例:cpiotar など)
      ファイルをコピーまたは再作成します。
      これにより、新しいファイルが元のファイルと同じモードに
      設定されます。
    • バイナリ実行可能ファイルを作成するコンパイラは、777のモードを指定します(少なくとも、コンパイルが成功した場合)。
      これにより、ユーザーはコンパイルしたばかりのプログラムを実際に実行できるようになります。

Linux
  1. ディレクトリを比較しますが、ファイルの内容は比較しませんか?

  2. ファイルの行数だけを取得する方法

  3. ファイルを削除していますが、ディスク容量はまだいっぱいです

  1. Linuxターミナルでファイルをコピーする

  2. ファイルを移動するが、それが閉じている場合のみ

  3. すべてのユーザーがディレクトリにファイルを作成できるようにするが、所有者のみが削除できる

  1. Linuxターミナルでファイルを移動する

  2. Linux –ファイルパーミッションは実行のみですか?

  3. ファイル内の単語をGrepしてから、ファイルをコピーしますか?