web-dev-qa-db-ja.com

CHMODを使用して「drwx --- r-x +」フォルダの権限を取得するにはどうすればよいですか? -Bashスクリプト

ネットワークを介して一部のファイルを移動すると問題が発生し、ファイルの権限が原因であるようです。

現在、私はこの権限drwxrwxrwxを持つフォルダを持っています。権限をdrwx --- r-x +に変更するbashスクリプトを実行する必要があります

ACLが存在する必要があります。

CHMODコマンドを使用して同じ権限をどのようにして実現できるのかよくわかりません。私はこれまでに試しました:

chmod -R ugo = rx "ファイル"

しかし、これはdr-xr-xr-xに変更されるようです。これは十分ではありません...

したがって、問題は、drwx --- r-x +を実現するためにどのコマンドを実行する必要があるかです。

前もって感謝します。

PS。このコマンドはMACOSX Maveriksで実行する必要があるため、「setfacl」コマンドは役に立ちません。

7
Wcatter

許可drwx---r-x+は次のように分類されます。

  • dはもちろんディレクトリです。
  • rwxは、 serによって読み取り、書き込み、およびアクセスできることを意味します。これらの3つのビットは、8進数7で表すことができます。
  • ---は、ディレクトリに割り当てられたg roupに対して前述の3つのビットが設定されていないことを意味します。ビットが設定されていないため、8進数は0です。
  • r-xは、最初の2つのカテゴリ(つまり、他の全員、または "o ther")に一致しないユーザーは、ディレクトリの内容を読み取りおよびアクセスできますが、書き込みはできないことを意味しますそれに。ここのビットは1の列と4の列にあるので、この権限を表す8進数は5です。
  • +は、このディレクトリに関連付けられた「拡張セキュリティ情報」があり、標準のls "長形式"では表示されないことを示します。たとえば、アクセス制御リスト。

このディレクトリの基本的な権限を設定するには、8進数の省略形を使用できます。

$ chmod 705 directoryname

または、「シンボリック」表現を使用できます。

$ chmod u+rwx,g-rwx,o+rx-w directoryname

明らかに、略記は...より短いです。

+で示される拡張セキュリティ情報については、それを複製するために何が設定されているかを調べる必要があります。 lsコマンドには、拡張セキュリティ設定を表示する-eオプションがあります。

コマンドラインから実際にACLをsetするには、chmod'a =a-a、および+aオプションを使用します。これに関するドキュメントは、OSXでman chmodから入手できます。そのmanページから:

         Examples
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow delete
          # chmod =a# 1 "admin allow write,chown"
          # ls -le
          -rw-r--r--+ 1 juser  wheel  0 Apr 28 14:06 file1
            owner: juser
            1: admin allow write,chown
19
ghoti