このシステムのユーザーは注意して、umaskを非常にプライベートな0077に設定しています。ただし、ユーザーは、ファイルが配置されるグループ固有のディレクトリを作成したいと考えています。他のグループメンバー間で明示的に共有するためにコピーすることができます。それぞれがグループに固有ですが、そのような共有ディレクトリが複数存在する場合があります。

共有に使用する特定のディレクトリのグループスティッキービットを設定するだけでは不十分です。スティッキービットを設定すると、ディレクトリに配置されたファイルのグループ所有権が正しくなりますが、多くの場合、ファイルのアクセス許可は、ファイルを読み取ったり編集したりできないように設定されます。つまり、実際には共有できません。それらはディレクトリリストに表示されるだけです。これは、一部のユーザーが、読み取りと書き込みを許可するために必要なグループ権限の調整を手動で行うことを考えていないか、その方法を知らないためです。結局のところ、ユーザーは管理者ではないので、これをやめることができます。 acls を使用すると、aclsがない場合のグループのアクセス許可とは関係なく、特定のグループが共有ディレクトリ内のファイルにアクセスできるように指定できます。これは完璧なソリューションですが、完全には機能していません。

以下では、共有グループは「customer_gateway」であり、ファイルを共有しようとしているユーザーの例は「svw」です。トランスクリプトに見られるように、svwユーザーはcustomer_gatewayグループのメンバーです。共有が行われるディレクトリは、「customer_gateway /」とも呼ばれます。

以下では、aclsを使用しています。グループのアクセス許可、デフォルトのグループのアクセス許可、マスク、およびデフォルトのマスクを設定しました。ディレクトリ内に作成されたファイル、またはcat(またはtar)を介してそこに移動されたファイルに対してはうまく機能しますが、奇妙なことに、そこに「cp」されたファイルに対しては機能しません:

# rm -r customer_gateway/ # umask 0077 # cat ~/script1 mkdir customer_gateway chown :customer_gateway customer_gateway/ chmod g+rwx customer_gateway/ setfacl -m group:customer_gateway:rwX customer_gateway/ setfacl -m d:group:customer_gateway:rwX customer_gateway/ setfacl -m m::rwX customer_gateway/ setfacl -m d:m::rwX customer_gateway/ getfacl customer_gateway cd customer_gateway touch cga cat << EOF > cgb c g b EOF ls -l # . ~/script1 # file: customer_gateway # owner: root # group: customer_gateway user::rwx group::rwx group:customer_gateway:rwx mask::rwx other::--- default:user::rwx default:group::rwx default:group:customer_gateway:rwx default:mask::rwx default:other::--- total 4 -rw-rw----+ 1 root root 0 Mar 2 20:43 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb # su - svw /home/svw/bin:/usr/local/bin:/usr/bin:/bin (note umask is 0077) > cd /share/customer_gateway/ > groups svw adm dip video plugdev google-sudoers customer_gateway > cat >> cga e f g > cat > cgc c g c > ls -l total 12 -rw-rw----+ 1 root root 6 Mar 2 20:44 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb -rw-rw----+ 1 svw svw 6 Mar 2 20:44 cgc > ls ~/dat ta tb tc > cat ~/dat/ta > ta > cp ~/dat/tb tb > ls -l total 20 -rw-rw----+ 1 root root 6 Mar 2 20:44 cga -rw-rw----+ 1 root root 6 Mar 2 20:43 cgb -rw-rw----+ 1 svw svw 6 Mar 2 20:44 cgc -rw-rw----+ 1 svw svw 4 Mar 2 20:45 ta -rw-------+ 1 svw svw 4 Mar 2 20:45 tb > getfacl ta # file: ta # owner: svw # group: svw user::rw- group::rwx #effective:rw- group:customer_gateway:rwx #effective:rw- mask::rw- other::--- > getfacl tb # file: tb # owner: svw # group: svw user::rw- group::rwx #effective:--- group:customer_gateway:rwx #effective:--- mask::--- other::--- > 

これが示すのは、ファイルがディレクトリに作成されると、デフォルトのアクセス許可を受け取り、共有可能であるということです。ただし、ユーザーは常にファイルを作成するわけではなく、通常はそこでcpします。

