gpartedをrootとして実行するのはなぜですか?

gpartedをrootとして実行するのはなぜですか?

私のユーザーはUSBブロックデバイス(plugdevグループのメンバー)にアクセスできます。しかし、そのような場合でも、gpartedはrootとして実行する必要があります。

$ ls -l /dev/sdd
brw-rw---- 1 root plugdev 8, 48 Jul 17 19:05 /dev/sdd
$ gparted /dev/sdd
(requires root)

これには技術的な理由がありますか?

ファイルにパーティションテーブルを含む完全なディスクイメージがあります。走ることは失敗してサーカスをしなければなりませんでしたlosetup -Pf

これには技術的な理由がありますか?

答え1

これは報告する価値があるバグのように聞こえます;-)。parted一方、ルートアカウントに切り替えることなくアクセスできるドライブを使用できるためです。

権限に関係なく root 権限を要求するのは、アプリケーションの基本動作モードです。

https://gitlab.gnome.org/GNOME/gparted/-/blob/master/src/main.cc#L52

    //check UID
    if ( getuid() != 0 )
    {
        const Glib::ustring error_msg(_("Root privileges are required for running GParted"));
        std::cerr << error_msg << std::endl;

        Gtk::MessageDialog dialog(error_msg, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);
        dialog .set_secondary_text(
                _("Since GParted is a powerful tool capable of destroying partition tables and vast amounts of data, only root may run it.") ) ;
        
        dialog .run() ;
        exit(EXIT_FAILURE);
    }

TLDR: これが開発者が実行しなければならないと思う方法です:-)

関連情報