Mac OSにQt Creatorをインストールしてアプリケーションソフトを作成しようとしています。
その中でディスクの権限を変更しないといけない処理がありまして、
作成するアプリケーションソフトから行いたいと思っております。
ターミナルでコマンドsudo chmod 777 /dev/rdiskを行えば、出来るのですが、
これだとこの後でパスワードの入力を聞いてきます。
それだと使い勝手が悪いように思います・・・。
この方法以外でQt Creatorで作成するアプリケーションから行える方法はないのでしょうか?
また、Qt CreatorでMac OSのターミナルコマンドを使用するにはどうすればよいのでしょうか。
Macでの開発はまったくの素人で…使い方もよくわからない状態です・・・。
どうか情報をお持ちの方お願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
MacもQTも持ってないけど、こんな感じとか:
QProcess p;
p.start( "sudo", QStringList() << "-S" << "chmod" << "777", "/dev/rdiskXX" );
if ( p.waitForStarted() ){
(void)p.write( "パスワード\n" ); p.closeWriteChannel();
(void)p.waitForFinished();
qDebug() << p.readAllStandardError();
} else { qDebug() << "sorry."; }
>sudoersはどのようにコマンドを打てばよいのでしょうか。
visudo https://www.bing.com/search?q=visudo%E3%81%A8%E3 …
No.2
- 回答日時:
>教えて頂いたQProcessを使用してみたんですがダメでした。
sudoでパスワード入力してないのでは。※sudoersの設定で不要にもできます。
https://www.bing.com/search?q=qprocess+sudo+inpu …
あと、こちらが参考になるかも。
https://developer.apple.com/library/archive/tech …
回答と情報ありがとうございます。
確かにパスワードの設定は行っておりませんでした。
ただ、ターミナルでsudo chmod 777 /dev/rdiskを行うとパスワードの入力を促されますが、
QProcessでstart("sudo chmod 777 /dev/rdisk4");
としてもパスワードの入力は聞かれませんでした。
QProcessで予めパスワードの設定をしないといけないのかと思い方法を探したのですが、
見つけることが出来ませんでした。
パスワードの入力を行う場合どのように設定したらよいのでしょうか?
また、教えて頂いたsudoersやリンク先の情報を確認したのですが、
これらをどのようにQProcessで行えばよいのかが分かりませんでした。
sudoersはどのようにコマンドを打てばよいのでしょうか。
今回初めてsudoやQProcessを知ったので、どのようなコマンドを使用すればよいのかまったくわかっていない状態です。
macに触れたこと自体初めてでして・・・。
申し訳ございませんがよろしくお願いします。
No.1
- 回答日時:
QProcessでsudoを実行するで良いんでは。
osascriptを挟むとか、いっそsetuidするとかありますが、
>sudo chmod 777 /dev/rdisk
これを実行するのが、一番手っ取り早いかと。
返信ありがとうございます。
教えて頂いたQProcessを使用してみたんですがダメでした。
下記ようにしてディスク(USBメモリ)を読み込もうとしましたが、
openのところでエラーになってしまっています。
char fileName[256];
memset(fileName, 0, sizeof(fileName));
DriveNo = 4;
sprintf(fileName, "/dev/rdisk%d", DriveNo);
QProcess ddProcess;
ddProcess.start("sudo chmod 777 /dev/rdisk4");
ddProcess.startCommand("sudo chmod 777 /dev/rdisk4");
ddProcess.waitForFinished();
fd = open (fileName, O_RDONLY);
if( fd == -1 )
{
// エラー
}
QFile::FileHandleFlags handleFlags = QFileDevice::DontCloseHandle;
bool bRet = file.open(fd, QIODevice::ReadOnly, handleFlags);
if ( bRet == true )
{
// 処理
file.close();
close( fd );
}
ターミナルでコマンドsudo chmod 777 /dev/rdisk4を実行してから行うとfile.openまで成功します。
それと、QProcessの処理を行った後でターミナルでls -l /dev/r*で確認してみたところ指定したディスクの状態(crw-r-----のまま)は変わっていませんでした。
何か足りない設定などがあるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) IllustratorのaiファイルがMacのFinderでサムネイル表示されません。 下記の画像の 1 2023/05/15 16:55
- Mac OS El Capitanがインストールできない… 1 2023/06/16 13:05
- オープンソース Python Qt 5.9.7 から Qt 5.12 以上にバージョンアップの方法 5 2022/06/12 19:43
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- Mac OS Mac iPhoneの連絡帳の大量のリストを削除したい 1 2023/05/12 23:30
- Mac OS 【MacOS】外付けHDDがUSB3.1バス上でのみアクセス出来なくなる 1 2022/10/29 10:27
- Word(ワード) MacのOSをアップデートしたら、Wordが使用できなくなりました。 2015年年末に頃にMacとM 2 2022/05/15 12:39
- Windows 10 windows>Mac間のOSライセンス移行 4 2022/06/04 10:28
- その他(プログラミング・Web制作) pythonのバージョン変更に関する質問 1 2023/02/14 11:39
- Mac OS mac os xの設定の(起動ディスク)にブート用dvdが表示されません 1 2022/05/28 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scpコマンドの-pオプションにつ...
-
<自分が所有者のファイルの所...
-
TeraTermで操作する際の設定に...
-
vi使用後、「vimiinfoが保存...
-
なぜsudo出来ないのか
-
一般ユーザーでログインできな...
-
CUIでの、$(ドルマーク)の使...
-
リモートで使うとuseraddが使え...
-
root権限でも『Permission deni...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
pingは正常なのにtracerouteで...
-
スクリプトのエラー「unexpecte...
-
ファイル名についている「-」と...
-
UNIX コマンドにおける # や円...
-
batである文字列内に特定の文字...
-
net use /d の強制実行
-
テキストファイルから最終行の抽出
-
SONYの音楽ソフト「x-アプリ」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<自分が所有者のファイルの所...
-
scpコマンドの-pオプションにつ...
-
TeraTermで操作する際の設定に...
-
Linuxでユーザ権限の確認コマンド
-
chownで所有権の変更ってrootし...
-
CUIでの、$(ドルマーク)の使...
-
sudo: npm: コマンドが見つかり...
-
[CentOS7] ユーザー(root,管理...
-
リモートで使うとuseraddが使え...
-
root権限でも『Permission deni...
-
vi使用後、「vimiinfoが保存...
-
ユーザをwheelグループに追加す...
-
Linuxを勉強している超初心者で...
-
smbpasswd 一括登録
-
linuxにログインができない
-
vipw 起動中でも passwd コマン...
-
ubuntu9.0.4でユーザーにsudo権...
-
ubuntuのchmodでルートディレク...
-
マックでルートトレースをした...
-
リモートからログインできない...
おすすめ情報