20190804のLinuxに関する記事は6件です。

Mac環境で公開鍵、秘密鍵を作成する方法の備忘録

別にMacに限らずLinux環境であればできる手順ですが...

鍵の作成

$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxxxx/.ssh/id_rsa): #作成先確認
Enter passphrase (empty for no passphrase): #パスフレーズ入力
Enter same passphrase again:
Your identification has been saved in /Users/xxxxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxxxx/.ssh/id_rsa.pub.
The key fingerprint is:

:
略
:

$ ls -l
total 16
-rw-------  1 xxxxxx  staff  1876 12 25 21:16 id_rsa
-rw-r--r--  1 xxxxxx  staff   403 12 25 21:16 id_rsa.pub

鍵を使った接続

ssh -l <USER> -i <作った秘密鍵> <IPアドレス>
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ubuntu18.04でpure-ftpdでバーチャルユーザーを作る!!

Pure-ftpdバーチャルユーザーでアクセスできなくてめっちゃハマったのでメモ

環境構築

パッケージ更新してpure-ftpdをインストール

# sudo apt update

# sudo apt -y install pure-ftpd

ディレクトリを設定ファイルがある場所まで移動(念のため)

# cd /etc/pure-ftpd

Anonymous禁止

# sudo echo "yes" > /etc/pure-ftpd/conf/NoAnonymous

Ubuntu環境におけるデータベース定義ファイルの場所の定義

# sudo echo "/etc/pure-ftpd/pureftpd.pdb" > /etc/pure-ftpd/conf/PureDB

PureDB ファイルのシンボリック リンクを以下のコマンドで作ります。(これやらなくてハマりました)

# sudo [ -e /etc/pure-ftpd/auth/60puredb ]  || sudo ln -s ../conf/PureDB /etc/pure-ftpd/auth/60puredb

Pure-FTPd を再起動して設定を読み込ませます。

# sudo systemctl -q is-active pure-ftpd && sudo systemctl restart pure-ftpd || sudo systemctl start pure-ftpd

システムのユーザーの追加

# sudo groupadd ftpgroup -g 1122
# sudo useradd ftpuser -u 1122 -g ftpgroup -d /dev/null -s /etc

FTP公開用ディレクトリの作成

# sudo mkdir -p /home/sites/example.com/web
# sudo chown -R daemon:ftpgroup /home/sites/example.com/web
# sudo chmod -R 775 /home/sites/example.com

バーチャルユーザの追加

作成するユーザ :hoge
許可するDir :/home/sites/example.com

# pure-pw useradd hoge -m -u ftpuser -d /home/sites/example.com/

※パスワードはご自由に

引用
https://www.compnet.jp/posts/2019-05-03T1700_%E4%BB%8A%E3%81%95%E3%82%89%E3%81%A0%E3%81%91%E3%81%A9FTP%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E7%AB%8B%E3%81%A6%E3%81%9F.html

http://tm.root-n.com/server:pure-ftpd:virtual_user

おわり

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ubuntu18.04 pure-ftpdバーチャルユーザーでハマったからメモ

Pure-ftpdバーチャルユーザーでアクセスできなくてめっちゃハマったのでメモ

環境構築

パッケージ更新してpure-ftpdをインストール

# sudo apt update

# sudo apt -y install pure-ftpd

ディレクトリを設定ファイルがある場所まで移動(念のため)

# cd /etc/pure-ftpd

Anonymous禁止

# sudo echo "yes" > /etc/pure-ftpd/conf/NoAnonymous

Ubuntu環境におけるデータベース定義ファイルの場所の定義

# sudo echo "/etc/pure-ftpd/pureftpd.pdb" > /etc/pure-ftpd/conf/PureDB

PureDB ファイルのシンボリック リンクを以下のコマンドで作ります。(これやらなくてハマりました)

# sudo [ -e /etc/pure-ftpd/auth/60puredb ]  || sudo ln -s ../conf/PureDB /etc/pure-ftpd/auth/60puredb

Pure-FTPd を再起動して設定を読み込ませます。

# sudo systemctl -q is-active pure-ftpd && sudo systemctl restart pure-ftpd || sudo systemctl start pure-ftpd

システムのユーザーの追加

# sudo groupadd ftpgroup -g 1122
# sudo useradd ftpuser -u 1122 -g ftpgroup -d /dev/null -s /etc

FTP公開用ディレクトリの作成

# sudo mkdir -p /home/sites/example.com/web
# sudo chown -R daemon:ftpgroup /home/sites/example.com/web
# sudo chmod -R 775 /home/sites/example.com

