shebangを使用してスクリプトからインストールすることはできません(カーネル強化関連?)

shebangを使用してスクリプトからインストールすることはできません(カーネル強化関連?)

私は非常に奇妙な問題を発見しましたmount。わかりません。

いくつかのコンテキストでホットプラグ可能なUSBデバイスを自動的にマウントするように設計されたPythonスクリプトを作成しましたが、これは関係ありません。

発生するインストールエラーは次のとおりです。

mount: /media/usb/backup: filesystem was mounted, but any subsequent operation failed: Operation not permitted.

LUKSパーティションがロック解除されており、スクリプトを使用してマウントしようとしています。

$ lsblk /dev/sdb
NAME                                     MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sdb                                        8:16   0  1.8T  0 disk
├─sdb1                                     8:17   0   64M  0 part
├─sdb2                                     8:18   0  128M  0 part
├─sdb3                                     8:19   0   10G  0 part
└─sdb4                                     8:20   0  1.8T  0 part
  └─cfe1c7ab-36cc-4419-9373-764aaae1033f 254:1    0  1.8T  0 crypt

次のように、再現可能な最小限の例を作成しました。

#!/usr/bin/bash
mount /dev/mapper/cfe1c7ab-36cc-4419-9373-764aaae1033f

ビットxが設定され、shebangを使用してこのスクリプトを実行すると、上記と同じエラーが発生します。

$ sudo /tmp/test
mount: /media/usb/backup: filesystem was mounted, but any subsequent operation failed: Operation not permitted.

奇妙なことは、シェルで同じコマンドを実行すると機能することです。

$ sudo mount /dev/mapper/cfe1c7ab-36cc-4419-9373-764aaae1033f
$ echo $?
0

Shebangを使用せずにbashを使用して明示的にスクリプトを実行しても、うまくいきます。

$ sudo bash /tmp/test
$ echo $?
0

Operation not permitted明らかにエラーを引き起こしたshebangで何が起こったようです。私の記憶が正しい場合、shebangはカーネルによって直接処理されますが、もし私がArchLinuxを使用しているという事実と関係がないのではないかと思い始めました。linux-hardened(これはGraphenOSカーネルのフォークです。)

shebangを使用してスクリプトを実行するときにこのエラーを引き起こす可能性があるLinuxメカニズム(名前空間のマウント?)を知っていますか?私の内容を読んでくれてありがとう。

ベストアンサー1

おすすめ記事