Unix / Linux Ubuntuでフォルダーのアクセス許可を設定する方法


2

これは必ずしも直接的なコンピューターサイエンスの質問ではありませんが、密接に関連しています。

これを行う方法はありますか。

Z Shell zshを使用しています。

フォルダーにいるときはいつでも設定したい

〜/ blah

私が作成するすべてのものは、権限770(私とグループのすべてのアクセスwrx)を使用して作成されます。基本的に、そのフォルダで私が行うことはすべて、これらの権限を持っている必要があります。

さらに、そのファイルのグループも同じ方法で実行する必要があります。しかし、それは許可のプロセスと同じプロセスです。

誰でも?

ubuntu  unix  shell  zsh 

回答:


3

このテーマに関する素晴らしい記事を見つけました。「umask」とは何ですか?どのように設定できますか?

umask新しいファイルを取得する権限を定義します-またはより良い:権限は、それが取得することはできません。

[...]

umask特定のディレクトリに定義する場合(例:大学で使用するディレクトリのグループ書き込み許可)、umaskコマンドはすべてのディレクトリに対して常に有効であるため、umaskコマンドを使用すると汗をかきます。

この問題の解決策は、デフォルトACLを設定することです。次のコマンドは/home/shared/、グループのすべての新しいファイルにすべてのアクセス許可(書き込みアクセス許可を含む)が設定されていることを確認します 。

setfacl -d -m mask:007 /home/shared/

また、ディレクトリのsgidビットを設定し、chgrpを使用して目的のグループを選択する必要があります。

chgrp the_team /home/shared/
chmod g+s /home/shared/

/home/shared/すでにサブディレクトリが含まれている場合は、それらの権限も変更する必要があります。ヒント:上記のコマンドはすべて-Rオプションを知っています。


1
私はOPが特定のフォルダのみに適用されるumaskの種類の設定を探していると思う
ピーター・ファン・デル・Heijden

1

セット

umask 006 

あなた~/.bash_profileのデフォルトの022とは異なります。

chgrp staff         # or some other group you pick
chmod g+s blah

ディレクトリのスティッキービットを有効にします。これで、下に作成するすべてのものが、モードとグループを保持するはずです。


0

アクセス制御リストを使用するには、ファイルシステムが ' acl 'フラグでマウントされている必要があることを忘れないでください。それ以外の場合、setfaclコマンドは「Operation not supported」を返します。

たとえば、これはfstabファイル(/ etc / fstab)のエントリです:

# <file system>  <mount point>     <type>  <options>   <dump>  <pass>
/dev/sdb1        /media/DataDrive  ext3    acl         0       0

0

シェルのcwdが変更されるたびに実行されるchpwd()関数を定義できます。その中で、ディレクトリをテストし、umaskを適切に設定します。

function chpwd {
  [[ $PWD == $HOME/blah ]] && { umask 007; return }
  # or, if more tests here, use case $PWD in ... esac
  umask 022
}

0

umask作成するすべてのファイルとディレクトリのデフォルトのアクセス許可を変更しますが、特定のディレクトリのみに対してこの動作が必要な場合は、アクセス制御リストのACLを参照man acl(5)する必要があります。詳細については、以下を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.