
キャンパスでは、全員の基本グループがあり、user
各人は、自分が受講する過程、勤務するラボなどに応じてグループにつながります。
私の同僚と私は両方ともこのグループのメンバーなので、私たちはどちらも承認なしにファイルにアクセスできるようにし、使用していますfoo
。newgrp foo
umask 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
どちらもumask
002または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を使用すると、すべてのユーザーとグループのセット間でファイルを共有できます。