ディスク容量が不足している状況でプログラムの動作を確認するためのいくつかのテストがあります。以前は、dd
小さなファイルを作成し、mkfs
その上にファイルシステムを作成し、sudo losetup
それをループバックデバイスとしてマウントし、テストを実行しました(注意してここでは適切ではありません。/dev/full
テストはディレクトリにあるため、次から始める必要があります)。スペースを確保してから使用してください)。
ただし、テストを実行するためにアカウントにアクセスできないCI / CD環境に移動しているため、sudo
代替手段が必要です。
udisksctl
私のシステムではうまくいきloop-setup
ますが、CI / CDシステムで実行しても認証エラーが発生します。注意深く読んでみると、ユーザーのログインが必要なので、リモートサービスでは十分ではないようです。
完全なsudoアクセス権を取得することはできませんが、このアカウントがループバックデバイスを管理できるようにpolkit例外をインストールできます。ループバックの管理に関するさまざまなセクションを見て、/usr/share/polkit-1/actions/org.freedesktop.UDisks2.policy
このファイルを編集して許可するSO質問をたくさん読んでいましたが、any
これはおそらく良いことではありません。
ここで何をすべきかわかりません。/etc/polkit-1/localuthority
特定のユーザーがログインセッションなしでループバックデバイスを管理できるように指定できる新しいファイルをどこかに追加する方法はありますか(sudo
まもなく提供する予定)。systemd
User=
それとも、この状況をテストする方法が複雑すぎるため、人々は他のより簡単な方法をお勧めしますか?
答え1
まず、次の内容でファイルを作成しました/etc/polkit-1/localauthority/50-local.d/55-storage.pkla
。
[Storage Permissions]
Identity=unix-group:disk
Action=org.freedesktop.udisks2.loop-setup;org.freedesktop.udisks2.filesystem-mount
ResultAny=yes
上記のコマンドを使用すると、サブコマンドを使用でき、loop-setup
サブコマンドを使用するとおよびを実行できます。loop-setup
loop-free
udisksctl
filesystem-mount
mount
unmount
それから私は次のことをしました。
usermod -aG disk someuser
systemctl restart polkit.service
someuser
これで、実行時にudisksctl loop-setup -f my-iso.iso
パスワードを入力しなくても機能します。これはすべてSSHを介して行われます。
これはUbuntu 20.04で行われたため、他のディストリビューションでは正確な手順が異なる場合があります。
感謝の言葉:このスーパーユーザーの答え上記のタスクを実行する方法を見つけるのに非常に役立ちます。