SELinuxがオンの場合、root以外のユーザーにはsu問題が発生します。

SELinuxがオンの場合、root以外のユーザーにはsu問題が発生します。

私のRHEL 7.6サーバーに通常のユーザーがいてSELinuxがオフになっている場合、suコマンドは正しく機能します。ただし、SElinuxをオンにすると、suコマンドは機能しなくなります。私が見つけたPAMソースから

#ifndef HELPER_COMPILE
if (geteuid() || SELINUX_ENABLED)
    return PAM_UNIX_RUN_HELPER;
#endif

SELinuxがオンになっている場合は、特別なコマンドを使用してunix_chkpwdパスワードを確認してください。このコマンドには次のコードがあります。

user = getuidname(getuid());
/* if the caller specifies the username, verify that user
  matches it */
if (strcmp(user, argv[1])) {
 user = argv[1];
 /* no match -> permanently change to the real user and proceed */
 if (setuid(getuid()) != 0)
   return PAM_AUTH_ERR;

私の場合、userは一般ユーザー名、argv [1]はrootです。この場合、setuid は一般ユーザーの uid に対して実行されます。なぜこれが起こるのか知っていますか? SELinuxがオンになっているときにsuを動作させる方法はありますか?

ベストアンサー1

私のRHEL 7.9システムでは:

semanage login -l | more

Login Name           SELinux User         MLS/MCS Range        Service

__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *
system_u             system_u             s0-s0:c0.c1023       *

これはRHELのデフォルト設定です。これを変更すると、ユーザーがグループsu内にあっても selinux 適用が機能しない状況が発生します。wheel私はこれがselinuxを使用してsuに許可されなければならない正しいselinuxタグまたはコンテキストを持つホイールグループユーザーを追加する方法を理解することにつながると信じています。

次のように見えますvisudo

%wheel ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL

これはv3r4 stigからのもので、これが私が経験したものです。SELinuxがオンの場合、root以外のユーザーにはsu問題が発生します。このセマンティック安全ガイドラインを適用しようとした後。 aを実行setenforce 0し、su期待どおりに動作します。 STIGの意味がわからない場合やsemangeコマンドを実行したことがない場合は、これが原因ではない可能性があります。

RHEL 7では、root以外のユーザーが必要な場合は、このグループに参加する必要があると思いsuますwheel/etc/?これをキャンセルし、すべてのユーザーを許可できるファイルがどこに設定されているかわかりません。suしかし、伝統的な単純な面では、ホイールグループのユーザーだけがsuでき、通常は基本的にselinuxとは無関係です。

おすすめ記事