Bisakah saya membuat tautan simbolis ke file yang tidak dapat saya akses?

8

[ Penafian : tidak ada niat jahat untuk pertanyaan ini, saya mencoba memahami perintah ln -s untuk proyek sekolah]

Katakanlah saya memiliki sistem file dengan folder rumah saya /home/anna,. /home/bobadalah folder yang tidak dapat saya akses, dengan file yang tidak dapat saya akses,foo.txt

Bisakah saya berhasil menjalankan ln -s /home/bob/foo.txtdi folder rumah saya? Apakah benar berasumsi bahwa jika saya bisa, itu akan menghasilkan tautan yang tidak dapat saya akses (dengan izin yang sama seperti foo.txt)?

Bagaimana jika saya tidak memiliki hak baca foo.txt, tidak hanya akses /home/bob?

Bagaimana dengan case terbalik, di mana saya bisa mengakses /home/bobtetapi tidak membaca foo.txt?

MyStackRunnethOver
sumber
4
Anda dapat membuat symlink ke hampir semua hal, termasuk hal-hal yang tidak ada.
muru
1
Symlink s secara teknis tidak memiliki izin sendiri, dan lsbiasanya akan menunjukkan hal itu lrwxrwxrwx, jadi sedikit salah untuk berbicara tentang izin tautan.
Henrik mendukung komunitas

Jawaban:

9

Ya, Anda dapat membuat tautan simbolis ke lokasi mana pun .

Bisakah saya berhasil menjalankan ln -s /home/bob/foo.txtdi folder rumah saya? Apakah benar berasumsi bahwa jika saya bisa, itu akan menghasilkan tautan yang tidak dapat saya akses (dengan izin yang sama seperti foo.txt)?

Benar. Batasan akses dari file target berlaku. Jika Anda membuat symlink ke sumber daya terbatas, Anda tidak akan dapat mengaksesnya. Bahkan tidak diharuskan bahwa file target benar-benar ada.

Demo:

$ ln -s /etc/shadow foo
$ file foo
foo: symbolic link to /etc/shadow
$ cat foo
cat: foo: Permission denied

$ ln -s /etc/nonexistent bar
$ file bar
bar: broken symbolic link to /etc/nonexistent

Bagaimana jika saya tidak memiliki hak baca foo.txt, tidak hanya akses /home/bob?

Jika Anda tidak memiliki izin pada direktori induk, Anda tidak dapat mengakses file yang ada . Jadi dengan symlink Anda masih tidak dapat mengaksesnya. Membuat symlink tidak memengaruhi izin.

Bagaimana dengan case terbalik, di mana saya bisa mengakses /home/bobtetapi tidak membaca foo.txt?

Sekali lagi, Anda dapat membuat symlink untuk itu, tetapi tidak mengakses file.

Arminius
sumber
2
@ 4o2 Karena ini benar, saya berkomentar di sini untuk menguraikan. Pertanyaan Anda lebih terkait dengan izin, yang Anda tandai dengan benar, dan selamat datang di Exchange. Ketika pengguna dibuat, mereka menerima direktori di bawah /homedan dimasukkan ke dalam grup dengan nama yang sama dengan nama pengguna mereka, yaitu pengguna bob berada di grup bob, sampai ia ditambahkan ke orang lain untuk mencegah pengguna membaca satu sama lain file. Di masa lalu, semua pengguna milik pengguna grup, yang memungkinkan niat jahat yang Anda singgung. Agar Anna dapat melihat file bob, bob harus menambahkannya ke grup bob.
eyoung100