Ubuntuはマルチユーザーに対応したシステムです。つまりシステムを使用する際は、
一般的なログイン方法
おそらくUbuntuを日常的に使っている人で、
歴史的経緯から、/etc/
ファイルに記載されてはいるものの、/etc/
以外にもさまざまな
ただし出来合いのものをそのまま使うのであればそこまで難しくはありません。特にデスクトップ版のUbuntuであれば、

ログインに成功したらそのユーザーの
Ubuntuサーバーであっても、
$ ssh [email protected] Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-48-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 updates can be installed immediately. 0 of these updates are security updates. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details.
SSHにおけるパスワード認証と公開鍵認証
sshログインする場合、ssh-import-id
」
(リモートマシン上)$ ssh-import-id lp:(LaunchpadのID) 2017-11-16 21:38:48,042 INFO Authorized key ['2048', 'SHA256:hthMPCKLGShIxYq57pxS/PXXJyRFGwmh4kdRtSDnr5c', 'shibata', '(RSA)'] 2017-11-16 21:38:48,044 INFO Authorized key ['2048', 'SHA256:ZtuahRXGnK6gHb2/bwBoTM2bLERVpJs8dczzeY/qpdo', 'shibata@shibata-desktop', '(RSA)'] 2017-11-16 21:38:48,047 INFO Authorized key ['2048', 'SHA256:C8EoTol3lbkWtXe8Q38GGRpPZQ6HBS/LDIZfghlzP9I', 'shibata@pomera', '(RSA)'] 2017-11-16 21:38:48,048 INFO [3] SSH keys [Authorized]
引数はssh-copy-id
」
(ローカルマシン上)$ ssh-copy-id (リモートマシンのアドレス)
公開鍵認証が使えるようになれば、
Ubuntuサーバーであれば、
$ grep PasswordAuth /etc/ssh/sshd_config #PasswordAuthentication yes # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication, then enable this but set PasswordAuthentication
重要なのは最初の行です。先頭の#
」
パスワード認証を無効化するには、
$ sudo sshd -t /etc/ssh/sshd_config: line 124: Bad configuration option: BadConfigurationLine /etc/ssh/sshd_config: terminating, 1 bad configuration options
上記のようにエラーメッセージが表示される場合は、
$ sudo systemctl reload sshd.servie
ちなみにUbuntuのSSHサーバー向けのサービスファイルには、sshd -t
」
なお、
異なるユーザーでログインする
Linuxはマルチユーザーに対応したシステムなので、
アカウントの追加方法
もちろんシステム設定から新規にユーザーアカウントを登録することも可能です。GUIなら設定

CLIの場合はadduser
もしくはuseradd
コマンドを使います。
-
adduser
- Debian系なら標準でインストールされているアカウント追加コマンド。必須のオプションが未指定の場合は対話的に問い合わせる。
-
useradd
- Linuxシステムなら大抵インストールされているアカウント追加コマンド。オプション未指定の場合は既定の値が自動設定される。
たとえばuseradd
はオプションを指定せずに実行すると、adduser
は、adduser
を、useradd
を検討すると良いでしょう。
adduser
でアカウントを追加するには次のように実行します。
$ sudo adduser shibata Adding user `shibata' ... Adding new group `shibata' (1001) ... Adding new user `shibata' (1001) with group `shibata' ... Creating home directory `/home/shibata' ... Copying files from `/etc/skel' ... New password: (パスワードを入力) Retype new password: (上と同じパスワードを入力) passwd: password updated successfully Changing the user information for shibata Enter the new value, or press ENTER for the default Full Name []: Mitsuya Shibata Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n]
最低限必要な引数はユーザー名です。上記だと
adduser
はホームディレクトリや基本的な設定ファイルを一通り作ってくれるため、
$ ls -la /home/shibata/ total 16 drwxr-xr-x 1 shibata shibata 80 Oct 17 09:16 . drwxr-xr-x 1 root root 26 Oct 17 09:14 .. -rw------- 1 shibata shibata 12 Oct 17 09:16 .bash_history -rw-r--r-- 1 shibata shibata 220 Oct 17 09:14 .bash_logout -rw-r--r-- 1 shibata shibata 3771 Oct 17 09:14 .bashrc -rw-r--r-- 1 shibata shibata 807 Oct 17 09:14 .profile
ちなみにadduser
コマンドが使えます。たとえばユーザー
lxdグループには未所属 $ id shibata uid=1001(shibata) gid=1001(shibata) groups=1001(shibata) 「ユーザー名 グループ名」の順で指定する $ sudo adduser shibata lxd Adding user `shibata' to group `lxd' ... Adding user shibata to group lxd Done. ユーザー「shibata」のサブグループとしてlxdが追加された $ id shibata uid=1001(shibata) gid=1001(shibata) groups=1001(shibata),118(lxd)
同じことを実現できるusermod
と比べてオプションを思い出す必要のない点が便利です。
他のユーザーへ切り替わる方法
ログイン画面からは通常のユーザー登録したアカウントでしかログインできませんが、
$ sudo -i -u ユーザー名
「-i
」/etc/
ファイルの7番目のフィールドに記述されているコマンドを意味します。-u ユーザー名
」
$ whoami ubuntu $ sudo -i -u shibata $ whoami shibata
sudo
コマンドは-u
」-i
」sudo
は管理者権限で実行するために必要なコマンドとして認識されていることが一般的です。
「-i
」~/.profile
」/etc/
の設定によって引き継がれるかどうか変わるため、
環境変数はそのままにユーザーだけ切り替えたい場合は-i
」-s
」
管理者権限で実行するシェルを起動する $ sudo -i # 特定のユーザー権限で特定のコマンドを実行する $ sudo -i -u ユーザー名 コマンド名
sudo
コマンド経由で実行したコマンドは/var/
に誰が・sudo
経由で実行しましょう。
リモートからグラフィカルログインする
デスクトップユーザーであっても、-X
オプションを付けてX forwardingの機能を有効にすれば)
いわゆるリモートデスクトップやVDIと呼ばれる機能を使う方法はいくつか存在します。Ubuntuだとよく出てくるのが次のような用語です。
- VNC
- RDP
- SPICE
- XDMCP
もっとも簡単かつ確実に動くのがVNCを使う方法です。リモート側にVNCサーバーを、
まずはサーバー側の設定です。システム設定から