ただし、コピーを実行するには、最初に新しいファイルを作成する必要があるため、コピーを実行することも同じです。ここではプレーンコピーであり、権限の保持コピーではありません。これは次の形式と同じです。btwは機能し、元のグループ権限とは関係なくディレクトリで共有可能なファイルをコピーします。

cat < data.in > shared/data.out 

正常に機能し、tarを介したパイピングも機能しますが、フォーム

cp data.in shared/data.out 

は失敗します。cat edファイルは、デフォルトのマスクとデフォルトのアクセス許可を取得します。cp edファイルは、そのアクセス許可をaclマスクとグループのアクセス許可に保持します。 cp -p(ただし、そうではありませんでした)、したがって、有効なアクセス許可は、aclsが設定されているものではなく、元のファイルのように読み取られます。

2回目の試行として、この実験をグループスティッキービット、chmod g + rwxs、およびfacl chアンジュ、そしてまったく同じ結果を得ました。ただし、すべての共有ファイルにグループの所有権が表示されるため、ディレクトリリストはよりきれいになります。また、setfaclを使用せずに、グループスティッキービットを設定して実行しました。コピーされたファイルについても同じ結果が得られました(したがって、ファイルがコピーされて共有されるディレクトリでは、faclはかなり役に立たないように見えます)。

linux faclは、どのような基準で、どのような理由で、データを作成しますか?これを行うように指示されていないのに、なぜcpにパーミッションを保持するように強制するのですか?猫とタールを介した配管の区別によって引き起こされる混乱を正当化するのはなぜですか?cpは機能しませんか?この区別を行う魔法の呪文がありませんか?蒸発しますか?

この要約は正しいですか:faclsを使用すると、ファイルを共有するための所有権を克服できます。ファイルを「作成」するときに、その作成がcpコマンドによるものでない限り、アクセス許可はumaskよりも許容されます。理由は…理由は?

コメント

  • どのオペレーティングシステム(Linuxディストリビューションとバージョン)とどのファイルシステムを使用していますか?おそらくこの目的のために専用のシェルスクリプトを介して、人々にcatを使用させても大丈夫ですか?
  • グループ内のすべてのユーザーが変更または削除できるようにしますか?任意のファイル、または作成者のみがそのようなアクセス許可を持っている必要がありますか?言い換えると、oの読み取りアクセス許可(および場合によっては実行アクセス許可)のみ
  • Debian 10.ファイルの作成が機能するため、’コピーをtarにパイプしました。 ‘これをproj_cpコマンドとして/ usr / local / binにパッケージ化します。ただし、ユーザーが特別なコピーコマンドを使用する必要がある場合は、faclを使用せずにグループスティッキービットを使用して、アクセス許可を設定することができます。 cat tar および cpが機能するようにaclsを設定する方法を知りたいです。’ cpの動作ではなくcp-pの動作を実行しているため、cpのaclsに問題があると考えています。 ‘権限の専門家からの連絡を楽しみにしています。
  • ご指摘のとおり、グループの共有はさまざまな問題で繰り返し発生します。この場合、ソフトウェア開発者はテストリリースディレクトリにアクセスできます。いじくりまわすのは彼らのものです。彼らはそのディレクトリで作業し、プッシュ、プル、仮想環境にインストールするなどできます。問題は、作業中の別の領域からコピーして、umaskにグループ権限が設定されていない場合に発生します。ファイルの作成とtarによるコピーは正常に機能するため、混乱を招きます。 cpが行うことを実行するだけのコピースクリプトを提供しなければならないのも面白いです。 ‘ acls ‘彼らは魔法です私はLOLと言います
  • 私はアクセシビリティの専門家ではありませんが、私の質問を願っていますそしてあなたの答えは専門家があなたに関連する答えを与えるのを助けることができます。

答え

ディレクトリを作るというこの事実ユーザーがアクセスできるのは非常にシンプルで、簡単に実行できます。

  • まず、このディレクトリを作成するための適切な場所を見つける必要があります。アクセス可能なディレクトリの下に作成することをお勧めします。すべてに(今のところ)。コマンド sudo mkdir を使用して、新しいディレクトリを作成します。

  • 次に、グループを作成する必要があります。グループは、Linuxシステムの特定の部分を制限またはアクセスするために切り上げられたユーザーの集まりです。 ls -l コマンドを入力すると、次のようなグループが表示されることがあります。

rwxrwxrwx 3 root admins 4736 Oct 24 12:32 File1.doc

