对于无法通过su正常登录的用户,有以下登录方法和sudoers.d的编写方式

nginx、jenkins等一般无法登录的用户的登录方法和sudoers.d的编写方式

以下是关于在sudoers文件中给jenkins用户授予仅执行sudo su命令权限的写法备忘录:

关于nginx和jenkins用户

安装这些中间件后,将会创建nginx用户和jenkins用户。

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

然而,这些用户已经被设置了禁止登录的shell/sbin/nologin或/bin/false,无法通过su命令进行登录。

$ sudo su - nginx
最終ログイン: 2022/05/20 (金) 15:19:17 JST日時 pts/0
This account is currently not available.
    【参考】: suできないユーザに切り替える方法

nginx用户如何进行su操作?

按照参考文章所述,可以通过在su命令的选项中指定”-s /bin/bash”来以bash shell登录。

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

使其能够通过sudo运行

然而,像nginx等用户并没有设置密码,因此基本上只能通过root用户以无需密码的方式执行所有命令。

因此,您可以通过编辑sudoers.d/目录下的文件,使普通用户也能够通过sudo以nginx或jenkins用户的身份运行命令。

使用 visudo 命令在 sudoers.d 目录下创建文件。

一定要使用visudo命令进行配置更改。
如果在错误的配置情况下保存,将导致无法使用sudo命令。
# visudo /etc/sudoers.d/nginx_sudoers
Cmnd_Alias NGINX = /bin/su -s /bin/bash - nginx
%グループ名   ALL=(ALL) NGINX

提示:

在Cmnd_Alias中指定允许sudo命令的别名。
允许对指定别名执行sudo命令的%组名组进行权限控制。

※请根据您自己的环境更改%组名。

保存并且没有出现错误信息,就可以了。

以通常用户身份登录

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

我已经可以登录了!

bannerAds