解決策

解決策

Bashシェルスクリプトからフォルダを作成し、その中にmysqldumpを保存します。私のスクリプトには権限関連のコマンドがないと確信しています。他のユーザーがファイルにアクセスできるようにACLを使用しましたが、そのファイルにアクセスしようとしたときに権限拒否の問題が発生しました。問題はeffectiveACLの権限にありました。

ディレクトリの所有者はでありola、フォルダにアクセスしたい新しいユーザーはであり、uberフォルダはです。gettaxi

親ディレクトリ権限

[/omega/olabooktmp]# getfacl .
# file: .
# owner: ola
# group: ola
user::rwx
user:uber:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:uber:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

サブディレクトリ権限

[/omega/olabooktemp]# getfacl gettaxi/
# file: gettaxi/
# owner: ola
# group: ola
user::rwx
user:uber:rwx       #effective:---
group::r-x          #effective:---
mask::---
other::---
default:user::rwx
default:user:uber:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

新しいディレクトリgettaxiマスク権限があると判断され、mask::---これが問題の原因であると仮定しますが、この問題を解決する方法を理解することはできません。

どんなアドバイスも本当にありがとうございます。

ありがとうございます。

答え1

次のコマンドを使用してマスクを変更できます。

setfacl -m m:rwx filename/directory

答え2

あなたの質問をよく理解すると、ユーザーはディレクトリにolaファイルを生成しています。/omega/olabooktmp/gettaxi

そして、これらのファイルへのアクセスを制限し、ユーザーにアクセス権を付与したいと思いますuber

注:/omega/olabooktmp/gettaxi所有者は次のとおりです。ola

ACLがない場合から始めましょう。

ls -ld /omega/olabooktmp/gettaxi
drwxr-x--- 2 ola ola 4096 mars  21 08:16 /omega/olabooktmp/gettaxi

ACLrwx権限を付与するには、uber次を使用できます。

setfacl -m u:uber:rwx,d:u:uber:rwX,o:--- /omega/olabooktmp/gettaxi

これにより、フォルダに対するユーザー権限が許可され、uber付与されます。以前にフォルダーにあったファイルに権限を付与し、ファイルに継承した権限を付与します。もちろん、他のすべての権限を削除して制限してください。所有者はまだライセンスを持っています。rwx/omega/olabooktmp/gettaxirwxdefaultd:Xother

結果:

getfacl /omega/olabooktmp/gettaxi
getfacl: Removing leading '/' from absolute path names
# file: omega/olabooktmp/gettaxi
# owner: ola
# group: ola
user::rwx
user:uber:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:uber:rwx
default:group::r-x
default:mask::rwx
default:other::---

テスト:

olaいくつかのファイルを作成します(rootとして実行)。

su - ola -c "for i in {1..3}; do date > /omega/olabooktmp/gettaxi/$RANDOM; done"

結果:

ls -l /omega/olabooktmp/gettaxi/
total 32
-rw-r----- 1 ola users 32 mars  21 08:43 17606
-rw-r----- 1 ola users 32 mars  21 08:43 22286
-rw-r----- 1 ola users 32 mars  21 08:42 31484
-rw-r----- 1 ola users 32 mars  21 08:43 31848
-rw-r----- 1 ola users 32 mars  21 08:42 667
-rw-r----- 1 ola users  4 mars  21 08:16 one
-rw-r----- 1 ola users  6 mars  21 08:16 three
-rw-r----- 1 ola users  4 mars  21 08:16 two

一般ユーザーはアクセスできません(rootとして実行):

su - debian -c "ls -l /omega/olabooktmp/gettaxi"
ls: cannot open directory '/omega/olabooktmp/gettaxi': Permission denied

ただし、uberは次のことができます(rootとして実行)。

su - uber -c "ls -l /omega/olabooktmp/gettaxi"
total 32
-rw-r----- 1 ola users 32 Mar 21 08:43 17606
-rw-r----- 1 ola users 32 Mar 21 08:43 22286
-rw-r----- 1 ola users 32 Mar 21 08:42 31484
-rw-r----- 1 ola users 32 Mar 21 08:43 31848
-rw-r----- 1 ola users 32 Mar 21 08:42 667
-rw-r----- 1 ola users  4 Mar 21 08:16 one
-rw-r----- 1 ola users  6 Mar 21 08:16 three
-rw-r----- 1 ola users  4 Mar 21 08:16 two

一部のテストでACLが破損している場合は、以下を使用してすべてのACLを削除できます。

setfacl -R -b /omega/olabooktmp/gettaxi

そして再起動してください。

答え3

はい、マスクは権威を弱めています。有効な権限は、権限とマスクの合計です。 (user::(ユーザーを所有し)otherマスクの影響を受けません)。

以下を使用してマスクを変更できます。例: setfacl -m m:r-x file-name

を実行するときにls -lパターンがで終わる場合、+中間パターンビット(伝統的にグループビット)はマスクです。

時々、モードビットはのグループビットに基づいて設定されますumask。いつこれが起こるのか、いつデフォルトマスクを使うべきかについての規則はありませんでした。cpファイルのコピーにはumask

解決策

ユーザーが自分のグループを持っていることを確認し、それをデフォルトグループに設定します。次にumaskに設定します 007

答え4

この動作はバグだと思われます。私はこれを先月公開しました(unix.stackexchange.com/questions/570795を参照)。 cpコマンドは、ソースファイルのファイル権限をaclマスクにコピーします。これはcpではなくcp -pから期待されるものです。私はcatを使ってコピーできることがわかりました。

cat afile > bfile

またはtarパイプライン経由

(cd A; tar -cf -)|(cd B; tar-xf -)

そしてaclsは予想通り尊重されます。

また、このCPの動作を説明するために賞金を提供しています。誰もそれを説明しません。バグレポートの提出を検討中です。つまり、これは通常のcpアクションではなく「cp -p」アクションでなければなりません。 (そして誰も答えられませんでしたが、システムが報酬ポイントを差し引いてしまいました。私も驚きました。)

関連情報