Thursday, March 15, 2012

Linux - не все так плохо


Читал книжку, Linux глазами хакера, 3-е издание. Прочитал странную вещь:
Прошу прощения, что криво, но хотелось именно процитировать.
Еще с дремучего издания Андрея Робачевского известно, что символьная ссылка ссылается на имя файла (у нее даже размер равен имени файла с путем :-)), т.е. несмотря на то, что символьная ссылка имеет права 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:

whitenoise said...

Это не может соответствовать действительности по одной простой причине. Любой юзер может создать ссыклу на любой файл (у него только должны быть права на директорию где он создает ссылку, но не на сам файл на который ссылка создается). Далее, раз я создал ссыклу, я могу назначать права на нее. Если бы права на ссылку полностью определяли доступ, то я могу получить полный доступ к любому файлу.

Sergey Soldatov said...

Скажу более, раз ты создал ссылку - ты у нее владелец => можешь все. Это про симлинке. С хардлинками так не получится: после ln создастся файлик с правами, эквивалентными оригиналу - он не будет твой и права там будут как у оригинала, т.е. ничего не изменится :-)

whitenoise said...

Насколько я понимаю хардлинки, новый файлик не создается, только новый референс на существующий файл (inode тот же).

Sergey Soldatov said...

Именно так! Все хардлинки одинаковы, равноправны. Флажок -i в ls покажет, собственно, inod.

Igor Gots said...

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