(「環境の準備-3:開発環境他」からの続きです。)
デフォルトの状態ではadminはsu rootができず、しかしrootで作業を続けるのは危険を伴うため、作業用のユーザを作成してsu rootが使える状態にしてからインストール作業を行うことにします。
DiskStationでユーザを作成するにはDSMの「コントロールパネル」から「ユーザー」を選んで普通に作れば良いわけですが、Synologyが提供しているコマンド「synouser/synogroup」を使ってユーザとグループを作成/削除することもできます。「synouser/synogroup」については以下のページで紹介されています。しかし記載の内容は古いようでオプション関係が正しく記載されていませんので、各コマンドのヘルプ表示の方が参考になるかなと思います。
または「環境の準備-3:開発環境他」で使えるようにした、他のLinux環境下などでは一般的な(ただしDiskStationでは一般的ではない)「adduser/addgroup」を使用する方法もあります。
DSMまたはsynouserでユーザを作成した場合には、1024番以降のユーザIDが順に割り振られてユーザが作成され(admin=1024番、guest=1025番が最初に定義済みのため実際には1026番以降のユーザIDが割り振られる)、また通常のアクセス権の他に、パッケージアプリのアクセス権を設定することもできます。ちなみに1024番よりも小さいIDのユーザはDSMでは表示しませんのでDSMでは管理できず、パッケージアプリの権限を調整することもできません。
基本的にDSMまたはsynouserのどちらの方法でユーザを作成しても同じ設定内容になるはずなのですが、グループの設定に微妙は違いが出たりしましたので、特にどうしてもコマンドでユーザを作成したいという理由がない限り、リアルユーザはDSM上で作成した方が無難なようです。
ということで、とにかく色々な方法で作成してみた結果、作業用ユーザは素直におとなしくDSMで作成することにしました。参考までにユーザの作成方法は以下の通りです。
DSMで作成した結果「/etc/passwd」は以下のようになります。
ホームディレクトリはシンボリックリンクの設定になっていて実体は「/volume1/homes/gelsomino」となります。
1 |
gelsomino:x:1026:100::/var/services/homes/gelsomino:/sbin/nologin |
プライマリグループは100番の「users」。「/etc/group」は以下のようになり「administrators」にも属しています。
1 |
administrators:x:101:admin,gelsomino |
この状態だとシェルが設定されていないためSSH(またはTelnet)でログインできませんので「/etc/passwd」を修正します。また、使わないユーザの「guest」のシェルを「/sbin/nologin」に変更します。
1 2 |
cp -p /etc/passwd /etc/passwd-org nano /etc/passwd |
nanoで以下のように変更します(nanoの使い方は省略)。
1 2 |
guest:x:1025:100:Guest:/nonexist:/sbin/nologin gelsomino:x:1026:100::/var/services/homes/gelsomino:/bin/sh |
ついでに作業用ユーザの「.profile」を以下の記述で設定します。以下のような感じで。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# /volume1/homes/gelsomino/.profile umask 022 PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin export PATH MANPATH=/opt/share/man:/opt/man export MANPATH TERM=${TERM:-cons25} export TERM PAGER=more export PAGER PS1="[\u@\h \w]$ " alias cd..="cd .." alias l="ls -l" alias ll="ls -la | more" alias lll="ls -la | more" |
上記を「profile-gelsomino-m1」として保存して、共有フォルダの「extra」にコピーした状態で以下を実行します。
1 2 3 4 |
cp /volume1/extra/profile-gelsomino-m1 /volume1/homes/gelsomino/.profile rm -f /volume1/extra/profile-gelsomino-m1 chmod 644 /volume1/homes/gelsomino/.profile chown gelsomino:users /volume1/homes/gelsomino/.profile |
さらに、今後使うと思われる作業用のディレクトリを作り、初期状態のユーザのホームのアクセス権が気に入らないため修正します(755→700)。
1 2 3 4 5 6 |
mkdir -p /volume1/homes/gelsomino/src mkdir -p /volume1/homes/gelsomino/setup mkdir -p /volume1/homes/gelsomino/backup/src mkdir -p /volume1/homes/gelsomino/backup/tgz chown -R gelsomino:users /volume1/homes/gelsomino chmod 700 /volume1/homes/gelsomino |
そしてユーザの作成には無関係の好みの問題で、ホームディレクトリが深い位置にあるのが気に入らないため、ルートディレクトリに「home」としてシンボリックリンクを設定します。
1 |
ln -s /volume1/homes /home |
この状態で、作成したユーザでログインしてみます。ログインできることを確認したら次は「su」を使えるようにします。
前記、作業用ユーザのようにリアルなユーザで、ユーザID(UID)/グループID(GID)をそんなに気にする必要がなければよいのですが、慣例的なUID/GIDでユーザやグループを作成したいときがあります。またDSMで認識する必要が無いユーザを作りたいときもあります。
しかし残念ながらDSMまたはsynouserで作成されるユーザは1024番以上のIDが自動的に使われて、UID/GIDを指定することができません。
そこで、DSMで管理する必要のないユーザ(例えば各デーモン専用のユーザなど)をUID/GIDを指定して作りたいときは「環境の準備-3:開発環境他」で使えるようにした「adduser/addgroup」を使用してユーザを作成します。また作成したユーザのパスワードは同じく使えるようにした「passwd」を使用します。
例えば以下のように。
1 2 |
addgroup -g 1 bin adduser -h /nonexist -g "bin" -s /sbin/nologin -G bin -D -H -u 1 bin |
これで好みのUID/GIDでユーザとグループが作成できます(なお、この方法でユーザを作成するとDiskStationの起動時にmessageにエラーが吐き出すようですが、特に気にしなければ問題無しです)。
「環境の準備-3:開発環境他」で使えるようにした「passwd」を使用してrootにパスワードを設定すると、root以外のユーザで「su」が使えるようになります。
ただし1度設定すると「su」が使える状態になって元に戻らないようですので「su」は不要(例えばsudoしか使わないとか)という人は設定しない方がいいかもしれません(何か設定する方法があるのかも・・・)。
1 |
passwd |
設定したパスワードはDiskStationでは例外的な扱いになるようで以下のように使い分ける必要があります。
ま、とにかく、これで作業用ユーザでログインして、なおかつ作業用ユーザがsuできる状態が調いました。
続いてはインストール用のディレクトリを設定します。