バーチャルユーザの追加

作成するユーザ :hoge
許可するDir :/home/sites/example.com

# pure-pw useradd hoge -m -u ftpuser -d /home/sites/example.com/

※パスワードはご自由に

引用
https://www.compnet.jp/posts/2019-05-03T1700_%E4%BB%8A%E3%81%95%E3%82%89%E3%81%A0%E3%81%91%E3%81%A9FTP%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E7%AB%8B%E3%81%A6%E3%81%9F.html

http://tm.root-n.com/server:pure-ftpd:virtual_user

おわり

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

使っていない Debian パッケージを popcon-largest-unused コマンドで調査する

概要

  • popularity-contest パッケージをインストールして、 popcon-largest-unused コマンドで未使用のパッケージを調べる。
  • 今回の環境: Debian 9 (stretch)

第4章 Debian 9 (stretch) からのアップグレード

popularity-contest をインストールしていれば、popcon-largest-unused を使うことにより、容量の多くを占めていて使うことのないパッケージの一覧が得られます。

popularity-contest パッケージをインストールする

# apt install popularity-contest

/var/log/popularity-contest を生成する

popularity-contest パッケージをインストールしてしばらくたっているなら、 /var/log/popularity-contest はすでに存在していると思われる。

Debian -- stretch の popularity-contest パッケージに関する詳細

popularity-contest パッケージは、システム上で最も用いられている Debian パッケージに関する統計を Debian 開発者に匿名で周期的に投稿する cron ジョブを設定します。

/var/log/popularity-contest が存在しない場合は popcon-largest-unused コマンドを打つと警告メッセージが表示される。

# popcon-largest-unused
warning: Missing required file /var/log/popularity-contest.
info:    Run 'popularity-contest > /var/log/popularity-contest' to generate it.

/var/log/popularity-contest が無い場合は、 popularity-contest コマンドの結果をリダイレクトして出力しておく。

# popularity-contest > /var/log/popularity-contest

popcon-largest-unused コマンドで使っていないパッケージの一覧を出力する

popcon-largest-unused コマンドを打つと、未使用のパッケージの一覧がサイズの大きい順に出力される。

# popcon-largest-unused
188502 linux-image-4.9.0-8-amd64
106734 llvm-3.8-dev
90436 libicu-dev
86183 llvm-3.5-dev
85325 clang-3.8
72174 clang-3.5
53292 libpython3.5-dev
40662 libpython2.7-dev
29838 libclang-common-3.8-dev
27583 vim-runtime
25114 gcc-6
23930 g++-6
23353 binutils
22665 cpp-6
(以下略)

今回の環境では Linux カーネルのパッケージである linux-image-4.9.0-8-amd64 が最もサイズが大きかったので調べてみた。

dpkg コマンドで linux-image パッケージの一覧を出力する。

# dpkg -l linux-image-*
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前                バージョン     アーキテクチャ 説明
+++-===================-==============-==============-===========================================
rc  linux-image-3.16.0- 3.16.51-3      amd64          Linux 3.16 for 64-bit PCs
rc  linux-image-3.16.0- 3.16.51-3+deb8 amd64          Linux 3.16 for 64-bit PCs
rc  linux-image-4.9.0-5 4.9.65-3+deb9u amd64          Linux 4.9 for 64-bit PCs
rc  linux-image-4.9.0-6 4.9.88-1+deb9u amd64          Linux 4.9 for 64-bit PCs
rc  linux-image-4.9.0-7 4.9.110-3+deb9 amd64          Linux 4.9 for 64-bit PCs
ii  linux-image-4.9.0-8 4.9.144-3.1    amd64          Linux 4.9 for 64-bit PCs
ii  linux-image-4.9.0-9 4.9.168-1+deb9 amd64          Linux 4.9 for 64-bit PCs
ii  linux-image-amd64   4.9+80+deb9u7  amd64          Linux for 64-bit PCs (meta-package)

uname コマンドの結果と突き合わせると、たしかに linux-image-4.9.0-8 は使われていないようだ。現在はこれより新しい linux-image-4.9.0-9-amd64 が使われている。

# uname -a
Linux my-host-name 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u4 (2019-07-19) x86_64 GNU/Linux

popcon-largest-unused コマンドのマニュアル

man popcon-largest-unused コマンドの結果の一部を載せておく。

NAME
popcon-largest-unused - List size of unused packages

