Значение по умолчанию набора permisson для недавно папок и файлов в Linux

Этот поток очень интересен, потому что я задавался вопросом та же самая вещь. Я могу жить с необходимостью переименовать 20 файлов из 50 000, если имена файлов должны быть 140 символами или меньше, но 45 или меньше не выполнимо (в моей ситуации), потому что она потребовала бы, чтобы я переименовал слишком много файлов.

Я задал тот же самый вопрос непосредственно Synology (даже указывающий на них на данную статью), и их ответ был интересен: "Предел имени файла зашифрованной доли составляет 143 байта. Это могут быть до 140 чистых латинских символов или 45 CJK (китайский язык, японский язык и корейский язык) символы".

После этого ответа я сделал больше тестирования меня, тестируя с файлами, которые равнялись 45, 46, 140, 143 и 144 символа. Мои тесты показывают, что файлы, до 143 символов (не байты, вопреки тому, что Synology сказала мне) будут зашифрованы, но файлы с 144 символами, ПРЕДОТВРАТЯТ папку, которая будет зашифрована. Однако СООБЩЕНИЕ ОБ ОШИБКЕ, что я добираюсь от своего NAS, - то, что имя файла должно быть меньше чем 45 символами (тогда как действительность - то, что это должны быть меньше чем 144 символа).

Я не сделал тестов с символами CJK... Но, любому читающему это, кажется, что Вы в порядке до 143 символов, несмотря на то, что система говорит Вам.

1
29.07.2013, 21:30
1 ответ

Использование chmod для изменения полномочий, команды chown для изменения владения файлов и каталогов.

владение

Для изменения владения каталога, можно использовать следующую команду:

$ sudo chown -R me /srv/www/htdocs

Примечание: мы используем sudo средство для подъема наших полномочий до того же уровня, как поддерживают эти команды, не имея необходимость становиться корнем.

полномочия

Изменить полномочия на этом каталоге:

$ sudo chmod -R 777 /srv/www/htdocs

umask

Используя команду umask настраивает Ваш терминал так, чтобы, когда файлы и каталоги создаются, на их полномочия можно было влиять немного. Осторожность должна соблюдаться при использовании umask с тех пор существуют ситуации, где это не даст Вам полномочия точно способ, которым Вы думаете.

Для каталога это кажется прекрасным:

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; mkdir blah;ls -l|grep blah;done
umask: 001
drwxrwxrw-   2 saml saml     4096 Jul 29 14:39 blah
umask: 002
drwxrwxr-x   2 saml saml     4096 Jul 29 14:39 blah
umask: 003
drwxrwxr--   2 saml saml     4096 Jul 29 14:39 blah
umask: 004
drwxrwx-wx   2 saml saml     4096 Jul 29 14:39 blah
umask: 005
drwxrwx-w-   2 saml saml     4096 Jul 29 14:39 blah
umask: 006
drwxrwx--x   2 saml saml     4096 Jul 29 14:39 blah
umask: 007
drwxrwx---   2 saml saml     4096 Jul 29 14:39 blah

Однако это не позволит Вам иметь файлы точно способ, которым Вы могли бы предназначить их, чтобы быть с конкретным umasks. Посмотрите umask 006 например, ниже:

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; touch blah;ls -l|grep blah;done
umask: 001
-rw-rw-rw-   1 saml saml        0 Jul 29 14:40 blah
umask: 002
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 003
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 004
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 005
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 006
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah
umask: 007
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah

Существуют другие, это должно только выделить пример!

Таким образом, что необходимо сделать?

Учитывая Вы имеете дело с каталогом Apache (на основе пути /srv/www/htdocs) Я искал бы группу Unix что Ваш пользователь me и пользователь, которого выполняет Apache, как оба члены. Можно использовать groups команда для определения этого:

$ groups saml
saml : saml vboxusers jupiter newgrp

$ groups apache
apache : apache

Можно также использовать id команда:

$ id saml
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp)

$ id apache
uid=48(apache) gid=48(apache) groups=48(apache)

В моей системе Apache выполняется пользователем apache. Рассмотрение этого пользователя, Вы видите, что это находится в единственной группе apache также. Таким образом, один подход должен был бы добавить пользователя me этой группе.

Например, добавить me к apache группы:

$ sudo usermod -a -G apache me

Другой подход должен был бы создать другую группу и добавить обоих apache и me этой вторичной группе (например, apacheplus), и затем работавший эта команда /srv/www/htdocs:

$ sudo chgrp -R apacheplus /srv/www/htdocs
1
27.01.2020, 23:53
  • 1
    @tunghk_54 - Довольный это было полезно. Если Ваша проблема решила, отметьте это как принятый ответ так, чтобы другие знали, что это было разрешено. –  slm♦ 29.07.2013, 22:03

Теги

Похожие вопросы