コマンドグループの変更

コマンドグループの変更

コマンドを実行し、メンバーに属する特定のグループ名を使用して実行したいのですが、そのグループは私のデフォルトグループではありません。したがって、生成されたすべてのファイルはこのグループに属します。そのようなコマンドがありますか?

そして後で修正してくださいchgrp

それから発見されたnewgrp各ログインセッションのデフォルトのデフォルトGIDを変更する)、しかしこれはサブシェルを生成します。したがって、オネライナーはnewgroup <groupname> && cmd機能しません。そして後でシェルを閉じる必要があります。

どちらのアプローチもエラーが発生しやすいようです。

ベストアンサー1

このコマンドは、sgこの目的に使用できます。

引用するman sg

sg [-] [group [-c ] command]

このsgコマンドはコマンドのように動作しますnewgrpが、コマンドを受け入れます。このコマンドはシェルを使用して実行されます/bin/sh。を実行する可能性のあるほとんどのシェルでは、複数のsg単語コマンドを引用符で囲む必要があります。newgrpとの間のもう1つの違いは、sg一部のシェルは、 newgrp自分が作成したシェルの新しいインスタンスに自分自身を置き換える特別なタスクを実行することですnewgrp。の場合、これは起こらないので、コマンドをsg終了すると sg古いグループIDに戻ります。


bashスクリプト内の複数のコマンドのGIDを変更するには、スクリプトを2つの部分に分割し、パラメータを使用して2番目のスクリプトを呼び出すか、無限の再帰を避けるために、スクリプトにいくつかのパラメータをsg使用して独自の呼び出しを実行します。sg

Pythonでsetgitシステムコールを使用する他の方法があります。

おすすめ記事