LINUX.ORG.RU

Как сделать такую же ссылку, как в /proc/pid/root ?

 , , ,


0

1

Что это вообще такое? Это ведь не символьная ссылка точно, тккак через нее можно из чрута вылезти. Это не жесткая ссылка, тккак ссылается на другую фс. Это даже не никакой не bind, тккак другие фс при переходе по ней остаются на своих местах...

Вообщем я тоже хочу уметь создавать такие всемогущие линки)

В манах лгут: «This file is a symbolic link that points to the process's root directory» (Это неправда)

man hier:

/proc This is a mount point for the proc filesystem, which provides information about running processes and the kernel. This pseudo-filesystem is described in more detail in proc(5)

anonymous ()

тккак через нее можно из чрута вылезти

Дыа?

другие фс при переходе по ней остаются на своих местах

Шта?

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

другие фс при переходе по ней остаются на своих местах

root@localhost:/tmp# mkdir td
root@localhost:/tmp# mount /tmp -o bind td
root@localhost:/tmp# cd td
root@localhost:/tmp/td# ls
 td      ssh-PPyNcEjosJ8e       vln
root@localhost:/tmp/td# cd td
root@localhost:/tmp/td/td# ls
root@localhost:/tmp/td/td# 


root@localhost:/# cd /proc/self/root/tmp/td
root@localhost:/proc/self/root/tmp/td# ls
 td      ssh-PPyNcEjosJ8e       vln
root@localhost:/proc/self/root/tmp/td#

Дыа?

Что?

cyber_eagle ()

Что это вообще такое?

Символьная ссылка.

Это ведь не символьная ссылка точно

Это точно символьная ссылка.

тккак через нее можно из чрута вылезти

Нет, нельзя.

Вообщем я тоже хочу уметь создавать такие всемогущие линки)

ln -s тебе в помощь.

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

тккак через нее можно из чрута вылезти

Нет, нельзя.

root@localhost:/tmp# ls tcr
bin  lib  ofl  proc
root@localhost:/tmp# chroot ./tcr /bin/ls /    
bin  lib  ofl  proc
root@localhost:/tmp# chroot ./tcr /bin/ls /proc/1/root
acct			       mnt
bt_firmware		       nonplat_file_contexts
bugreports		       nonplat_hwservice_contexts
cache			       nonplat_property_contexts
charger			       nonplat_seapp_contexts
config			       nonplat_service_contexts
d			       oem
data			       persist
default.prop		       plat_file_contexts
dev			       plat_hwservice_contexts
etc			       plat_property_contexts
firmware		       plat_seapp_contexts
fstab.qcom		       plat_service_contexts
init			       proc
init.environ.rc		       res
init.nbq.fingerprint.rc        root
init.nbq.led.rc		       sbin
init.nbq.poweroff_charging.rc  sdcard
init.nbq.target.rc	       securefs
init.nbq.usb.rc		       sepolicy
init.qcom.fs.rc		       storage
init.qcom.rc		       su
init.qcom.sh		       sys
init.rc			       system
init.supersu.rc		       tombstones
init.target.rc		       ueventd.qcom.rc
init.usb.configfs.rc	       ueventd.rc
init.usb.rc		       vendor
init.zygote32.rc	       vndservice_contexts
init.zygote64_32.rc
root@localhost:/tmp# 
cyber_eagle ()
Ответ на: комментарий от cyber_eagle

Бгг, реально! Видимо симлинки для procfs на стороне ядра как-то хитро обрабатываются, не просто на основе записанного пути. А из юзерспейса /proc/$PID/root выглядит именно как симлинк.

Всё равно, создать такой же без написания модуля ядра или доступа к коду ядра не выйдет. Ну, я очень на это надеюсь, иначе это ужос получается.

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

Хорошо хоть для != root оно выдаёт permission denied.

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