LoginSignup
0
0

More than 1 year has passed since last update.

suで普通にはログインできないユーザへのログイン方法と、sudoers.d の書き方

Posted at

nginx, jenkins などの普通にはログインできないユーザへのログイン方法と、sudoers.d の書き方

jenkins ユーザにsudo suしたいという依頼が。
sudo 権限を、 jenkins ユーザに su するだけの権限を付与したい時のsudoersファイルの書き方をメモしておきます。

nginxやjenkinsユーザについて

これらのミドルウェアをインストールすると、nginx ユーザや jenkins ユーザが作成されます。

# cat /etc/passwd
nginx:x:993:988:Nginx web server:/var/lib/nginx:/sbin/nologin

ただし、このようなユーザは ログイン禁止のシェル/sbin/nologin/bin/falseが設定されており、
su コマンドでログインできなくなっております。

$ sudo su - nginx
最終ログイン: 2022/05/20 (金) 15:19:17 JST日時 pts/0
This account is currently not available.

nginxユーザにsuさせる方法

参考の記事の通り、suコマンドのオプションに-s /bin/bashを指定することで、bashのシェルでログインできます。

# su -s /bin/bash - nginx
最終ログイン: 2022/05/20 (金) 14:59:31 JST日時 pts/0
$ whoami 
nginx

sudo で実行できるようにする

ただし、nginxなどのユーザはpasswordが設定されていないので、
基本的には全コマンドノーパスワードで実行できるrootユーザでしかsuできない状態です。

そこで、sudoers.d/配下のファイルををいじって、一般ユーザでもsudoでnginxやjenkinsユーザにsuできるようにできます。

visudo で sudoers.d 配下にファイルを作成する

必ずvisudoコマンドで設定変更するようにしましょう。
設定を間違えた状態で保存してしまうと、sudoが使えなくなってしまいます。

# visudo /etc/sudoers.d/nginx_sudoers
nginx_sudoers
Cmnd_Alias NGINX = /bin/su -s /bin/bash - nginx
%グループ名   ALL=(ALL) NGINX
  • ポイント:
    • Cmnd_Alias で sudo を許可するコマンドのエイリアスを指定します。
    • 指定したエイリアスに対する sudo 実行を %グループ名 のグループに対して許可します。

※ %グループ名 はご自身の環境に合わせて変更してください。

:wqで保存して、エラーメッセージが出なければOKです。

一般ユーザでログイン

$ sudo su -s /bin/bash - nginx
[sudo] user のパスワード:
最終ログイン: 2022/05/20 (金) 15:25:51 JST日時 pts/0
[nginx@imade-gcp01 ~]$ whoami 
nginx

ログインできるようになりました!

0
0
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
0
0