Не могу удалить файлы
Есть удаленный сервер на FreeBSD, физического доступа нет, могу подключаться по SSH или по FTP. Обычно подключаюсь по FTP с логином ftpuser с целью заливки/скачивания файлов. Сервер для меня б/у, т.е я не первый владелец, не я ставил, не я настраивал, черный ящик в общем.
Проблема: не могу удалять некоторые файлы/каталоги. Filezilla указывает напротив проблемных файлов права -rw-r--r--, владелец/группа "ftpuser wheel", скачать файл могу, удалить не могу, ошибка Код:
Статус: Удаление "/usr/local/www/apache22/data/doc/weather/11.14/141114.xls" Пробую команды: Получил такой диалог: Код:
rm -r /usr/local/www/apache22/data/doc/weather/11.14 Код:
rm -rf /usr/local/www/apache22/data/doc/weather/11.14 Код:
%ls -l /usr/local/www/apache22/data/doc/weather/11.14 Код:
ls -l /usr/local/www/apache22/data/doc/weather/11.14/141114.xls Код:
%ls -l /usr/local/www/apache22/data/doc/weather/11.14/151114.xls Код:
%pw groupshow wheel |
Конечно отличается
Удалять файлы в этом каталоге помимо root может только ftpuser. admin на это прав не имеет. |
Цитата:
Код:
Статус: Удаление "/usr/local/www/apache22/data/doc/weather/11.14/141114.xls" |
Насколько я вижу, тут проблема в том, что ftp клиент не находит файла.
Вы не показали какие права на каталог http://www.linuxrsp.ru/artic/art2.html У вас неправильно выставлены права на каталог. |
начнём с конца. ftpuser в группе wheel это эпично.
проверить степень эпичности просто. - зайдите по ssh админом. Код:
ssh admin@host Код:
sudo -s 1. sudo не найден (это печально, потому что сервер, от которого нет рута это либо сразу reinstall, либо нужен доступ к серверу, single user и установка пароля руту) 2. запрос пароля (пользователя admin) и вы рут 3. вы просто рут без запроса пароля. в третьем варианте у вас серьёзное подозрение на потенциальную дыру: ftpuser теоретически может то же самое, что не есть гуд. Смотрите: у вас файл "не виден" Код:
ls -l /usr/local/www/apache22/data/doc/weather/11.14/141114.xls Код:
ls -l /usr/local/www/apache22/data/doc/weather/11.14/\ 141114.xls ну и Код:
rm /usr/local/www/apache22/data/doc/weather/11.14/\ 141114.xls Код:
su -u ftpuser |
Цитата:
Код:
%sudo -s С непокорным файлом удалось-таки разобраться. Зашел по SSH от имени ftpuser, а не admin, долбанул командой rm -rf и теперь уже сработало. Почему filezilla не смогла в удаление файла, который очевидно ранее в ноябре 2014г был через неё же и залит на сервер, я так и не понял. С рутом, конечно, надо бы что-то решить. Попробую договориться насчет визита в гости к серверу. |
Блин, я чувствую, что у меня уже красноглазие развивается с этим линуксом.
Сначала я научился расправляться с неудаляемыми файлами через SSH вместо FTP Потом я столкнулся с папкой, которая даже так удаляться отказалась. Грохал такие от имени Admin Потом начались папки, неподдающиеся даже админу, нашел способ грохать их через web-админку сайта (солянка какая-то из разношерстных прав доступа образовалась за годы работы сервера). Потом нашел папку, которая не грохалась ни через FTP, ни через SSH, ни юзером, ни админом, ни даже через админку сайта. Пошел выбил у руководства пароль от рута, грохнул таки и эту непослушную директорию и уже собрался праздновать победу... Ага щас. Теперь нашелся файл, который даже рутом не грохается... потому что у него в названии кириллица, которая даже в консоль ни вводится, ни копируется - ни-фи-га. И с этим файлом никак нельзя взаимодействовать. Есть способы это как-то обойти? |
dislike, как вариант, если позволяет система, перемонтировать с правильным iocharset или codepage (устанавливается в опциях команды mount)
второе - у файлов есть понятие inode Соотв. можно попробовать указать его впрямую, через небольшую обертку над командами. http://linuxg.net/how-to-remove-files-by-their-inode/ |
cd каталог
files=$(ls *) rm $files И насчёт перекодирование файлов гугли iconv и convmv man iconv |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Похоже вам достались ещё те авгиевы конюшни :) |
lxa85, ruslandh, спасибо за советы, но я нашел ещё более простое и изящное решение (не знаю, почему сразу в голову не пришло) - подключился из FileZilla сразу от имени root и уже из её интерфейса спокойно прибил всё что захотелось без проблем с кириллицей и пр.
Кстати, раз уж появился доступ к руту, не подскажете синтаксис команды "для данной папки и всех вложенных файлов и папок назначить владельцем пользователя ftpuser и дать ему полный доступ на чтение/выполнение/запись/удаление? Понять бы ещё, с каким доступом работает админка сайта (тоже что ли какая-то учетка для неё существует, третья уже?) и не встанет ли раком весь сайт, если переписать права командой выше? |
Код:
chown -R ftpuser: /путь_до_каталога Код:
cmod -R a+rцx /путь_до_каталога PS - папки на рабочем столе, а на жёстком диске - каталоги или директории. |
Цитата:
Посмотреть что лежит в /etc/passwd по наличию пользователей. (# cat /etc/passwd) Посмотреть из-под какого пользователя работает веб сервер. (# ps -ef) |
Цитата:
Код:
root:*:0:0:Charlie &:/root:/bin/csh |
Просто www доступ и ftp доступ имеют разные права, т.к. сервер http (apache22) и сервер ftp (proftpd (?) ) работают с правами разных пользователей.
|
Цитата:
Например, /data - это корневая папка сайта. Через FTP пробую создать каталог /data/doc/feedback - отказ. Через админку создал - нормально создалось. Через FTP пытаюсь создать в каталоге /data/doc/feedback файл - опять отказ! Так работать невозможно. В любом другом каталоге в /data/doc через FTP всё создается и удаляется, именно в этом /feedback - нифига. А должно работать. В общем, как теперь сделать так, чтобы хотя бы в отношении "/data/doc" и админка сайта и ftpuser имели равные полные права на чтение/запись/удаление и чтобы эти права наследовались в том же виде на все подкаталоги и файлы, в т.ч вновь создаваемые от имени любой из этих УЗ ? |
Цитата:
|
Код:
mcx# id ftpuser Да и вообще не понятно, почему FileZilla утверждает, что www относится к группе wheel, а сама BSD утверждает, что никакого www в этой группе нет? http://meson.ad-l.ink/6QNfyqs8X/image.png |
Подзабыл фряшку – лет 10 не пользовал, так что как посмотреть членство в группах не помню, но вроде /etc/group всё как обычно должно быть.
Ещё вспомнил. У того же proftpd и наверно апача есть возможность настроить как пользователя, так и группу, от которых они работают. Например, Group www в proftpd.conf |
Цитата dislike:
id ftpuser uid=1002(ftpuser) gid=1002(ftpuser) groups=1002(ftpuser),0(wheel),80(www) » вот конкретно из этого (ftpuser в группе wheel) следует вывод, что для порутания вашей системы почти всё готово. Цитата dislike: Никак не соображу, отсюда можно сделать вывод, что ftpuser и www в одной группе www или нет? » Нет никакой "одной группы". Есть две группы, ftpuser и www. И есть два юзера: www и ftpuser. Юзер ftpuser входит в обе группы. Юзер www входит только в группу www. Запутано? Есть немного, особенно радует название группы ftpuser. Теперь про эффекты, которые возникают. если у вас есть файл с владельцем www:www и правом на запись по владельцу и группе, то оба юзера (www и ftpuser) смогут их удалять и править. если у вас есть файл с ftpuser:ftpuser и правами на запись по владельцу и группе, то ftpuser и может менять и удалять, а www - нет. при чём если пользователь ftpuser перезаливает файл, то перезаливает он его с правами ftpuser:ftpuser, и www его уже удалять не может. Принцип понятен? Вообще если я правильно понял вашу хотелку (заливаем по ftp, удаляем по ftp, по http только читаем {качаем}), то необходимо все файлы отдать ftpuser:ftpuser и всё. никто "в чужую группу" входить не должен (и прежде всего ftpuser в wheel). |
Время: 00:19. |
Время: 00:19.
© OSzone.net 2001-