SYNTAX
popcon-largest-unused

DESCRIPTION
Based on the list of unused packages reported by popularity-contest, this program extract the package size from the APT cache, and list the unused packages sorted by size.

popularity-contest コマンドのマニュアル

man popularity-contest コマンドの結果の一部を載せておく。

NAME
popularity-contest - list the most popular Debian packages

SYNOPSIS
popularity-contest

DESCRIPTION
The popularity-contest command gathers information about Debian packages installed on the system, and prints the name of the most recently used executable program in that package as well as its last-accessed time (atime) and last-attribute-changed time (ctime) to stdout.

When aggregated with the output of popularity-contest from many other systems, this information is valuable because it can be used to determine which Debian packages are commonly installed, used, or installed and never used. This helps Debian maintainers make decisions such as which packages should be installed by default on new systems.

The resulting statistic is available from the project home page http://popcon.debian.org/.

Normally, popularity-contest is run from a cron(8) job, /etc/cron.daily/popularity-contest, which automatically submits the results to Debian package maintainers (only once a week) according to the settings in /etc/popularity-contest.conf and /usr/share/popularity-contest/default.conf.

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

mvコマンドでディレクトリの移動 mac編

Finderからドラッグ&ドロップで移動することも可能ですが、
コマンドから移動する方法。

ホームディレクトリのRubyディレクトリの配下に"practice1"というディレクトリが存在するとします。 ~/Ruby/Git/practice1

"practice1"ディレクトリを、~/Ruby/HTMLの配下に移動させたいとき

$mv 移動元 移動先
$mv ~/Ruby/Git/practice1 ~/Ruby/HTML
これで移動できます。

practice1の場所は、 ~/Ruby/HTML/practice1 になりました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ECS LIVA Z (N4200) (OS無し) に Ubuntu MATE をインストールして SSH & VNC 接続するまで

本稿の目的

急にわけもなく「ミニPC」が欲しくなり実施した、ECS LIVA Z (N4200) (OS無し) に Ubuntu MATE (ウブントゥ マテ) をインストールして SSH & VNC 接続するまでの記録です。このような情報のニーズは寡少かと思いますが、メモとして残します。

使用機材等

ミニPC ECS LIVA Z (N4200) (OS無し)

ECS LIVA Z (N4200) のアウトレット(メーカー再生品)を Amazon で入手しました。18,800円(税・送料込)でした。スペックは以下です。

  • SoC (CPU): インテル Pentium N4200
    • Apollo Lake
    • 4 コア (4 スレッド)
    • 1.1 GHz ~ 2.5 GHz
    • インテル HD グラフィックス 505
  • メモリ: SO-DIMM DDR3L 4 GB
  • ストレージ: eMMC 32 GB
  • OS: 無し
  • サイズ: 117 x 128 x 33 mm
  • 重量: 約 365g
  • 2017年1月~

IMG_0411.JPG

メモリ増設

4 GB のメモリを1枚増設して、8 GB にしました。1,812円でした。増設方法は取説に詳しく書いてあり、とても簡単です。増設は必須ではありませんが、気分の問題です。

シリコンパワー ノートPC用メモリ 1.35V (低電圧) DDR3L 1600 PC3L-12800 4GB

IMG_0410.JPG

SSD 増設

240 GB の SSD を1枚増設しました。3,899円でした。増設方法は取説に詳しく書いてあり、とても簡単です。増設は必須ではありませんが、気分の問題です。

TCSUNBOW SSD M.2 NGFF 2242内蔵ソリッドステートドライブ(N4 240GB)

IMG_0413.JPG

キーボード

以前からラズパイ遊びに使っていた以下のキーボード(2,680円)を使いました。「Bluetooth ではない」ほうです。

Ewin ミニ キーボード ワイヤレス 2.4GHz タッチパッド搭載 超小型

IMG_0433.JPG

起動イメージ(SD カード & USB アダプタ)

OS のイメージは Ubuntu MATE の 18.04.2 LTS (64bit) を使いました。

起動イメージ用のメディアには、自宅で余っていた 8 GB の microSD カードを、日経 Linux 2019年7月号の付録だった USB アダプタに挿して使いました。Windows の PC にて、これを SDメモリカードフォーマッター でフォーマットして、balena Etcher で iso を書き込みました。

IMG_0484.JPG

その他

  • テレビ(HDMI 接続できるもの)
  • HDMI ケーブル
  • LAN ケーブル
  • Windows10 の PC(イメージの準備と VNC 接続のための端末として)