root という部分が所有者であり、** admins **がファイルを所有するグループです。グループは、特定の人がファイルを表示できるようにする簡単な方法を保証します。グループを作成するには、「sudo groupadd」と入力します。これは、ディレクトリに使用されるグループになります。

  • グループを作成したら、ディレクトリにアクセスするユーザーを追加できます。次のコマンドを使用して sudo adduser これにより、ユーザーを追加して、ユーザーがグループのグループに属しているかどうかを確認できます。コマンド。

これが完了したら、作成したディレクトリを参照し、グループ権限を7(rwx)に設定します。これらは好みに合わせて調整できますが、7はグループのユーザーに完全な権限を付与します。ディレクトリに「sudochmod770」と入力すると、これを行うことができます。

次に、ディレクトリのグループ所有権を変更する必要があるため、ディレクトリのグループ所有者は作成したグループになります。次のコマンド「sudochown-R:groupname」を使用します。

これがすべて完了すると、グループに好きな人を追加できるようになり、ファイルをコピーして共有できるようになります。 eyは、ディレクトリにアクセスするためにその特定のグループに属しています。これが役に立ったら教えてください!!!!!!

コメント

  • ありがとう、元の投稿を明確にして、なぜそうしなかったのかを説明しました’この手動アプローチは使用しないでください。

回答

IすべてのACLを削除し、ユーザーとグループのアクセス許可のみを使用します。次に、全員にアクセスを許可するフォルダをchmod 777します。次にアクセスをテストします。

次に、 chmod 770フォルダのテストアクセスを再度行います。

これが機能する場合は、一度に1つずつaclを追加し直します。

実行権限が必要ない場合は、chmod660フォルダ名を使用してrw *、rx *、***にさらに下げることができます。

ACLとchmod777の権限がない期間を覚えておいてください。フォルダはすべての人に広く公開されるので、そのままにしないでください。

コメント

  • 全員ではなく、特定のグループの人だけです。ディレクトリにグループスティッキービットを設定できます。問題は、ユーザーがファイルをディレクトリに配置し、グループは正しいが、グループアクセスを設定することを知らないか、忘れていることです。’ aclsを使用して、特定のグループがグループのアクセス許可に関係なくファイルにアクセスできるように指定できます。それが完璧な答えです。問題は、ACLにマスクがあり、cpがユーザーのumaskと一致するようにACLマスクをクリアしているため、有効なアクセス許可ではファイルの読み取りが許可されないことです。

回答

試してみました。グループのアクセス許可はACLのマスクであるため、umaskがグループのアクセス許可を覆っているようです。すべてのグループとACLをブロックしています。

回避策は、umaskの制限を緩和することです。これを安全に行うには、ユーザーごとにグループを追加し、このグループをデフォルトのグループにする必要があります。 (すべてのユーザーが独自のグループを持っているのはなぜですか?

異なるumaskの場合がまだあるため、これは理想的ではありません。 (g = rx、およびg = rwx)。この戦略では、グループ権限が不要になるだけです。

コメント

  • はい、それは私が行ったことです。代わりにユーザーマスクを007に設定しました。回避策として077の。ただし、´は完璧ではありません。多くのファイルはまだ権限が低く、コピーされます。ここで学びたいのは、cpがこのように動作する理由です。これはcp-pの動作であると私には思えます。ここの誰かがそれを説明してくれることを望んでいました。

回答

これまでのすべての回答は、その方法についてアドバイスを与えてきました。グループディレクトリを介したファイルの共有を処理します。 Nonが主な質問に答えたと思います。それは、cp a bcp -p a bが指定されているかのように動作するのはなぜですか? manページでは実際には説明されていませんが、 texinfo に詳細があります。 info coreutils "cp invocation"の表示:

 ‘-p’ ‘--preserve[=ATTRIBUTE_LIST]’ Preserve the specified attributes of the original files. ... ... In the absence of this option, the permissions of existing destination files are unchanged. Each new file is created with the <=== mode of the corresponding source file minus the set-user-ID, <=== set-group-ID, and sticky bits as the create mode; the operating system then applies either the umask or a default ACL, possibly resulting in a more restrictive file mode. ... 

したがって、宛先が存在する場合、コンテンツは置き換えられますが、モードビットは変更されていません。宛先が存在しない場合、モードビットはソースからコピーされます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です