シェルには権限がありますが、スクリプトには権限がありません(Sudoを使用しない限り)。

シェルには権限がありますが、スクリプトには権限がありません(Sudoを使用しない限り)。

私は非常に基本的な混乱を経験しています。どのようにsudo動作しますか?

スクリプトを実行したときに、次の権限を持つディレクトリにファイルを書き込もうとしたため、失敗したことがわかりました。

$ ls -l thedir
drwxr--r-- usr grp

しかし、スクリプトを実行するとsudo -u usr動作します。

sudoを使用してスクリプトを正常に実行できる場合は、最初にスクリプトが失敗するのはなぜですか?

つまり、そのユーザーとして実行するのに十分な権限があれば、最初からスクリプトを正常に実行できる必要があると思います。

ベストアンサー1

他のユーザーとして行動する能力があるからといって、現在のユーザーと同じ権限が付与されるわけではありません。他のユーザーとして機能する現在のユーザーアカウントの能力によっては、権限は現在のユーザーに転送されません。sudoそして、suあなたは他のユーザーが「または」「役割」することができます。つまり、sudoを使用すると、実際に一時的にそのユーザーになります。

rootsudo他のユーザーとしてコンピュータにログオンしても、システムsuに関する限り、あなたはそのユーザーではないため、そのユーザーと同じ制限(およびアクセス許可)がありますroot

おすすめ記事