起動確認

メモリと SSD を増設し、キーボードの USBドングルを挿した後、起動イメージを使わないで起動してみました。OS が入っていないので、当然ながら BIOS (UEFI) が起動するのみです。これの Boot タブで、Linux を指定して、起動ディスクの順序を適当に調整しました。

IMG_0414.JPG

ちなみに、OS インストール後に BIOS (UEFI) を表示させるには、起動開始直後に「F2」キーでした。

Ubuntu MATE のインストール

ブート

Ubuntu MATE の iso イメージを入れた USB ドングルを LIVA に挿し、起動すると、以下の選択肢が表示されます。上から2番目の「Install Ubuntu MATE」を選んで Enter します。

  • Try Ubuntu MATE without installing
  • Install Ubuntu MATE
  • OEM install (for manufacturers)
  • Check disk for defects

その後の流れ

その後は GUI で進みます。今回は以下のように進めました。

  • 「ようこそ」画面で「日本語」を選択
  • 「キーボードレイアウト」で「日本語」「日本語(かな)」を選択
  • 「アップデートの他のソフトウェア」では…
    • [o] 通常のインストール
    • Ubuntu MATE のインストール中にアップデートをダウンロードする
    • グラフィックスとWi-Fiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする
  • 「インストールの種類」では…
    • [o] ディスクを削除して Ubuntu MATE をインストール
  • 「ドライブの選択」では…
    • 「MMC/SDカード」を選択(つまり内蔵 eMMC)
  • 「どこに住んでいますか?」では…
    • Tokyo を選択(愛知県民ですが)
  • 「あなたの情報を入力してください」では…
    • 任意の「あなたの名前」
    • 任意の「コンピューターの名前」
    • 任意の「ユーザー名」
    • 任意の「パスワード」
    • [o] ログイン時にパスワードを要求する

設定は以上です。あとはインストールが終わるまでしばらく待ちます。しばらくといっても、10分もかかりません。
インストールが完了すると再起動を促されるので、「今すぐ再起動する」をクリックします。
再起動が始まると「Please remove the installation medium, then press ENTER:」と表示されます。その指示の通り、iso イメージの入った USB アダプタを抜いて、キーボードで Enter します。
すると、起動しました!

IMG_0445.jpg

この状態でログインして、普通のパソコンとして使えます。
これ以降は、SSH と VNC の設定をして、テレビやキーボードは使わず、リモート接続して使うように設定します。

Ubuntu MATE の初期設定

とりあえず更新

Linux を入れた後の定番、更新作業をしておきます。
ターミナル(MATE 端末)で以下を実行します。

$ sudo apt update
$ sudo apt upgrade
$ sudo apt autoremove

SSH のインストール

リモートからコマンドで操作できるようにするために、SSH をインストールします。

$ sudo apt install ssh

ユーザフォルダ以下のフォルダ名を英語にする

OS を日本語でインストールした状態だと、ユーザフォルダ以下のフォルダ名が「デスクトップ」や「ドキュメント」のようなカタカナになっています。この状態だと、ターミナル等からコマンドで操作するのに向きません。そこで、これを英語表記(Desktop や Documents)に変えます。

$ LANG=C xdg-user-dirs-gtk-update

これを実行すると「Update standard folders to current language?」というダイアログが出ますから、[x] Don't ask me this again にチェックを入れて、「Update Names」ボタンをクリックします。

参考にした情報はこちら

IP アドレスを固定する

SSH や VNC で接続するため、IPアドレスを固定しておきます。

  • デスクトップの右上のネットワークアイコン(有線接続している場合は上下の矢印)をクリックすると出てくるメニューで、一番下の「接続を編集する...」をクリック
  • つなげているネットワーク(例えば「有線接続1」)をダブルクリック
  • 出てくるダイアログの「IPv4 設定」タブにて
    • 方式 (M):「手動」を選択
    • 「アドレス」欄の右側の「追加 (A)」ボタンをクリック
    • アドレス:所望の IP アドレスを指定(例:192.168.0.100)
    • ネットマスク:所望のサブネットマスクを指定(例:255.255.255.0)
    • ゲートウェイ:ルータのアドレスを指定(例:192.168.0.1)
    • DNSサーバー:所望の DNS のアドレスを指定(例:8.8.8.8,8.8.4.4)← Google の DNS の場合
  • 「保存」をクリック

最後にマシンを再起動して、固定 IP アドレスの設定を反映させます。

$ sudo reboot

