LINUX.ORG.RU
ФорумAdmin

Не могу удалить файл из под root'а


0

0

Проблема такая: команда
#rm -f /usr/sbin/squid
выдаёт мне
rm: cannot remove `/usr/sbin/squid': Permission denied
при том, что выполняю её я из под root'а.

Я уже что только не пробовал (и chattr -i /usr/sbin и chattr -i /usr/sbin/squid) -- никакого эффекта. Подскажите в чём может быть дело, а то squid не хочет запускаться, я хочу его переустановить, но из-за этой ошибки не могу.


ls -ld /usr/sbin    # ???
df -k  /usr/sbin    # возможно /usr примонтирован по NFS

init 1
umount /usr
fsck /dev/$USR

sdio ★★★★★
()
Ответ на: комментарий от marsijanin

Вот что даёт команда
#ls -l /usr/sbin/squid

-rwxr-xr-x 1 root root 698272 Feb 12 2006 /usr/sbin/squid
Т. е. все права у меня есть, но почему файл не удаляется???

Kinjo
() автор топика
Ответ на: комментарий от Kinjo

может быть партиция замонтирована в режиме ro?

что говорит mount?

anonymous
()
Ответ на: комментарий от Kinjo

На самом деле вот из-за чего это мне всё нужно (я устанавливаю squid из rpm): #rpm -ivh squid-2.5.STABLE12-5.1.i386.rpm

warning: squid-2.5.STABLE12-5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing... ########################################### [100%] 1:squid ########################################### [100%] error: unpacking of archive failed on file /usr/sbin/squid;470329d0: cpio: open failed - Operation not permitted

На этом установка прекращается (т. е. squid не устанавливается). Пробую удалить файлы squid;470329d0 и squid из /usr/sbin, а мне говорят, что нельзя :-(

Проверка раздела (fsck) тоже не помогла -- я специально только что создал раздел, перекинул на него данные со старого и подключил новый раздел вместо старого. До того как примонтировал новый раздел без труда смог удалить с него /usr/sbin/squid, но после монтирования (и очередной попытки установки squid'а из rmp) уже не могу удалить только что созданный /usr/sbin/squid. Не хватает прав. Подскажите, что за безобразие?

Kinjo
() автор топика
Ответ на: комментарий от Kinjo

Вот что даёт мне # strace -o squid.error.log rm -f /usr/sbin/squid

(прошу прощения за большой объём, боюсь пропустить что-нибудь важное) ===================================================== execve("/bin/rm", ["rm", "-f", "/usr/sbin/squid"], [/* 21 vars */]) = 0 brk(0) = 0x8729000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=31555, ...}) = 0 mmap2(NULL, 31555, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f24000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\n\tJ\000"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1528292, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f23000 mmap2(0x48b000, 1254780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48b000 mmap2(0x5b7000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0x5b7000 mmap2(0x5bb000, 9596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x5bb000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f22000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f226b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0x5b7000, 12288, PROT_READ) = 0 mprotect(0x487000, 4096, PROT_READ) = 0 munmap(0xb7f24000, 31555) = 0 brk(0) = 0x8729000 brk(0x874a000) = 0x874a000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=54058400, ...}) = 0 mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7d22000 close(3) = 0 ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 unlink("/usr/sbin/squid") = -1 EPERM (Operation not permitted) lstat64("/usr/sbin/squid", {st_mode=S_IFREG|0755, st_size=698272, ...}) = 0 open("/usr/share/locale/locale.alias", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=2528, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2b000 read(3, "# Locale name alias data base.\n#"..., 4096) = 2528 read(3, "", 4096) = 0 close(3) = 0 munmap(0xb7f2b000, 4096) = 0 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "rm: ", 4) = 4 write(2, "cannot remove `/usr/sbin/squid\'", 31) = 31 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, ": Operation not permitted", 25) = 25 write(2, "\n", 1) = 1 close(1) = 0 exit_group(1) = ?

Kinjo
() автор топика
Ответ на: комментарий от Kinjo

> unlink("/usr/sbin/squid") = -1 EPERM (Operation not permitted)

хватило бы вот этой строчки

а дистрибутив какой? не fedora часом? может быть selinux шалит?

anonymous
()
Ответ на: комментарий от anonymous

Да, диструбитв Fedora Core 5. И у меня тоже серьёзные подозрения на SELinux, но он у меня отключён.
Т. е. в /etc/selinux/config у меня строчка
SELINUX=disabled

и в messages такие строчки
Oct 3 12:26:16 mail kernel: SELinux: Disabled at runtime.
Oct 3 12:26:16 mail kernel: SELinux: Unregistering netfilter hooks

Может ещё поможет вывод команды
#lsattr /usr/sbin/squid

suS--adAc---- /usr/sbin/squid

Kinjo
() автор топика
Ответ на: комментарий от Kinjo

У меня (FC6):

lsattr /usr/sbin/squid ------------- /usr/sbin/squid

suS--adAc---- /usr/sbin/squid чем-то напоминает мне случай rootkit'а несколько лет назад, правда там было suSi-adAc----

mcduck
()

Может быть immutable флаг (append-only) стоит не на файле, а на каталоге?

annoynimous ★★★★★
()
Ответ на: комментарий от Kinjo

Ну дак у вас стоит атрибут "append only", сделайте chattr -a /usr/sbin/squid, а вобще, если это правда насчет rootkit'а, то у вас и было "suSi-adAc----", так как исходно вы делали chattr -i...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.