例えば、gnome-disksというGUIアプリケーションを用いれば、
フラッシュメモリーやハードディスク等のディスクに対して、
フォーマット、パーティションの作成など低レベルの操作ができる。
gnome-disksは次のようにパッケージを導入すれば利用ができた。
root@raspberrypi:/home/pi# apt-get install gnome-disk-utility
実際、デフォルトのpiユーザーだと、ログインパスワードの入力で、これらの操作を行うことができた。
次の写真のように、piユーザー、rootユーザーのいずれかを選択し、
ログインパスワードを入力することで、特権の必要な操作ができた。
(注意)
ただし、RealVNC Serverをsysytemdから利用している場合、
バグがあるようで、この認証機構であるpolkitが機能しなかった。
エラーが発生し、「Not authorized to perform operation (udisks-error-quark, 4)」となった。
tiger vnc serverではこのバグが報告されていた。
この問題を回避するには、最後で述べるように、sudoersを用いて特権動作させるとよかった。
ただし、systemdではなく、手動でvncserverコマンドで起動した場合、
polkitは正常に動作した。
ところが、作成した通常ユーザー(mynewuser)がgnome-disksを起動した場合、
上記写真に示す認証ウインドウのドロップダウンリストには、mynewuserの名称が存在しなかった。
piユーザー、rootユーザーのみであった。
では、いかにしてpiユーザーと同様に、認証ウインドウのドロップダウンリストに新規ユーザーの名称を載せられるのだろうか。
■無駄だったこと
以下のことは無駄だったので、真似をしないように。
uid=1001(mynewuser) gid=1001(mynewuser) groups=1001(mynewuser)
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),999(spi),998(i2c),997(gpio)
uid=0(root) gid=0(root) groups=0(root)
brw-rw---- 1 root disk 8, 0 Nov 4 03:54 /dev/sda
これで元通りである。Removing user mynewuser from group disk
■認証用ウインドウのリストに、新規ユーザーが表示されるように設定
次のように専用のファイルを編集して、システムをリブートすることで可能だった。
新規ユーザーもこのように登録さえすれば、polkitを利用することができた。
認証用ウインドウのユーザー一覧にユーザー名が表示されるようになった。
root@raspberrypi:/home/pi# nano /etc/polkit-1/localauthority.conf.d/60-desktop-policy.conf
[Configuration]root@raspberrypi:/home/pi# reboot
AdminIdentities=unix-user:mynewuser;unix-user:pi;unix-user:0
■polkit以外の方法として、sudoersを用いる
この方法だと、sysytemdからVNC Serverを起動している場合でも、
問題なく、指定済みのアプリケーションを特権で動作させることができた。
○まず、一番最後の行に、次のように特権で動作させたいコマンドについて記述した。
root@raspberrypi:/home/pi# visudo
(略)そして、システムを再起動した。
mynewuser ALL=(root) NOPASSWD: /usr/bin/gnome-disks
mynewuser ALL=(root) NOPASSWD: /sbin/poweroff
mynewuser ALL=(root) NOPASSWD: /sbin/reboot
root@raspberrypi:/home/pi# reboot
○動作テストを行った。
再起動後、GUIのターミナルで、次のようにコマンド起動すると、
パスワードの入力なしで特権でアプリケーションを動作できた。
$ sudo /usr/bin/gnome-disks
○ショートカット並びに、ランチャーに追加する。
次のページを参照してください。
https://akira-arets.blogspot.com/2019/11/raspbian-alacarte-launcher.html
<参考>
・Enforcing security of your Raspberry PI user accounts
< https://blog.hardcoding.fr/enforcing-security-raspberry-pi-user-accounts/ > 2019年11月7日
・How to create a new user on Raspbian powered Raspberry Pi
< https://blog.gyt.is/2016/03/01/how-to-create-a-new-user-on-raspbian-powered-raspberry-pi/ > 2019年11月7日
・How to Rename the Default Raspberry Pi User
< http://unixetc.co.uk/2016/01/07/how-to-rename-the-default-raspberry-pi-user/ > 2019年11月7日
・after adding a new user the LXTerminal starts without running bash
< https://www.raspberrypi.org/forums/viewtopic.php?t=203669 > 2019年11月7日
・visudoでsudo権限の設定をする際のメモ(sudoersの'ers'って何の略なんですかね?)
< https://qiita.com/kmikmy/items/6a6a086f6415d9b55b96 > 2019年11月8日