「アクセスオプション」
- 「新規接続の場合はアクセス要求を必要とする」
はクライアントがリモートサーバーにアクセスしようとした際、 「リモートサーバー側」 でアクセスを許可するかどうかの通知が表示されます。リモート側にもクライアント側にもデスクトップの前にユーザーが存在することを想定した設定です。 - 「パスワードを要求する」
はリモートサーバーにアクセスしようとした際にクライアント側でパスワードを入力する方法です。こちらはリモートサーバー側でユーザーが接続のたびに許可する必要がないため、 一人で複数のデスクトップを使うことを想定した設定です。
これで指定したネットワーク経由でリモートデスクトップできるようになりました
クライアントは

上記通知は、

ちなみに上記の流れは、
リモートデスクトップはそれだけでひとつの大きなカテゴリーになるので、
- 第98回
「FreeNXでリモート・ デスクトップ環境を実現する 」 - 第330回
「X2Goでリモートデスクトップ」 - 第376回
「Raspberry Pi 2にUbuntuをインストールし、 RDPでリモートアクセスする 」 - 第411回
「VNCサーバー/ クライアントを使用してみる 」 - 第621回
「Ubuntu 20. 04 LTSでxrdpを使用する 」
特にリモートデスクトップは、
仮想コンソールから直接ログインする
ローカルのPCからなら
最近のUbuntuでは最初のコンソール/dev/
)/dev/
)/dev/
に切り替わり、
ちなみにCLIのログイン画面はsystemdがagettyコマンドを起動することで管理しています。一度でも使っていない仮想コンソールに切り替わって始めてsystemdがagettyを起動する仕組みになっているのです。
ログインした環境はただのCLI環境です。またそのままだと日本語は入力はもちろん表示もできないので注意してください。一般的には緊急避難的な使い方がメインになるでしょう。もちろんきちんと準備すれば常用することも可能です。デスクトップ環境なんて重いものは不要な人にとっては心強い仕組みとなります。
シリアルコンソールからログインする
仮想コンソールはディスプレイにLinuxのコンソールを表示するための仕組みです。しかしながらUbuntuが動くコンピューターはあるものの、
Ubuntuは、
まず設定対象のルートファイルシステムを入手します。一般的なPCのシリアルコンソールを有効化するのであれば、
まずはGRUBの設定です。/etc/
に以下の行を追加します。
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
「console」
「--speed=115200
」
さらにLinux側の設定として、GRUB_
を次のように変更します。
GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
これはLinuxのメッセージを出力する先の設定です。
ちなみにUbuntuの初期設定だとこの変数には
/etc/
の設定を次のコマンドで反映します。
$ sudo update-grub
もし別システムのルートファイルシステムをマウントして作成したいなら、/boot/
」
システム側のシリアルコンソールの出力設定が完了したら、
まずデバイス側とPC側をシリアルコンソールケーブルで接続します。最近はシリアルポートがあるPCも少なくなってきたので、
ソフトウェアはWindowsならTeraTermが鉄板です。Ubuntuならminicom、
$ sudo adduser $USER dialout (設定を反映するために一度ログインし直す) $ screen /dev/ttyUSB0 115200
シリアルコンソールデバイスは接続形態によって/dev/
」/dev/
」/dev/
」
ちなみにscreenを終了させるには
このように