WHM インスタンスから、シャドウ ファイルの権限が無効であることを警告するアラート メッセージがいくつか送信されています。ただし、実際の権限 ( 0400
) は正しいようですが、報告される権限は非常に大きいようです... 数値でしょうか?
今朝から:
/etc/shadow has non default permissions. Expected: 2401450770, Actual: 0400.
Review the permissions on /etc/shadow to ensure they are safe
今晩から:
/etc/shadow has non default permissions. Expected: 3377602730, Actual: 0400.
Review the permissions on /etc/shadow to ensure they are safe
報告されたこれらの権限は何を意味し、WHM がそれに満足していないのはなぜですか0400
?
答え1
ソースを見ています。権限を 0200 または 0600 に設定してみてください。
sub _check_for_unsafe_permissions {
my ($self) = @_;
my %test_files = (
'/etc/shadow' => { 'perms' => [ 0200, 0600 ], 'uid' => 0, 'gid' => 0 },
'/etc/passwd' => { 'perms' => [0644], 'uid' => 0, 'gid' => 0 }
);
for my $file ( keys %test_files ) {
my $expected_attributes = $test_files{$file};
my ( $current_mode, $uid, $gid ) = ( stat($file) )[ 2, 4, 5 ];
my $perms_ok = 0;
foreach my $allowed_perms ( @{ $expected_attributes->{'perms'} } ) {
if ( ( $allowed_perms & 07777 ) == ( $current_mode & 07777 ) ) {
$perms_ok = 1;
last;
}
}
if ( !$perms_ok ) {
my $expected_mode = sprintf( "%04o", $expected_attributes->{'perms'} );
my $actual_mode = sprintf( "%04o", $current_mode & 07777 );
$self->add_warn_advice(
'text' => ["$file has non default permissions. Expected: $expected_mode, Actual: $actual_mode."],
'suggestion' => ["Review the permissions on $file to ensure they are safe"]
);
}
if ( $uid != $expected_attributes->{'uid'} or $gid != $expected_attributes->{'gid'} ) {
$self->add_warn_advice(
'text' => ["$file has non root user and/or group"],
'suggestion' => ["Review the ownership permissions
期待される権限出力は 4 文字の 8 進形式の値であるはずですが、Perl の sprint 関数が多次元配列値を不適切に表示しているため、ゴミが表示されています。
ソース (セキュリティ アドバイザーは、WHM のセキュリティ センター (Cpanel) 内にあります) https://github.com/bdraco/addon_securityadvisor https://github.com/bdraco/addon_securityadvisor/blob/master/pkg/Cpanel/Security/Advisor/Assessors/Permissions.pm