Прошу прощения, что криво, но хотелось именно процитировать.
Еще с дремучего издания Андрея Робачевского известно, что символьная ссылка ссылается на имя файла (у нее даже размер равен имени файла с путем :-)), т.е. несмотря на то, что символьная ссылка имеет права 0777, это не значит, что будет полный доступ к файлу. Тем не менее, не поленился проверить. Думаю, комментарии излишни:
root@daczcsvst60pde:/# ln -s /etc/shadow /etc/shadow.lnk
root@daczcsvst60pde:/# ll /etc/shadow*
-rw-r----- 1 root shadow 1218 Feb 6 17:50 /etc/shadow
-rw------- 1 root root 1218 Feb 6 17:50 /etc/shadow-
lrwxrwxrwx 1 root root 11 Mar 14 22:04 /etc/shadow.lnk -> /etc/shadow
svsoldatov@daczcsvst60pde:/$ cat /etc/shadow
cannot read /etc/shadow: Permission denied
svsoldatov@daczcsvst60pde:/$ cat /etc/shadow.lnk
cannot read /etc/shadow.lnk : Permission denied
Может, я что неправильно понял?
5 comments:
Это не может соответствовать действительности по одной простой причине. Любой юзер может создать ссыклу на любой файл (у него только должны быть права на директорию где он создает ссылку, но не на сам файл на который ссылка создается). Далее, раз я создал ссыклу, я могу назначать права на нее. Если бы права на ссылку полностью определяли доступ, то я могу получить полный доступ к любому файлу.
Скажу более, раз ты создал ссылку - ты у нее владелец => можешь все. Это про симлинке. С хардлинками так не получится: после ln создастся файлик с правами, эквивалентными оригиналу - он не будет твой и права там будут как у оригинала, т.е. ничего не изменится :-)
Насколько я понимаю хардлинки, новый файлик не создается, только новый референс на существующий файл (inode тот же).
Именно так! Все хардлинки одинаковы, равноправны. Флажок -i в ls покажет, собственно, inod.
http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0
Post a Comment