Pythonのコンソールを開いて色々試してみる
Pythonの環境がすでに入っており、パスが通っていることを仮定して書きますね。まずはバージョンを確認しましょう。
Pythonのバージョンを確認する
コマンドは 「python -V」です。
Anaconda3>python -V
Python 3.6.4 :: Anaconda, Inc.
python3.6と出ました。バージョン3.xは2.xから大きく文法や関数が変わっており、互換性が担保されていません。これから開発する方は新しい3.xから入れることでしょう。
Anaconda,Inc.と出ているのは統合開発環境でアナコンダ入れてみたからです。あまり使っていませんが…。
Pythonコマンドラインを起動する
コマンドは「python」でいけます。もし2.x、3.xと異なるバージョンを共存させている環境であれば、python2とかpython3とバージョン番号もふってあげてください。
\Anaconda3>python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
このような感じで立ち上がりましたね。今日は眠いので軽くlistが内包してるモジュールの一覧を出してみます。
型とかモジュールが内包している定義を全部表示してみる
方法は「dir(型名)」で表示されます。
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
'__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__',
'__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend',
'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
なるほど。全部出たみたいです。ほう、countなんてものがありますね。何に使うのか、公式ドキュメントを読むのも良いですが、せっかくコンソールを開いているので実際に使ってみるのが近道です。理解よりも今ある熱情を重視。これエンジニアの鉄則。(なにそれ?)
>>> x=[1,2,3,3,4,5,5,5,5,]
>>>
>>> x.count(5)
4
なるほど、データの個数をカウントしてくれるのね。意外と使う場面ありそう。pythonのこういうところ、好きです。おやすみなさい。
Ubuntuにfreeradiusを入れてみる
radiusとは
Remote Authentication Dial-In User Serviceの略。
Radiusサーバー、Radiusクライアント、ユーザーから構成されています。Radiusサーバーがユーザーを認証し、認証成功したユーザーのみを通したりするためのプロトコルです。
Radiusには2つのサービスが備わっています。
また、RadiusクライアントをNAS(network access server)、ユーザーをSupplicantと呼んだりもします。
ubuntuにfreeradiusを入れる
LinuxではRadiusを実現するためにfreeradiusが用意されています。
$ sudo apt-get install freeradius
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
linux-headers-4.15.0-22 linux-headers-4.15.0-22-lowlatency linux-image-4.15.0-22-lowlatency
linux-modules-4.15.0-22-lowlatency
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
freeradius-common freeradius-config freeradius-utils freetds-common libct4 libdbi-perl
libfreeradius3
提案パッケージ:
freeradius-ldap freeradius-postgresql freeradius-mysql freeradius-krb5 snmp libmldbm-perl
libnet-daemon-perl libsql-statement-perl
以下のパッケージが新たにインストールされます:
freeradius freeradius-common freeradius-config freeradius-utils freetds-common libct4 libdbi-perl
libfreeradius3
アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 2 個。
/etc/freeradius/3.0/というフォルダが作られ、設定ファイル諸々が入っていました。
- NASの設定は、/etc/freeradius/3.0/clients.conf
- ユーザーの設定は、/etc/freeradius/3.0/users
でできます。この2つのファイルに設定をいれるだけでRadiusとして動きそうです。
/etc/freeradius/3.0/clients.conf
#
# You can now specify one secret for a network of clients.
# When a client request comes in, the BEST match is chosen.
# i.e. The entry from the smallest possible network.
#
#client private-network-1 {
# ipaddr = 192.0.2.0/24
# secret = testing123-1
#}
#client private-network-2 {
# ipaddr = 198.51.100.0/24
# secret = testing123-2
#}
ここでipaddr(スイッチのIPアドレス)とsecretというパスワードを設定します。NAS側でも、radiusサーバーのipと同じsecretパスワードを設定してあげてください。
/etc/freeradius/3.0/users
#
# This is an entry for a user with a space in their name.
# Note the double quotes surrounding the name. If you have
# users with spaces in their names, you must also change
# the "filter_username" policy to allow spaces.
#
# See raddb/policy.d/filter, filter_username {} section.
#
#"John Doe" Cleartext-Password := "hello"
# Reply-Message = "Hello, %{User-Name}"
ユーザーの設定でもCleartext-Passwordというパスワードを設定します。このパスワードが何になるかもNASで設定します。ユーザーのMACアドレスがデフォルトになっているかも。
yumとrpm
yum
Yellowdog Updater Modified (Yum ヤム)はLinuxのRPM Package Managerのパッケージを管理するメタパッケージ管理システムである。(wikipediaより)
yumコマンドはLinuxのパッケージをインストールするときに使いますよね。こんな感じで。
メタパッケージ管理システムといっているのは、rpmと互換性があり、rpmインストール時の依存関係もすべて全部正して更新してくれるから。
ではrpmとは?
rpm
RPM(アールピーエム、RPM Package Manager)はレッドハット社が開発したソフトウェアのパッケージを管理するためのシステム (パッケージ管理システム)、及びコマンド。(wikipediaより)
Linuxディストリビューションで使われるソフトウェアは拡張子が.rpmです。これはバイナリファイルです。