ログインシェルとしての/ usr / sbin / nologinはセキュリティ目的に役立ちますか?
私には/etc/passwd、ファイル、私がいることがわかりますwww-dataのApacheが使用するユーザーだけでなく、システムのユーザーのすべての種類は、どちらか持っている/usr/sbin/nologinか、/bin/false自分のログインシェルとして。たとえば、次の行を選択します。 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin games:x:5:60:games:/usr/games:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin syslog:x:101:104::/home/syslog:/bin/false whoopsie:x:109:116::/nonexistent:/bin/false mark:x:1000:1000:mark,,,:/home/mark:/bin/bash そのため、これらのユーザーのいずれかにスワップしようとすると(ユーザーのアクセス許可の理解を確認するためにやりたいことがあり、おそらく他の少なくとも中途の正当な理由があります)、失敗します: mark@lunchbox:~$ sudo su www-data This account is currently not available. mark@lunchbox:~$ sudo su syslog mark@lunchbox:~$ もちろん、次のような方法でシェルを起動できるため、それほど不便ではありません。 mark@lunchbox:~$ sudo -u www-data /bin/bash www-data@lunchbox:~$ しかし、それでは、これらのユーザーにログインシェルを拒否することで、どのような目的が果たされるのかと思うだけです。インターネットで説明を見ると、多くの人がこれがセキュリティに関係していると主張しており、これらのユーザーのログインシェルを変更することは何らかの形で悪い考えであることに誰もが同意するようです。引用符のコレクションは次のとおりです。 Apacheユーザーのシェルを非対話型に設定することは、一般的にセキュリティ上の良い習慣です(対話型でログインする必要のないすべてのサービスユーザーは、シェルを非対話型に設定する必要があります)。 - https://serverfault.com/a/559315/147556 ユーザーwww-dataのシェルは/ usr / sbin / nologinに設定されており、非常に正当な理由で設定されています。 - https://askubuntu.com/a/486661/119754 [システムアカウント] は、特にシェルが有効になっている場合、セキュリティホールになる可能性があります。 悪い bin:x:1:1:bin:/bin:/bin/sh 良い bin:x:1:1:bin:/bin:/sbin/nologin …