質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

Q&A

解決済

3回答

4660閲覧

QtCreatorのデバッグで、デバッグ対象のアプリケーションを管理者権限で実行する方法

tuyudaku

総合スコア75

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

0グッド

0クリップ

投稿2019/07/01 07:51

QtCreatorを使って作っているアプリケーションをデバッグする際に
管理者権限で実行する方法が分かりません

現在作成しているアプリがデバイスファイルを操作する必要があるため
root権限、管理者権限での実行が必要です。
なので普通にデバッグを行うとファイルのオープンのところで権限が無いためひっかかってしまうのですが
これをひっかからないようにする方法が知りたいです

QtCreator自体をsudoで実行すれば上手くいったのですが
その後普通にQtCreatorを実行させると権限のエラーがでまくりな上に
せっかく頑張って導入した日本語入力がなぜかできなくなってしまうという自体になってしまったため
できればこの案以外で有りましたらおしえていただきたいです

現在は作成した実行ファイルをターミナルからsudoで実行して
qDebugの出力を頼りにデバッグしているところです...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2019/07/02 00:11

>カーネルモジュールを作成するのではダメなのでしょうか? 申し訳ありません どんなカーネルモジュールをどのように作成すれば良いか分からない上に 作成する場合、知識がないためそちらの勉強が必要になってきてしまいます 今そちらに工数を割いていられる状態ではないため手軽にできる方法を模索している状況です ただ、カーネルモジュールを作成することで実現可能という情報 ありがとうございます。 時間がある時に勉強させてもらいたいと思います
guest

回答3

0

もしかして、開発環境は Ubuntu か何かで、本番環境は組み込み Linux とかでしょうか。だとしたら数年前の私と同じ問題にはまってますね。

QtCreator自体をsudoで実行すれば上手くいったのですが
その後普通にQtCreatorを実行させると権限のエラーがでまくりな上に
せっかく頑張って導入した日本語入力がなぜかできなくなってしまうという自体になってしまったため
できればこの案以外で有りましたらおしえていただきたいです

とのことですが、嫌だと言われてもこれ以外の方法は私も知りません……。

権限のエラーが出るのは、root で起動した QtCreator が一部のファイルの所有者を root に変えてしまうためです。
なので、デバッグが終わって QtCreator を終了したら chown コマンドでプロジェクトディレクトリ以下すべてのファイルの所有者を自分に戻せばOKです。
それと、うろ覚えですみませんがユーザーディレクトリ直下の隠しファイルのどれかも戻す必要があったかもしれません。

日本語入力ができなくなるのも、仕方がないので別のエディタを開いて編集していました。
私のチームでは皆この方法でやっていましたが、他にもっといい方法があるのなら私も教えてほしいです。

投稿2019/07/04 12:09

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2019/07/05 00:52

>開発環境は Ubuntu か何かで、本番環境は組み込み Linux とかでしょうか どんぴしゃですね、その通りです >嫌だと言われてもこれ以外の方法は私も知りません……。 一番楽?で手軽ですからね...コレが一番なのかもしれませんね... >chown コマンドでプロジェクトディレクトリ以下すべてのファイルの所有者を自分に戻せばOKです。 >ユーザーディレクトリ直下の隠しファイルのどれかも戻す必要があったかもしれません。 なるほど、戻してあげればとりあえずOKなのですね >日本語入力ができなくなるのも、仕方がないので別のエディタを開いて編集していました。 コレがつらいんですよね... 正直QtCreatorで日本語入力でできるかできないかで結構開発スピードが違うきがします... でも我慢するしかなさそうですね... >他にもっといい方法があるのなら私も教えてほしいです。 tasuku.さんが回答してくれた https://askubuntu.com/questions/237617/debug-qt-application-on-ubuntu-with-root-permission-using-qt-creator こちらのサイトにQtCreatorをsudoで起動する方法を含めて4種類の方法が書かれています どれもなるほど!!コレならいけそうだ!と思うのですが 上手く動作させることができず断念しました... 1つはQtCreatorのソース自体をいじっているっぽい感じ?の方法があったのですが それは今すぐにやるのは少し難しいのでやっていないのですがコレが一番確実かもしれません ちなみにQtCreatorをsudoで実行する方法は 「That's a very very very stupid thing to do.」ってコメントで書かれていましたw 回答ありがとうございました!
guest

0

QtCreatorのデバッグをsudoで実行する方法は分かりませんでしたが
(正確には分からなかったではなくできなかったですが)

デバイスファイルが権限を変更しているはずなのにパーミッションのエラーでファイルのオープンができなかった理由が判明したので、そちらを解決した結果デバッグができるようになりました

どうやらファイルのグループにユーザが所属していなかったため開くことができなかったみたいなので
ユーザを同じグループに追加したら開くことができました

投稿2019/07/11 03:01

tuyudaku

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

普通は、デバイスのパーミッションを変えてユーザー権限で動かすと思いますが、以下の方法で Qt Creator でも sudo で実行ができるということですので、試してみてはいかがでしょうか。

Debug Qt application on ubuntu with root permission using qt creator

投稿2019/07/02 02:44

tasuku.

総合スコア347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2019/07/02 04:56

情報ありがとうございます! >普通は、デバイスのパーミッションを変えてユーザー権限で動かすと思いますが 実は一番最初にそれをやっていたのですが それでも実行ができなかったので困っていました 普通にchmod 777でフルで権限を付けてやって ls -lで見てもcrwxrwxrwxとちゃんと権限は付いていると思うのですが いざ実行するとQSerialPort::SerialPortError(PermissionError) と権限のエラーが出てしまうのです 何かやり方が違うのでしょうか? >以下の方法で 試して見たのですが、URL先と似た様な状況になり実行ができませんでした ターミナルは表示されるのですが実行されずにしばらくすると勝手にデバッグが終了してしまいました...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問