好物日記

本を読んだり美術館に行ったりする人の日記

OracleLinux7.9のGUIデフォルト設定を変更しました

先日、VMware Workstation PlayerにOracle Linux7.9を入れて、Oracle Database 19cのデータベースを作成しました。

OracleのインストールにはOracle Universal InstallerというGUIウィザードが便利です。そのためOSインストールの際に「サーバ(GUI)」を選んでインストールしました。しかしそうするとマシン起動時にデスクトップモードでの起動になる上に、ユーザーの初回ログインでアプリのデフォルトがどうとかいろいろ聞かれて実にめんどくさい。しかもホームディレクトリにデスクトップやら音楽やら、気を利かせていろんなディレクトリを作ってくれる。

そういうの要らないんで!ということで、作られない設定を調べました。
日本語から英語へ、とかはいろんな人がやってたんですが、フォルダ作成をなくす手順は数が多くなかったので、備忘を兼ねて記録しておきます。
またデスクトップセットアップとかも鬱陶しくて聞かれたくないので、そこも一緒に無効化しました。
最後に起動時のデフォルトがGUIではなくCLIになるように変更しておくところまで記載してます。

ただのメモ書きなので悪しからず。

0. 現在の状態を確認

デスクトップモードのデフォルト状態で新規ユーザを作成し、GUIで一度ログインすると、ホームディレクトリ配下はこんな感じになる。
GUIモードで起動していても、teratermでつないでuseraddしただけなら余計なディレクトリは作成されません。あくまでもGUIで一度ログインしてしまうといろいろ追加される、という話です。

# ls -la /home/gui
合計 36
drwx------. 15 gui gui 4096 4月 16 18:07 .
drwxr-xr-x. 7 root root 70 4月 16 18:06 ..
-rw-------. 1 gui gui 310 4月 16 18:07 .ICEauthority
-rw-r--r--. 1 gui gui 18 11月 23 2019 .bash_logout
-rw-r--r--. 1 gui gui 193 11月 23 2019 .bash_profile
-rw-r--r--. 1 gui gui 231 11月 23 2019 .bashrc
drwx------. 14 gui gui 4096 4月 16 18:07 .cache
drwxr-xr-x. 14 gui gui 4096 4月 16 18:07 .config
drwx------. 3 gui gui 25 4月 16 18:07 .dbus
-rw-------. 1 gui gui 16 4月 16 18:07 .esd_auth
-rw-r--r--. 1 gui gui 172 4月 1 2020 .kshrc
drwx------. 3 gui gui 19 4月 16 18:07 .local
drwxr-xr-x. 4 gui gui 39 4月 9 23:42 .mozilla
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 ダウンロード
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 テンプレート
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 デスクトップ
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 ドキュメント
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 ビデオ
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 音楽
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 画像
drwxr-xr-x. 2 gui gui 6 4月 16 18:07 公開

邪魔である。だいたいマルチバイトのフォルダ名って…日本語選んだからなんだけども…マルチバイトはやめよう……

1. 不要なディレクトリが作成されないようにする。

このディレクトリ群は、xdg-user-dirsというツールが管理しているものらしい。
ホームディレクトリ(普通は/home/<ユーザ名>)配下に.configというディレクトリがあって、その下にユーザごとの設定ファイルがいる。

/home/<ユーザ名>/user-dirs.dirs ・・ディレクトリ名の設定
/home/<ユーザ名>/user-dirs.locale ・・言語の設定

ユーザごとの設定を変えるだけならこれらをいじればよい。しかしこれからユーザ作るたびに毎回設定変更するなんてごめんなので、デフォルト設定を探す。
/etc/xdg配下に設定ファイルがありました。

/etc/xdg/user-dirs.conf ・・xdg-user-dirs-updateの動作を制御するファイル
/etc/xdg/user-dirs.defaults ・・user-dirs.dirsのデフォルト設定ファイル

user-dirs.confにデフォルトで「enabled=True」が設定されているので、これを「enabled=False」に変更してOS再起動。試しに新規ユーザを作成してみると、「Desktop」以外は作成されなくなりました。
「Desktop」は、仕方ないだろうなぁ。デスクトップ起動してるからなぁ。

2. 初回ログイン時の設定画面を無効化する

位置情報をよこせだのブラウザのデフォルトは何がいいだの、設定が完了するまで毎回ログインするたびにいちいち聞かれるのがめんどくさい。ホームディレクトリ配下に.mozillaディレクトリ作られるのも気に入らないんだけども、隠しフォルダだから許容範囲かな。
ウィザード自体は画面上の「gnome-initial-setup」を右クリックして終了を選べばスキップできることは確認済み。しかしそもそも出さないようにしたいですよね。
ネットではgnome-initial-setupパッケージを削除するという方法も書かれていて、理屈はわかるけどそこまでしなきゃだめなのか?とかむにゃむにゃしたのでそれは採用せず、設定でなんとかする方法を探る。

最初は/etc/gconf/schemas配下を怪しんだ。設定ファイルっぽいものがずらりと存在しているけど、あまり関係なさそう(initialと名前のつくものはない)。
調べていたら、どうやら/etc/xdgの下に設定ファイルがあるらしいことが判明。

/etc/xdg/autostart/gnome-initial-setup-first-login.desktop

このファイルに「X-GNOME-Autostart-enabled=false」を追記して、OS再起動。
正式な手順なのか知らないので、パッケージ削除といい勝負ではある。要らないものは削除するという思想のほうがよい気もする。けど簡単に設定戻せるようにしたいので、パッケージは保持しておきたい。

2.5. 新規ユーザ作成テスト

ここまで設定した状態で新規ユーザ作成するとどうなるかを確認します。