これ以降の作業は全て SSH か VNC 経由で行うので、ここで HDMI ケーブルとキーボードは抜いてしまって構いません。

VNC サーバのインストールと諸設定

SSH で接続

SSH クライアントで LIVA (上述で固定した IP アドレス)に接続します。
私は RLogin を愛用しています。クライアントは何でも構いません。

vnc4server のインストールとスタートアップスクリプトの編集

VNC 接続するためのサービスをインストールします。これまで使ったことがある CentOS では「tigervnc-server」というのが定番ですが、Ubuntu では「vnc4server」というのが定番のようです。

$ sudo apt install vnc4server

いったん vncserver を開始します。

$ vncserver :1

VNC 接続用のパスワードを聞かれるので、任意のパスワードを決めて、2回入力します。
起動すると以下のように表示され、デフォルトのスタートアップスクリプトが生成されます。

Creating default startup script /home/{ユーザ名}/.vnc/xstartup
Starting applications specified in /home/{ユーザ名}/.vnc/xstartup

ここでいったん vncserver を終了させ、上記のスタートアップスクリプト(/home/{ユーザ名}/.vnc/xstartup)を編集します。以下では例えば nano エディタを使っています。

$ vncserver -kill :1
$ nano ~/.vnc/xstartup

このスタートアップスクリプトの設定には様々あるようですが、私は今回以下のようにしました。

~/.vnc/xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

mate-session &

まず、上から4行目の「unset...」と5行目の「exec...」部分をコメントアウトしました。コメントに「普通のデスクトップを使う場合は以下の2行をコメントアウトせよ」と書いてあるので、その通りにしました。
あとは最後の1行「mate-session &」を追加しました。

VNC サーバの起動

最後に vncserver を起動します。

$ vncserver :1

なお、解像度を指定する方法は以下です。例えば 1280x1024 の場合です。無指定(デフォルト)だと 1024x768 のようです。

$ vncserver :1 -geometry 1280x1024

VNC クライアントで接続

あとは、好みの VNC クライアントで 5901 番ポートを指定して接続します。私は VNC Viewer を愛用しています。

ubuntuMATEs.png

ただしこのままだと通信は暗号化されないので、SSH クライアント経由でポートフォワードして接続すると良いでしょう。

その他の Tips

VNC 経由での VSCode のトラブル

VNC 接続経由だと、「Software Boutique」で Visual Studio Code のインストールができませんでした。また、「Software Boutique」を使わない他の方法ではインストールできますが、起動しません。どうも GPU 絡みでうまく動かないということのようですが、詳しくは理解できていません。以下の1行を実行すると、VSCode が動作するようになりました。

$ sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /usr/lib/x86_64-linux-gnu/libxcb.so.1

参考にした情報源はこちらこちら

無線 LAN も問題なし

2.4 GHz / 5 GHz ともに問題なく接続できました。ですから、電源さえあれば LIVA 本体はどこにでも置けます。

プリンタドライバが自動で入っていた

OS インストールの際に特に何も指定していませんが、自宅 LAN 内のプリンタ(ブラザー MFC-J837DN)を認識して、ドライバも自動で入っており、ちゃんと印刷できました。
(スキャナとしては認識してくれなかったようですが)

su したい時

Ubuntu は初期状態では root のパスワードが設定されていないそうです。よって初期状態では su で root になることができません。特に su しなくても、毎回 sudo と書けば済みますが、以下のようにすると root になれます。

$ sudo su -

こうすれば毎回 sudo と打つ必要がなくなります。
さらに root になった状態で以下を実行して root のパスワードを設定すれば su できるようになります。

# passwd

所感

思いつきで始めた遊びでしたが、個人的にけっこう楽しめました。とはいえこのPC、現状、明確な用途がないので、それを探すのが今後の課題です(笑)。

なお、実は Ubuntu MATE の前に、本家の Ubuntu 19.04 や 18.04 もインストールしました。しかしデフォルトでは VNC がうまくできずにハマりました。標準機能の「デスクトップ共有」だと動作がとても重たく、かつコンソールでログインしている必要がありますし…。デスクトップを Xfce にしたらうまく VNC で動きましたが、見た目がちょっと寂しい印象でした。そんな時に 日経 Linux の記事でみかけた Ubuntu MATE を試してみたら、いろいろと「すんなり」できて、動作も軽快でした。
Ubuntu MATE は Raspberry Pi でも動くようなので、それもそのうち試してみたいところです。

※ 本稿は筆者の思いつきで随時更新します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む