3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AIX への sudo コマンド導入

Posted at

AIX への sudo コマンド導入

sudo の導入です。なぜ唐突に sudo の導入なのか?ですが、
依頼があり手順をまとめる必要があったからです。
ネット等で調べましたが、意外にまとまった手順は無いように思い、せっかくなので久しぶりに、と
筆を執りました(キーボードをとった?)
ところで「筆を執る」って今も言いますかね。言わない。。。?

#環境
AIX 6.1 TL7 SP6   (※2020/03時点でサポート切れです。。 7.1 or 7.2 を使いましょう!)

#導入の流れ

  1. 前提パッケージ・メディアの入手
  2. AIX の rpm コマンドの更新
  3. OpenSSL の導入(または更新)
  4. バーチャルパッケージの更新
  5. sudo の導入

##1.前提パッケージ・メディアの入手

意外に手間取るメディアの入手です。
探すのも面倒ですし、バージョンもURL も結構変わる?ので何を導入するにしても困りますね。
下記の情報もすぐに古くなるだろうとは思いますが、無いよりはましということで。

必要なメディアは以下の通りです。

概要 ファイル名 配置場所(例)
AIX 用 rpmコマンドパッケージ rpm.rte.4.13.0.10 /work/sudo/AIX-rpm
OpenSSL openssl.base /work/sudo/openssl
openssl.license
openssl.man.en_US
sudo 関連 rpm ファイル bash-5.0-1.aix6.1.ppc.rpm /work/sudo/sudo
cyrus-sasl-2.1.26-3.aix6.1.ppc.rpm
db-6.2.32-2.aix6.1.ppc.rpm
gettext-0.19.8.1-3.aix6.1.ppc.rpm
glib2-2.56.1-2.aix6.1.ppc.rpm
info-6.4-1.aix6.1.ppc.rpm
libffi-3.2.1-3.aix6.1.ppc.rpm
libgcc-6.3.0-2.aix6.1.ppc.rpm
libiconv-1.14-2.aix6.1.ppc.rpm
libstdcplusplus-6.3.0-2.aix6.1.ppc.rpm
libunistring-0.9.9-2.aix6.1.ppc.rpm
libxml2-2.9.9-1.aix6.1.ppc.rpm
ncurses-6.1-2.aix6.1.ppc.rpm
openldap-2.4.46-2.aix6.1.ppc.rpm
sudo-1.8.27-2.aix6.1.ppc.rpm
xz-libs-5.2.4-1.aix6.1.ppc.rpm
zlib-1.2.11-1.aix6.1.ppc.rpm

入手元ですが、 頑張れば AIX Toolbox for Linux applications ページからたどれたりします。 (FAQ 参照)
が、そんなところは普通見ませんよね。

※補足
・ OpenSSL のページは時々止まっていたりするようです。やれやれです。
・ OpenSSL のページは IBM ID が必要ですので、なければ作成しましょう。
・ 各ファイルのバージョンに関しては完全に一致していなくても大丈夫です。導入時点で新しいものを一通りそろえればよいでしょう。
 (上の表の情報は 2019年の終わりごろの情報?かもしれません?)

※さらに補足
AIX-rpm は rpm コマンドを提供するだけではなく、 rpm パッケージから AIX のネイティブライブラリ等を見えるようにします(だそうです。。。 だそうだ、と理解しています。。。)
OpenSSL は sudo 関連の rpm パッケージの前提ライブラリ libcrypt.a のために入れますが、 これは AIX 用のパッケージです。

##2.AIX の rpm コマンドの更新

オープンソース系のパッケージを扱う場合、 AIX の rpm コマンドは新しい方が良いようです。

###(1) .toc ファイル作成

ダウンロードしてきた AIX 用のファイルからインストール・更新する場合、まぁ一応 .toc ファイル(要はファイルリスト)を作成します。 やらなくても大丈夫だとは思いますが念のため。

なお、以下の作業はすべて root で実行します。

# cd <該当ディレクトリ>
# rm -f .toc
# inutoc .
# ls -l .toc

.toc ファイルができていることを確認します。

###(2)ソフトウェアの更新

smit から更新します。

# cd <該当ディレクトリ>
# smitty update_all

入力ディレクトリーはカレントディレクトリを指定します。(. : ピリオド)

                                       インストール済みソフトウェアを最新レベルに更新 (すべて更新)

入力フィールドに値を入力または選択してください。
必要な変更を行った後、ENTER キーを押してください。

                                                        [入力フィールド]
