Чому моя команда ls кореневого суперпользователя Linux не показує всі файли?


5

Якщо я ввійду в систему, а потім перейдіть до кореня суперпоширення через:

sudo su -

Я зараз у кореневому каталозі. Я можу відобразити список файлів і каталогів через ls. Однак, схоже, небагато каталогів, здається, не існують. Наприклад, я можу:

cd /svr/www

і потрапляють у каталог www. svrКаталог не відображається , коли я вводжу lsкоманду від кореня, і не здається, в будь-якому з каталогів, які показані.

Що я пропускаю?


Який специфічний аромат "Unix" це? Це справжня System V 1970-х років, або ви використовуєте якусь похідну, наприклад, о, я не знаю, Linux чи BSD? Будь ласка, назвіть його таким, яким він є насправді, а не якимсь узагальненим терміном, як "Unix".
allquixotic

Змінено на Linux. Дякуємо, що вказали на це.
UnixNewbie2012

Після того, як ви sudo su -перейдете cdдо будь-якого іншого каталогу чи це перша команда, яку ви набираєте ls?
Ліпонго

Відповіді:


7

Після команди, sudo su -я думаю, ви виявите, що ви знаходитесь в домашньому каталозі root, а /rootне в кореневому каталозі /. Значить ls, не показуватимуть /srv. Я пропоную вам скористатися, pwdщоб перевірити, в якій папці ви перебуваєте.


1
@allquixotic (та інші) Відповідь ОП не була дублікатом попереднього запитання!
StarNamer

2

Якщо ви знаходитесь в /каталозі та вводите ls, ви не побачите "рекурсивних" підкаталогів. Ви побачите лише каталоги, які є прямими дітьми поточного каталогу. Тож, щоб побачити, /srv/wwwвам доведеться спочатку, cd /srvа потім ls.

Є така річ, як рекурсивна ls; однак, якщо вам потрібні цілі шляхи, findце краща альтернатива.

Дивіться це питання StackOverflow, яке вже розглянуло тему рекурсивного переліку файлів / каталогів.


Вибачте, я написав помилку у вищезазначеному питанні. Я мав на увазі, що 'svr' не відображається під коренем.
UnixNewbie2012

Ви не бачите його з #(кореневої) оболонки чи з $оболонки? Дозволи можуть бути встановлені таким чином, що тільки користувач root може бачити каталог ... наприклад, chmod o-x /міг би це зробити (якщо /він не виконується).
allquixotic

# оболонка. Яка різниця між # та $ shell як root?
UnixNewbie2012

#є кореневою оболонкою. Якщо ви "увійшли" як root, ваша оболонка буде #. Якщо ви ввійшли як звичайний користувач, ваша оболонка буде $. Корінь не повинен взагалі страждати від будь-яких дискреційних обмежень дозволу на контроль доступу, а це означає, що chmodі chownподібні дозволи на каталоги / файли повинні ігноруватися, і не повинно бути причиною такого поведінки.
allquixotic

Ще одне, що можна спробувати, це ls -la- додаткові параметри командного рядка також показуватимуть, наприклад, приховані файли ... хоча зазвичай єдині приховані файли - це ті, що починаються з крапкового .символу; вони завжди приховані від звичайної lsкоманди.
allquixotic
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.