私はC言語のカスタムプログラムを持っていて、それはディレクトリをたどり、私の家の中の内容でログファイルを書きます。ただし、/ var / log / / etc /や他のルートフォルダにはアクセスできません。変更するには?これは現在、root以外のユーザーがmyname:myname myprogramにchownしています。どのようにそれを根のようにするための情報がありますか?
私はC言語のカスタムプログラムを持っていて、それはディレクトリをたどり、私の家の中の内容でログファイルを書きます。ただし、/ var / log / / etc /や他のルートフォルダにはアクセスできません。変更するには?これは現在、root以外のユーザーがmyname:myname myprogramにchownしています。どのようにそれを根のようにするための情報がありますか?
回答:
プログラムをrootとして実行したい場合は、rootとして起動してください。 rootとしてログインするか使用する su
または sudo
。
所有者は以下の場合を除き無関係です。 setuid
フラグが設定されています。ただし注意してください。 setuid
することができます 非常に これは常にrootとして実行されるため(またはファイルを所有するユーザーは任意のもの)、危険です。プログラムに脆弱性が含まれている場合、攻撃者はそれを悪用してシステムを完全に制御する可能性があります。また、ファイルが保護されたディレクトリに含まれていない場合は、ディレクトリの書き込み権限を持つユーザーが好きなように所有者を変更できます。
つかいます chmod 4xxx <file>
(ここで xxx
を設定する「通常」モードです。 setuid
フラグ現代の実装もサポートしています chmod u+s <file>