* ソフトウェアの入力デバイス/ディレクトリー          [.]                                                                              +

まずはプレビューです。 一部だけ色を変える方法がわからないので抜粋しますが、以下のように指定します。

  • プレビューだけ行う (更新操作は行わない) : はい
  • ソフトウェアの更新をコミットする : いいえ
  • 置換ファイルを保存する : はい
  • 新規ご使用条件に同意する : はい
                                       インストール済みソフトウェアを最新レベルに更新 (すべて更新)

フィールドの値を入力または選択してください。
変更を完了したら ENTER キーを押してください。

                                                        [入力フィールド]
* ソフトウェアの入力デバイス/ディレクトリー           .
* 更新するソフトウェア                                _update_all
  プレビューだけ行う (更新操作は行わない)             はい                                                                            +
  ソフトウェアの更新をコミットする                    いいえ                                                                          +
  置換ファイルを保存する                              はい                                                                            +
  必要条件ソフトウェアを自動的にインストールする      はい                                                                            +
  スペースが必要な場合にファイルシステムを拡張する    はい                                                                            +
  インストールを検証してファイル・サイズを確認する    いいえ                                                                          +
  詳細出力する                                        いいえ                                                                          +
  複数ボリュームを処理する                            はい                                                                            +
  新規ご使用条件に同意する                            はい                                                                            +
  新規ご使用条件をプレビューする                      いいえ                                                                          +

エンターを押すと、 「よろしいですか?」 と確認画面が表示されますので、再度エンターでプレビューを実行します。
プレビューが問題なく 「OK」で終われば、 Esc + 3 で上記の画面に戻ってきます。
戻った画面上で、 「プレビューだけ行う」 を 「はい」→「いいえ」に変更し、エンターを押します。(確認画面もエンター)
これで実際に導入されます。

##3.OpenSSL の導入(または更新)

OpenSSL の導入も、基本的には AIX-rpm と同様に実施します。

###(1) .toc ファイル作成

OpenSSL 関連ファイルの場所で、 .toc ファイルを作成します(手順は前述の AIX-rpm 部分を参照)

###(2) OpenSSL の導入
更新の場合は AIX-rpm の手順と全く同じです。
新規導入の場合、たどるメニュー構成がやや異なりますが、それ以外は同じです。

# smitty install	
→ ソフトウェアのインストールおよび更新
→ ソフトウェアのインストール

次に、「ソフトウェアの入力デバイス/ディレクトリー」 の指定画面が表示されますので、
AIX-rpm のケースと同じく カレント (".") を指定します。

導入前の画面も、ほぼ同じです。 インストールするソフトウェア欄が [_all_latest] となっているぐらいです。

                                                       ソフトウェアのインストール

フィールドの値を入力または選択してください。
変更を完了したら ENTER キーを押してください。

                                                        [入力フィールド]
* ソフトウェアの入力デバイス/ディレクトリー           .
* インストールするソフトウェア                       [_all_latest]                                                                    +
  プレビューだけ行う (インストール操作は行わない)     はい      (※プレビュー OK 後、いいえ)                       +
  ソフトウェアの更新をコミットする                    いいえ                                                                          +
  置換ファイルを保存する                              はい                                                                            +
  必要条件ソフトウェアを自動的にインストールする      はい                                                                            +
  スペースが必要な場合にファイルシステムを拡張する    はい                                                                            +
  同一または新規バージョンを上書きする                いいえ                                                                          +
  インストールを検証してファイル・サイズを確認する    いいえ                                                                          +
  対応する言語のファイルセットを含める                はい                                                                            +
  詳細出力する                                        いいえ                                                                          +
  複数ボリュームを処理する                            はい                                                                            +
  新規ご使用条件に同意する                            はい                                                                            +
  新規ご使用条件をプレビューする                      いいえ                                                                          +

ここで、プレビュー、並びに導入を実施します。

##4.バーチャルパッケージの更新

バーチャルパッケージ、といっても何のことかわかりませんね。
興味がある方はこちらをどうぞ。
Understanding the AIX Virtual RPM Package for rpm.rte

AIX では、 上記のように smit ( installp コマンド ) で各種パッケージ類を管理しますが、
オープンソース系のパッケージは rpm で管理します。
rpm 系のパッケージからも、 AIX ネイティブのライブラリーなどを参照するのですが、
管理方法が違うため、 rpm の世界から installp の世界をのぞけない、という問題が発生します。
それを解消するのが AIX-rpm コマンドパッケージです。(だと理解しています)
通常、 AIX-rpm パッケージを導入する際に、内部的に以下の手順の updtvpkg コマンドが発行されるはずですが
効いていないこともあるらしく、手動で実行するのがおすすめです。

