3

Я следую указаниям по настройке Dovecot MDA, и в инструкциях говорится, что /var /mail должен иметь следующие разрешения:

drwxrwsr-x 2 root mail

Когда я запустил ls -ld /var /mail, разрешения были такими:

drwxrwsr-x 3 vmail vmail

Поэтому я использовал chown, чтобы сменить владельца на root и mail, согласно инструкциям, и я думаю, что это сработает. Разрешения сейчас:

drwxrwsr-x 3 root mail

Что я не понимаю, в чем разница между 2 и 3? Я искал и искал, и ни один сайт, кажется, не имеет ответа. Я знаю, что некоторые из вас - профессионалы Linux, не могли бы вы сказать мне? Будет ли это иметь значение в отношении разрешений (2 против 3)? И могу ли я использовать chmod, чтобы изменить его? Благодарю.

3 ответа3

4

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

Передав опцию -i команде ls, вы можете узнать номер инода:

$ ls -i mail
199053 mail

(Просто пример.)

В этом случае номер индекса для почтового файла - 199053. Теперь, когда у вас есть номер инода, вы можете выполнить фактический поиск файла с таким же номером инода.

$ sudo find / -inum 199053

Однако в целом вам не стоит об этом беспокоиться, и вы можете игнорировать число.

2

Число после разрешения - это количество жестких ссылок на этот файл или каталог (точнее, на этот индекс), которое не имеет ничего общего с разрешениями; см. info ls . И это не имеет никакого отношения к количеству файлов, но каталоги внутри этого каталога влияют на число (см. Пункт 3.)

Позвольте мне объяснить это, но, пожалуйста, сначала ознакомьтесь с концепцией жестких ссылок . Короче говоря: вы можете думать об этом как о разных именах для одного и того же файла (который идентифицируется по номеру его инода).

Пояснения в примерах:

  1. Создайте файл foo со строкой "test"; ls показывает одну жесткую ссылку на этот номер инода:

    $ echo test > foo
    $ ls -l foo
    -rw-r--r-- 1 user users 5  6. Aug 13:13 foo
    
  2. Теперь создайте жесткую ссылку на тот же индекс, называемый bar

    $ ln foo bar
    $ ls -li foo bar
    10862620 -rw-r--r-- 2 user users 5  6. Aug 13:13 bar
    10862620 -rw-r--r-- 2 user users 5  6. Aug 13:13 foo
    

    ls идентифицирует для обоих файлов количество жестких ссылок , равное двум, и (включая опцию -i ), ls показывает, что оба имени относятся к 10862620 . И обратите внимание, что оба имени (foo и bar) относятся к одному и тому же файлу:

    $ cat foo
    test
    $ echo overwritten > bar
    $ cat foo
    overwritten
    
  3. Вас легко спутать с количеством жестких ссылок на каталоги. Потому что каждая директория имеет ссылку на себя . и ссылка на родительский каталог .. Итак, если у вас есть каталог, например, с 5 подкаталогами, количество жестких ссылок равно 7:

    $ mkdir -p foo/{1..5}
    $ ls -ld foo
    drwxr-xr-x 7 user users 4096  6. Aug 13:21 foo
    
    • foo находится в каталоге, откуда вы можете получить к нему доступ через foo . Номер 1.
    • foo имеет ссылку на себя. Номер 2
    • каждый субдиректор имеет ссылку на foo как .. С 3 по 7
0

Во втором поле указывается количество жестких ссылок для этого файла.

Допустим, у вас есть файл теста

ls -l test

-rw-r----- 1 nabil nabil 0 Jun 13 15:27 test

Как только вы создадите жесткую ссылку, вы получите это

ln test test_link

ls -l test

-rw-r----- 2 nabil nabil 0 Jun 13 15:27 test

См. Https://superuser.com/a/171946/107070.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .