他の人が実行権限を持たずに自分だけを持つことができるように、自分のグループから新しいファイルをそれぞれ継承したいのですが、新しいファイルを作成しようとすると664権限が与えられます。この問題をどのように解決しますか?
sudo adduser $USER cyber_espionage
sudo chown $USER:cyber_espionage ~/Documents/tool
sudo chmod 775 ~/Documents/tool
sudo chown $USER:cyber_espionage -R ~/Documents/tool
sudo chmod 2700 -R ~/Documents/tool
sudo find ~/Documents/tool -type d -exec chmod 775 "{}" \;
sudo find ~/Documents/tool -type f -name "*.py,*.sh" -exec chmod +x "{}" \;
sudo find ~/Documents/tool -type f -name "*.sh" -exec chmod +x "{}" \;
答え1
背景
このコマンドを使用してファイル権限モードマスクを設定する必要がありますumask
。これにより、そのディレクトリにコピーされたすべての新しいファイルに権限が設定され、アクティブな権限ビットのみがumask
新しくコピーされたファイルに伝播されます。
$ umask
0022
# -or- symbolically
$ umask -S
u=rwx,g=rx,o=rx
上記の権限は省略g=w
できますo=w
(無効、有効)。次のタイトルのU&L Q&Aをご覧ください。ビットを実行して読み出します。 Linuxでは、ディレクトリ権限はどのように機能しますか?不明な場合は、権限の詳細をご覧ください。
ノートUnix はumask
マスクであるため、多少混乱するトピックである可能性があるため、許可ビットをマスクして使用するビットを指定する代わりに、望ましくないビットを伝えます。
より簡潔に:
生成されたファイルの許可ビットにのみ追加の
umask
マスクを適用します。ファイルの許可ビットは、主にファイルを生成したプログラム、特に次のように決定されます。モードパラメータcreat()
またはシステムコールopen()
。これ実行ビット通常、理由がない場合(例:実行可能ファイルの生成)は設定されません。どの値も、umask
作成者が指定しないビットを追加することはできません。umask
ビットリセット。
あなたの問題
それでは質問に戻り、次のようにしますtouch afile
。
$ touch afile
$ ls -l afile
-rw-r--r-- 1 vagrant vagrant 0 Jul 8 11:45 afile
指定されたグループに対して上でumask
設定された権限はビットオフ状態(書き込みなど)になり、他の権限はビットオフ状態(書き込み)になります。0022
2
2
umask
に設定0007
して削除し、もう一度タッチすると次のようになりますafile
。
$ umask 0007; rm -f afile; touch afile; ls -l
total 0
-rw-r----- 1 vagrant vagrant 0 Jul 8 11:56 afile
他のユーザーがファイルにアクセスできないように許可されました(0007)。これは、他のコンポーネントに対する権限のすべてのビット(rwx)をオンにし、設定によって設定されないようにumask
「保護」したためです。
Unix権限を介して他のユーザーのディレクトリアクセスを制限するには、umask 0007
「その他」のユーザーグループを制限する権限を設定します。
メモ:他の人は自分が属するUnixグループに設定されている場合でもファイルにアクセスできます。これを制限するには、umask
に設定しますumask 0077
。
引用する
答え2
これを行うと、私には実行権限があり、他の人はいません。
...
chmod 2700 -R ~/Documents/tool
やめれば十分だ。このコマンドによれば、ユーザー(およびスーパーユーザー)だけがその中のファイルroot
にアクセスできます。~/Documents/tool/
内部ファイルをアクセスモードに変更する必要はありません700
。したがって、ここでは-R
オプションを使用する必要はありませんchmod
。そして、あなたはあなたのものを操作する必要はありませんumask
。
まず、現在使用されている製品はすでに汎用用途に適していますumask
。0002
第二に、頼る場合によっては、GNOMEファイル、テキストエディタなどがリセットされていることをumask
発見すると、気分が良くなりますumask
(たとえば、GDMで始まるFedora 28のGnome 3の内部)。これらのアプリケーションはsystemd --user
サービス内部で実行されるため(startupから起動されますdbus.service
)、次のシステム問題の影響を受けます。https://github.com/systemd/systemd/issues/6077 残念ながら、これを安定して再構成する方法はありません。
特定の他のユーザーをそのグループに追加してアクセス権を付与する必要がない限り、新しいグループを作成する必要はありません。
グループに別のユーザーを追加し、それを使用して読み取り(および実行)または読み取り+書き込みアクセスを許可する場合は、いくつかの異なる手順が必要です。で終わるパターンは、700
所有ユーザーにのみアクセスを許可するため、使用しません。
グループ書き込みアクセスの場合、GNOMEのように動作するアプリケーションを使用してこれらのファイルを生成するには、システムの問題に対する回避策も実装する必要があります。システムユーザーサービスの問題は、umaskを0022
逆にリセットすることです。繰り返します。安定して再構成できる方法はありません。