# /usr/sbin/updtvpkg
お待ちください...

そっけないです。

##5. sudo の導入

ここまでくればあとは rpm コマンドで入れるだけです。
sudo 関連のファイルが配置されているディレクトリに移動し、 rpm 実行です。

一応先にテストしましょう

# rpm -ivh --test *.rpm

正常な場合は以下のような表示になります。

# rpm -ivh --test *.rpm
Preparing...                          ################################# [100%]

前提条件に不備がある場合は以下のようになることがあります。(不備内容によりメッセージは異なります)

# rpm -ivh --test *.rpm
Preparing...                          ################################# [100%]
        installing package libstdc++-6.3.0-2.ppc needs 64MB on the /opt filesystem
        installing package ncurses-6.1-2.ppc needs 86MB on the /opt filesystem
        installing package glib2-2.56.1-2.ppc needs 208MB on the /opt filesystem
        installing package gettext-0.19.8.1-3.ppc needs 237MB on the /opt filesystem
        installing package libiconv-1.14-2.ppc needs 240MB on the /opt filesystem
        installing package bash-5.0-1.ppc needs 250MB on the /opt filesystem
        installing package info-6.4-1.ppc needs 252MB on the /opt filesystem
        installing package xz-libs-5.2.4-1.ppc needs 255MB on the /opt filesystem
        installing package libxml2-2.9.9-1.ppc needs 274MB on the /opt filesystem
        installing package libunistring-0.9.9-2.ppc needs 278MB on the /opt filesystem
        installing package sudo-1.8.27-2.ppc needs 284MB on the /opt filesystem

上記の例は /opt のファイルシステム容量不足ですね。
chfs -a size=3G /opt などで拡張しましょう
なお、依存関係エラーが出た場合はファイルが足りませんので、足りないものを AIX toolbox for Linux Applications からとってきましょう。

実際の導入は以下のような感じです。

# rpm -ivh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:libgcc-6.3.0-2                   ################################# [  6%]
   2:zlib-1.2.11-1                    ################################# [ 12%]
   3:db-6.2.32-2                      ################################# [ 18%]
   4:cyrus-sasl-2.1.26-3              ################################# [ 24%]
3004-686 グループ "ldap" は存在しません。
   5:openldap-2.4.46-2                ################################# [ 29%]
   6:libffi-3.2.1-3                   ################################# [ 35%]
   7:libstdc++-6.3.0-2                ################################# [ 41%]
   8:ncurses-6.1-2                    ################################# [ 47%]
   9:glib2-2.56.1-2                   ################################# [ 53%]
  10:gettext-0.19.8.1-3               ################################# [ 59%]
  11:libiconv-1.14-2                  ################################# [ 65%]
add shr4.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
add shr.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
add shr4_64.o shared members from /usr/lib/libiconv.a to  /opt/freeware/lib/libiconv.a
/
  12:bash-5.0-1                       ################################# [ 71%]

        ## Binary "bash" is avaible in 32bit and 64bit ##

        The default used is 64bit

        If 32bit is needed, please change symbolic link
        for "bash" in /bin directory
        To do that type:
                # rm -f /bin/bash
                # ln -sf /opt/freeware/bin/bash_32 /bin/bash
  13:info-6.4-1                       ################################# [ 76%]
Please check that /etc/info-dir does exist.
You might have to rename it from /etc/info-dir.rpmsave to /etc/info-dir.
  14:xz-libs-5.2.4-1                  ################################# [ 82%]
  15:libxml2-2.9.9-1                  ################################# [ 88%]
  16:libunistring-0.9.9-2             ################################# [ 94%]
  17:sudo-1.8.27-2                    ################################# [100%]

完了後、コマンドが使えるようになっていることがわかります。

# which sudo
/usr/bin/sudo

# which visudo
/usr/sbin/visudo


sudo 自体の使い方は割愛です。というか、正直知りません。
常に root を使う悪の SE ですので。

Linuxだと単に rpm や yum、dnf で入れればOKという世界だと思いますので、
意外にめんどくさくはありますが、まぁそもそも違う OS ですのである程度は仕方がないと思います。
(というか、まぁよく頑張っているのではないでしょうか。。。? )
Linux も、 libc とかで依存関係が狂った日には もう手も足も出ないですし…

というわけで、 sudo でした!
最後は sudo 恒例のおまじない?で。
$ sudo su -


3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?