グループの変更と環境変数の維持

グループの変更と環境変数の維持

キャンパスでは、全員の基本グループがあり、user各人は、自分が受講する過程、勤務するラボなどに応じてグループにつながります。

私の同僚と私は両方ともこのグループのメンバーなので、私たちはどちらも承認なしにファイルにアクセスできるようにし、使用していますfoonewgrp fooumask 7みんな許可する。私たちの誰もこれを気にしませんでした。

ただし、PATHまずラップのbinフォルダをポイントしてから、そのフォルダを指す環境変数が必要ですPATH。単純なスクリプトがうまくいくと思いましたが、PATH実行後に内容が保持されないため、機能しませんnewgrp

#!/bin/tcsh
setenv PATH "/path/to/lab/bin:$PATH"
newgrp foo

デフォルトのシェルはですtcsh。提案がある人はいますか?

ありがとうございます!

ベストアンサー1

実行時にパスワードを要求しない限り(ほとんど使用されていない機能)、そのグループが所有するファイルを作成するためにnewgrp使用する必要はありません。代わりにこれをnewgrp使用できますchmod。たとえば、次のワークフローの代わりに:

newgrp lab1
mkdir project1
$EDITOR project1/file1

次のことができます。

mkdir project1
chgrp lab1 project1
$EDITOR project1/file1
chgrp lab1 project1/file1

最新のuniceでは、すでに含まれているディレクトリproject1/file1に属しているか(* BSD)、この動作を強制的に実行できます(Linux、Solaris ...)。lab1

mkdir project1
chgrp lab1 project1
chmod g+s project1
$EDITOR project1/file1

どちらもumask002または007に設定する必要があります。


次の場合、権限の管理が簡単になります。ACL(アクセス制御リスト)すべてサポートされます。 ACLサポートはディスクファイルシステムドライバに存在し、インストールオプションで有効にする必要があり、該当する場合はネットワークファイルシステムに対しても有効にする必要があります。 ACL サポートはまだ広く普及していないため、サポートできない場合があります。

ACL が使用可能であることを確認するには、Linux クライアントで以下を実行します。

touch foo
setfacl -m user:myfriend:rwx foo
ls -l foo

権限が次のようにfoo表示された場合-rw-rw-r--++最後にaがある場合)、ACLが有効になります。このsetfaclユーティリティが利用できない場合は、キャンパスネットワークにACLがない可能性があります。

ACLがある場合は、緩いumaskは必要ありません。022または077を使用できます。 ACLを使用してグループ書き込み可能ディレクトリ(新しく作成されたファイルもグループに書き込むことができます)を設定するには、次の手順を実行します。

mkdir project1
setfacl -m group:lab1:rwx project1; setfacl -d -m group:lab1:rwx project1

許可されたumaskを必要としないことに加えて、ACLを使用すると、すべてのユーザーとグループのセット間でファイルを共有できます。

おすすめ記事