Операция Chown не разрешена для пользователя root

21

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

chown: changing ownership of `ps': Operation not permitted
Питер Стуйфзанд
источник
Вывод ls -lha и lsattr помог бы в решении :)
drAlberT

Ответы:

45

Атрибут immutable может быть установлен в файле. Удалить это с помощью chattr -i

Киан
источник
8
Это было. Но спасибо за поклон в правильном направлении.
Питер Стуифзанд
Спасибо, Как я могу снова установить неизменный атрибут?
Zim3r
chattr + i <file>
Cian
chattr: Inappropriate ioctl for device while reading flags on
Andilabs
8

Существует несколько решений, некоторые из которых:

  • у вас файловая система не позволяет вам например. uid: gid, например: FAT
  • диск был установлен только для чтения
  • SELinux или другие меры безопасности применяются
  • файловая система установлена ​​в режим только для чтения (например, xfs_freeze)
  • В файле установлен флаг неизменяемости (man chattr)
asdmin
источник
Файловая система ext3, смонтирована для чтения-записи, нет SELinux.
Питер Stuifzand
Также возможно, что файл находится в файловой системе NFS, смонтирован root_squash, хотя вряд ли, учитывая файл.
Cian
3

Веселая. Вы проверяли системные журналы (/ var / log / messages, / var / log / syslog, вывод dmesg) на наличие каких-либо подсказок?

Возможные причины:

  • Вы используете Linux с повышенной безопасностью, такой как SELinux . Это накладывает ограничения даже на то, что может делать root.
  • Файл находится в файловой системе, которая не поддерживает владение файлом, например (V) FAT. В зависимости от параметров монтирования chmod / chown выдаст вам ошибки.
sleske
источник
3

Попробуй это:

[root @ root] # chattr -ais / bin / ls

после смены владельца и группы обратно в root.

Лукас Кауфман
источник
2

У меня была такая же проблема.

$ chattr -V -i dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as s----a---------

Которого было недостаточно. Итак, я добавил 'са'

$ chattr -V -ais dir
chattr 1.41.12 (17-May-2010)
Flags of dir set as ---------------
$ chown root dir
$

Проблема решена :)

Джеспер Гранн Лаурсен
источник
0

на какой файловой системе находится файл "ps", который вы пытаетесь записать? Fs установлен как ro (только для чтения)?

если вы говорите о / bin / ps, то в Debian это всегда так:

-rwxr-xr-x 1 root root 76132 2009-05-28 10:48 /bin/ps*
kargig
источник
Проблема в том, что моя система была взломана и некоторые файлы были заменены. Теперь я хочу заменить их оригиналами, но я не работаю.
Питер Stuifzand
9
Если ваша система была взломана, то вы не хотите помещать файлы обратно. Вы не можете сказать, что было сломано, и ничто в системе не заслуживает доверия. Протрите и переустановите из резервных копий.
Cian
1
Как сказал Cian, если ваша система была взломана, и они получили root-доступ, не заменяйте файлы. Он по- прежнему может содержать (почти) невидимый руткит, который перехватывает системные вызовы. Возможно, он по-прежнему перехватывает пароли, он может по-прежнему открывать бэкдоры в ваших сервисах, а также и (и бесконечное количество возможных вещей, которые может содержать взломанная машина). Разумное решение - отключить компьютер и изучить его содержимое в автономном режиме, поместив диск в другую коробку. Не доверяйте этой машине вообще и не заменяйте никакие двоичные файлы, они могут содержать ценную информацию, чтобы узнать, что делает руткит.
Каргиг
0

Любое «предположение», сделанное другими ответами, возможно. Подсказка отладки может заключаться в том, чтобы выполнить небольшую часть команды и просмотреть выходные данные, чтобы увидеть, какова реальная проблема в самих системных вызовах.

strace chown root /bin/ps 2>&1 | less 
drAlberT
источник