開発環境の/homeフォルダの標準設定はnoexecと聞きました。誰でも参考資料を提供できますか?
/homeでnoexecを使用すると、IDEやエディタなどのアプリケーションが期待どおりに機能しなくなります。
答え1
noexec
非常に限られた環境を除いて、直接的なセキュリティ対策としては役に立ちません。ファイルシステムでファイルを実行するには、次の手順をnoexec
実行できます。
/lib/ld.so myfile
動的にリンクされた実行可能ファイルの場合は、動的リンカー(たとえば)を使用して直接実行します。/bin/sh myscript
スクリプトの場合は、インタプリタ(たとえば)を使用して直接実行してください。cp myfile /tmp && /tmp/myfile
書き込み可能なファイルシステムがある場合は、実行可能ファイル(たとえば)を許可する別のファイルシステムにコピーします。
他の人があなたのコンピュータでプログラムを実行することを許可した場合、その人はあなたのコンピュータでプログラムを実行することができます。開発者マシンはプログラムを実行したいです。さらに、誰も確認していないプログラム(5分前には存在しなかったため)を実行したいと思います。
noexec
少し役に立つ受動的セキュリティ対策は、マルウェアがファイルをダウンロードして実行するのを防ぎます。もちろん、マルウェアはこの問題を簡単に解決できますが、マルウェア開発者がこの点を考慮した場合にのみ可能です。ほとんどのマルウェアは影響を受けません。特に、ブラウザを対象とするマルウェアは、ブラウザのコンテキストでのみ実行されるため、影響を受けません。したがって、まれな脅威に対して弱い保護を提供します。問題を引き起こす価値はありません。
したがって、ほとんどnoexec
使用されません/home
。開発者にとって、これは本当に破壊的なものです。例えば、多くの図書館管理プログラムが中断される。だからこれは悪い考えです。
ユーザーがいくつかの特定のプログラムを実行する必要があるため、よりロックされているシステムでもこれはまったく一般的な設定ではありません。
答え2
noexec
これが開発環境の/homeフォルダの標準設定だと聞きました。
他では見たことのない視点だ。
いいえ、これに対する「標準」はありません。標準は標準化を意味します。 ISO規格またはRFCで/home
。
実際、ほとんどのLinuxディストリビューションは/home
別々のパーティションとして割り当ても提供しておらず、そうでなければ特定のインストールオプションは利用できません。
答え3
「これらのライブラリは、ホームディレクトリ以外のドライブ/フォルダで開発および実行/テストされています。」
それではそうします。それはちょうど愚かで悪いです。
noexecの目的は、もともとsuidプログラムが機能しないように信頼できないメディアに設定することでした。同じ理由でnosuidとnodevも取得します。
しかし、今世紀の人々はnoexecを意図しない目的で推進しています。ユーザーが外部バイナリ(インストールしたバイナリを含む)を実行することを不可能にすることは不可欠です。すべてをハッシュするのに十分な項目があるため、これは一般的なシステムでは意味がありません(/usr/bin
一目で、、、、、、、、、、、、、などbochs
の通常dd
の項目がある場合を除く)。独自のバイナリコードを実行する必要はありませんが、携帯電話などのデバイスに対する実質的なセキュリティ防御手段になります。ex
gdb
hexedit
m4
tar
lua
node
perl
python
ただし、ユーザーがnoexecなしでファイルシステムへの書き込みアクセス権を持っていると、まったく機能しません。管理者は、業務を遂行する過程で無能さを見せ、仕事を台無しにして敗戦を受けています。
おそらく、どこかに「承認されていないソフトウェアの実行を防ぐ」チェックボックスがあります。定義によれば、開発者は承認されていないソフトウェア(開発中の新しい変更)を実行するため、承認されていないソフトウェアを実行でき、構成変更でそれを取り消すことはできません。