Linux関連

提供: Eospedia
2020年4月28日 (火) 14:40時点におけるKttn (トーク | 投稿記録)による版

移動: 案内検索

ファイルサーバー関連

autofsを有効化する

/netが存在しない、または/net内でファイルサーバーのディレクトリに入ろうとしてもエラーが出る場合、autofsが動いていない。

以下の作業は管理者権限で実施する。

step1: /etc/auto.masterを編集する

  • root権限でエディタで/etc/auto.masterを開き、以下の行がコメントアウトされていればコメントアウトを外す。
/net    -hosts

step2: autofsサービスを有効化して起動する

systemctl enable --now autofs

step3: 確認

ls /net/fs09/

work01, work02などが見えればok。fs09以外にも、研究室内でNFSエクスポートをかけてあるリモートファイルシステムはすべてアクセス可能になる。

step4: ホームディレクトリのリンクを張る

研究室計算機のアカウントはホームディレクトリを /home/people/<アカウント名> としていて、その実体は /net/fs09/homes/people/<アカウント名> にある(2020/4/28現在)ので、以下の様にシンボリックリンクを張る。

cd /home
ln -s /net/fs09/homes/people .

ユーザー管理関連

LDAPでユーザー管理していない計算機にアカウントを追加する

<前提>

  • LDAPサーバーに研究室アカウントを登録済みであること
  • アカウントを追加したい計算機で管理者権限を使えること
  • アカウントを追加したい計算機でautofsが有効になっており、LDAPアカウントのホームディレクトリにアクセス可能なこと

<想定状況>

  • LDAPでユーザー管理していない計算機(rc, DL-Boxなど)において、LDAPに登録してあるユーザー所有のファイルやディレクトリに同じ権限でアクセスできるようなアカウントを作りたい。ホームディレクトリも共有したい。
    • LDAPを有効化しようにも既存ユーザーとLDAPユーザー名やグループ名などがバッティングしていてLDAP有効化できない場合とか、宗教上の理由によりその計算機でLDAPを使いたくない場合など。

step1: LDAPユーザーのUIDとGIDを確認する

LDAPでユーザー管理している計算機上で、idコマンドにより確認する。

例えばユーザー名がkttnである場合、

[13:36:52 kttn@cs05 ~]
> id kttn
uid=12118(kttn) gid=1001(yasunaga-lab) groups=1001(yasunaga-lab),10(wheel)

※ cs06ではgid=1001はLDAP有効化以前の既存グループwcsに持っていかれているので、yasunaga-labではなくwcsと表示される。

上記より、UIDは12118, GIDは1001であると確認できる。Linuxではユーザー識別にユーザー名とグループ名は関係なくて、UIDとGIDが同じであるか否かでユーザー識別がされる。したがって、UIDとGIDが上記で確認したLDAPユーザーのそれらと同じアカウントを作りさえすれば目的は達成できる。

step2: 既存アカウントおよびグループの確認

ユーザー名 kttn, uid 12118, グループ名 yasunaga-lab, gid 1001 でアカウントを追加したいものとして説明する。

アカウントを追加したい計算機にログインし、まず同じユーザー名をもつユーザーが存在しないか調べる。

[kttn@rc ~]$ id -u kttn
1007

遺憾ながらすでにkttnという名前のアカウントを作ってしまっていて、同じアカウント名を使えないため、ユーザー名はkttn2として作ることにする。

同様にグループ名を調べる。

[kttn@rc ~]$ id -g yasunaga-lab
id: yasunaga-lab: no such user

yasunaga-labという名前の既存グループは存在しないため、yasunaga-labという名前のグループを新たに作成しても良い。

次に同じUIDを持つユーザーが存在しないか調べる。

[kttn@rc ~]$ id -un 12118
id: 12118: no such user

存在しない。

同様にGID

[kttn@rc ~]$ id -gn 1001
wcs

残念ながらwcsというグループがすでにGID 1001を割り当てられている。yasunaga-labというグループは作らずに、wcsというグループでアカウントを作ることにする。

まとめると、ユーザー名 kttn2 (uid=12118), 所属グループ wcs (gid=1001) でアカウントを作成することにする。

step3: アカウント作成

管理者権限で実施。

[root@rc ~]# useradd --home-dir /home/people/kttn --gid 1001 --groups wheel --no-create-home --shell /usr/bin/bash --uid 12118 kttn2

--shellはLDAPユーザーのそれと同じにする。--shellのパスはOSによって違うかもしれないが、centos7の場合bashは/usr/bin/bashである。

--groupsは追加のグループを指定していて、centos7ではwheelを追加するとsudoコマンド使用が可能になる。

次にパスワードの設定。

[root@rc ~]# passwd kttn2
Changing password for user kttn2.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

LDAPユーザーのそれと同じにしとくが吉。

step4: 確認

suコマンドで追加したユーザーになってみる。

[root@rc ~]# su kttn2   
[14:32:31 kttn2@rc /root] 
> cd

[14:32:31 kttn2@rc ~]
> ls
ビデオ        デスクトップ  docker     pyenv-init.sh  scripts            tmp   画像
ダウンロード  ドキュメント  Downloads  R              softwares          web   音楽
テンプレート  Desktop       perl5      repos          thinclient_drives  公開

問題なくホームディレクトリが見れている。あとは念のためファイル作れるかとか消せるかとかをチェックすればよい。

もちろん外側からsshするときは新たに作成したユーザー名で、

ssh kttn2@rc

とかやる。