質問

私はホームディレクトリのバックアップをする単純なbashスクリプトを書きました.eはそれを/ var / backupsに入れます。 そのディレクトリは保護されているので、スクリプトをrootとして書き込み、SUIDを設定します。

armando@ubuntu:~/scripts/bash $ ll
-rwsr-xr-x 1 root    root    2596 Jul 28 10:43 homebackup.sh*
.

でも、スクリプトが/ var / backupsに書き込もうとしたときに「許可が拒否された」エラーが発生します。なぜ?

役に立ちましたか?

解決

Linuxでは他のほとんどの最新のUNIXファミリシステムでは、SetUIDビットはスクリプトではなく直接バイナリ実行可能ファイルに対してのみ認識されます。

これは設計上、セキュリティ上の理由からです。SetUIDスクリプトのコンパイル済みのラッパーを構築するか、既存のツール(希望のスクリプトを目的のユーザーとして特定のスクリプトを呼び出すときに、パスワードを必要としないように)既存のツールを使用してそれを回避できます。

Unix Stackexchange

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top