특정 사용자를 인증하지 않고 udisksctl이 설정을 반복하도록 허용

특정 사용자를 인증하지 않고 udisksctl이 설정을 반복하도록 허용

디스크 공간이 부족한 상황에서 프로그램의 동작을 확인하기 위한 몇 가지 테스트가 있습니다. 이전에는 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(곧 제공 예정) 예: Via SSH , 아니면 이 경우 설정이 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-setuploop-freeudisksctlfilesystem-mountmountunmount

그런 다음 나는 다음을 수행했습니다.

usermod -aG disk someuser
systemctl restart polkit.service

someuser이제 를 실행할 때 udisksctl loop-setup -f my-iso.iso비밀번호를 입력하지 않고도 작동합니다. 이 모든 작업은 SSH를 통해 수행됩니다.

이는 Ubuntu 20.04에서 수행되었으므로 다른 배포판에서는 정확한 단계가 다를 수 있습니다.

감사의 말:이 슈퍼유저의 답변위의 작업을 수행하는 방법을 알아내는 데 매우 도움이 됩니다.

관련 정보