`chattr + i` ошибка в NFS

Я пытаюсь защитить файл authorized_keys чтобы предотвратить его изменение. Я запускаю это:

 [root@localhost]# chattr +i authorized_keys chattr: Inappropriate ioctl for device while reading flags on authorized_keys 

Я думаю, это может быть из-за файловой системы:

 [root@localhost]# stat -f -c %T /home/user/ nfs 

есть способ изменить его с помощью chattr?

NFS не имеет понятия неизменяемых файлов, поэтому вы получаете ошибку. Я бы предположил, что вы просто удалите доступ для записи от всех, а это, вероятно, достаточно близко для ваших целей.

 $ > foo $ chmod aw foo $ echo bar > foo bash: foo: Permission denied 

Основные различия между удалением бита записи для всех пользователей вместо использования неизменяемого атрибута:

  • Необязательный атрибут должен быть отключен root, тогда как chmod может быть изменен пользователем, владеющим файлом;
  • Неизменяемый атрибут удаляет возможность удаления файла без удаления неизменяемого атрибута, который не удаляет бит записи (хотя вы можете изменить разрешения каталога, чтобы запретить модификацию, если это приемлемо).

Если любая из этих вещей имеет значение для вас при работе с authorized_keys, у вас, вероятно, есть более фундаментальная проблема с вашей моделью безопасности.

Правильно это не будет работать над NFS.

Однако на сервере, где этот каталог экспортируется, попробуйте запустить команду chattr. С парой gotchas

Возможно, вам потребуется включить ACL:

 $ mount -o remount,acl / 

(Чтобы сделать это изменение постоянным, измените свой / etc / fstab)

SELinux может мешать вам:

Чтобы узнать наверняка:

 $ ls -Z