# useradd -m test

まだGUIにログインしていない状態だと、以下。

# ls -la /home/test
合計 16
drwx------. 3 test test 92 4月 16 18:28 .
drwxr-xr-x. 7 root root 70 4月 16 18:28 ..
-rw-r--r--. 1 test test 18 11月 23 2019 .bash_logout
-rw-r--r--. 1 test test 193 11月 23 2019 .bash_profile
-rw-r--r--. 1 test test 231 11月 23 2019 .bashrc
-rw-r--r--. 1 test test 172 4月 1 2020 .kshrc
drwxr-xr-x. 4 test test 39 4月 9 23:42 .mozilla

諸設定を変更する前のguiユーザも、同じ状態でした。問題は、GUIログイン後なのです。パスワード付与して、GUIからログイン。
「ようこそ」画面は……開かない!!ホームディレクトリは以下の通り。★がGUIログイン前との差分です。
guiユーザとの差分は、「ダウンロード」等のマルチバイトディレクトリがなくなった点のみ。

# ls -la /home/test
合計 36
drwx------. 8 test test 4096 4月 16 18:28 .
drwxr-xr-x. 7 root root 70 4月 16 18:28 ..
-rw-------. 1 test test 310 4月 16 18:28 .ICEauthority ★
-rw-r--r--. 1 test test 18 11月 23 2019 .bash_logout
-rw-r--r--. 1 test test 193 11月 23 2019 .bash_profile
-rw-r--r--. 1 test test 231 11月 23 2019 .bashrc
drwx------. 12 test test 4096 4月 16 18:29 .cache ★
drwxr-xr-x. 12 test test 4096 4月 16 18:28 .config ★
drwx------. 3 test test 25 4月 16 18:28 .dbus   ★
-rw-------. 1 test test 16 4月 16 18:28 .esd_auth ★
-rw-r--r--. 1 test test 172 4月 1 2020 .kshrc
drwx------. 3 test test 19 4月 16 18:28 .local  ★
drwxr-xr-x. 4 test test 39 4月 9 23:42 .mozilla
drwxr-xr-x. 2 test test 6 4月 16 18:28 Desktop ★

うんうん、だいぶすっきりしましたね。
ちなみにteratermからユーザ作成して、GUIではなくCLIでログインした場合のホームディレクトリ配下は以下の通り。

# ls -la /home/hatena
合計 24
drwx------. 5 hatena hatena 4096 4月 16 17:55 .
drwxr-xr-x. 6 root root 59 4月 16 17:54 ..
-rw-------. 1 hatena hatena 18 4月 16 17:55 .bash_history
-rw-r--r--. 1 hatena hatena 18 11月 23 2019 .bash_logout
-rw-r--r--. 1 hatena hatena 193 11月 23 2019 .bash_profile
-rw-r--r--. 1 hatena hatena 231 11月 23 2019 .bashrc
drwxrwxr-x. 3 hatena hatena 18 4月 16 17:55 .cache
drwxrwxr-x. 3 hatena hatena 18 4月 16 17:55 .config
-rw-r--r--. 1 hatena hatena 172 4月 1 2020 .kshrc
drwxr-xr-x. 4 hatena hatena 39 4月 9 23:42 .mozilla

「.ICEauthority」「.dbus」「.esd_auth」「.local」「Desktop」はGUIログイン時にのみ作成されるもののようです。
ちなみにCLIログインでも.configディレクトリは作成されているけど、中身がぐっと減っている。

GUIログインユーザ)
# ls -la /home/test/.config
合計 12
drwxr-xr-x. 12 test test 4096 4月 16 18:28 .
drwx------. 8 test test 4096 4月 16 18:28 ..
drwxrwxr-x. 2 test test 6 4月 16 18:28 abrt
drwxr-xr-x. 2 test test 18 4月 16 18:30 dconf
drwx------. 3 test test 21 4月 16 18:28 evolution
drwx------. 2 test test 6 4月 16 18:28 gconf
drwx------. 3 test test 27 4月 16 18:28 gnome-session
drwxr-xr-x. 2 test test 6 4月 16 18:28 goa-1.0
drwx------. 3 test test 17 4月 16 18:28 ibus
drwxr-xr-x. 2 test test 6 4月 16 18:28 imsettings
drwxr-xr-x. 2 test test 30 4月 16 18:28 nautilus
drwx------. 2 test test 4096 4月 16 18:29 pulse

CLIログインユーザ)
# ls -la /home/hatena/.config
合計 4
drwxrwxr-x. 3 hatena hatena 18 4月 16 17:55 .
drwx------. 5 hatena hatena 4096 4月 16 17:55 ..
drwxrwxr-x. 2 hatena hatena 6 4月 16 17:55 abrt

ホームディレクトリサイズも全然違う。

GUIログインユーザ)
# du -sh /home/test
3.3M /home/test

CLIログインユーザ)
# du -sh /home/hatena
28K /home/hatena

デフォルト状態で作成したユーザ)
# du -sh /home/gui
3.9M /home/gui

マルチバイトディレクトリの有無はたいして変わらないけど、見目がすっきりしたので満足です。

3. 起動時のデフォルトをGUIからCLIに変更する。

GUIでログインしなければフォルダは増えないんだけど、やっぱりCLIのほうが好ましいので起動時のデフォルトを変更する。起動も早いし。GUI使いたくなったら変更すればよいのだ。

方法は簡単。まずは現在の設定を確認。

# systemctl get-default
graphical.target ★GUI起動の設定

設定を変更。

# systemctl set-default multi-user.target

もう一度設定確認して、multi-user.targetになっていればOK。OS再起動して、CLIで起動することを確認する。

今回は以上です。