0

superuser.cppアクセス許可を持つスーパーユーザーによって作成されたファイルがあります770。ここで、スーパーユーザーは、.cpp と setuidDemonstration.cpp のオブジェクト ファイルをsetuidDemonstration.cpp使用して、superuser.cpp を開いたファイルを作成します。今、私の質問は: -open("superuser.cpp", O_RDONLY).rwxrwxr-x

  1. setuidDemonstration プログラムを実行したところ、通常モードとスーパーユーザー モードの両方で、superuser.cpp を開くことができませんでした。なんで?少なくとも、スーパーユーザーモードで開くには成功しているはずです。

  2. 今、私はそうしますsudo chmod 4775 setuidDemonstration。これにより、実行時に setuid ビットが設定されているため、実行中にスーパーユーザーの euid を取得するため、プログラムは通常モードでも superuser.cpp を開くことができますsudo chmod 4775 setuidDemonstration。しかし、それはできませんでした。また、通常モードから実行中にeuidを印刷すると、印刷され10000. なんで?

更新: 間違いを指摘していただきありがとうございます。ファイル パスから「/」を削除したところ、スーパーユーザーでも機能するようになりました。しかし、sudo chmod 4775 setuidDemonstration の後でも、通常モードの実行プログラムはファイルを開くために失敗します。説明してください。

4

1 に答える 1