別のユーザーに属する単純な実行可能ファイルがあります。ある時点で、system( "ls / path / file")コマンドがあり、/path/file
は実行可能ファイルと同じ所有者を持ち、それによってのみ読み取り可能です。ファイルの内容が表示されるようにls
コマンドを変更してみましsed
たが、所有権に影響します。実行可能ファイルの文字列を変更して所有権を維持する方法はありますか?
所有権の変更が表示される理由は、エディターがファイルを変更していない可能性が高いです。代わりに、既存のファイルを置き換える新しいファイル(必要に応じてユーザーが所有)を作成します。
GNUsed -i
はこのモデルを使用するため、ファイルを編集すると所有権が変更されます。
$ ls -l foo
-rwxrwxrwx 1 bob ourgroup 26 Nov 5 18:10 foo
$ sed -i 's/foo/bar/g' foo
(no output)
$ ls -l foo
-rwxrwxrwx 1 alice ourgroup 26 Nov 5 18:10 foo
所有権を保持するには、置換ではなく上書きするエディターを使用するだけです。nano
とvim
はこれを行うインタラクティブなエディターですed
が、はスクリプト可能なエディターです。
ファイルにsuidu + sビットが設定されている場合、この権限を保持している間は、他のユーザーがファイルを変更することはできないことに注意してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加