У меня есть скрипт резервного копирования, который загружает файлы scp на другой сервер, используя пользователя upload
. Затем другой скрипт на целевом сервере передает их другому пользователю и устанавливает режим файла на 755
.
Если я затем использую SSH на целевом сервере, используя upload
пользователя, я могу удалить разбитые файлы. Разве они не должны быть только для чтения?
Вот как выглядит файл на целевом сервере, и пользователь upload
может удалить его.
-rwxr-xr-x 1 maciekish maciekish 650M Nov 1 01:07 2014-11-01-data.tar.bz2
Пользователь upload
был добавлен только с помощью useradd
и не является частью maciekish
группы.
При попытке удалить файл как upload
через ssh у меня возникает вопрос, хочу ли я удалить «обычный файл, защищенный от записи», и могу ли я сказать Y
и удалить его.
linux
security
file-permissions
Maciej Swic
источник
источник
rm
удалить файлы только для чтения?Ответы:
Файлы только для чтения; однако удаление файла не изменяет его, а только родительский каталог (он в основном удаляет файл из списка каталогов) - и похоже, что у вас есть полные права на запись в каталог.
Вы можете установить
sticky
бит - так называемый флаг «ограниченное удаление» - который будет препятствовать любому, кроме владельца, переименовывать или удалять файлы в этом каталоге (например, в/tmp
). Для этого запуститеchmod o+t *directory*
от имени владельца каталога.источник
В типичной файловой системе Unix любой файл может быть идентифицирован по произвольному количеству записей каталога, каждая из которых содержит «жесткую ссылку».
С точки зрения реализации существует разница между удалением последней записи каталога (жесткой ссылки) для файла и простым удалением одной ссылки из многих. Однако с семантической точки зрения нет никакой разницы.
Если существует несколько жестких ссылок на файл, запись в файл с использованием любой из них изменяет файл, который видят все они. Однако использование
rm
ссылки просто приводит к недоступности файла по этой ссылке. Другие ссылки на файл продолжают видеть тот же файл.источник
st_nlink
(«количество жестких ссылок») вstruct stat
. Проще говоря, каталоги содержат жесткие ссылки на файлы.