chmod 001 или 111? Разрешения Unix для исполняемых файлов, вопрос

Эти команды спасли мне жизнь

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
0
24.01.2020, 05:53
2 ответа

Прежде всего позвольте мне объяснить основы chmod.

Chmod — это команда Unix, которая позволяет вам устанавливать разрешения, определяющие, кто может получить доступ к файлу и как они могут получить к нему доступ.

Вы можете установить эти разрешения для 3 разных категорий.

  1. Владелец файла(U ser)
  2. Члены группы, которой принадлежит этот файл(G группа)
  3. Все остальные(О остальные)

Есть два способа изменить разрешения:

1 )С помощью буквенно-цифровых символов

Разрешения разделены на 3 категории:

а. R е
б. W обряд
в. e X ecute

Вы можете установить разрешения следующим образом :Давайте представим файл с именем file.shМы хотим установить разрешения так, чтобы

  • пользователь может r ead, w rite, e x ecute
  • группа может r читать,w обряд
  • другие могут r читать

Все, что нам нужно сделать, это бежать

chmod u=rwx,g=rw,o=r file.sh

Или, возможно, мы хотим сделать его исполняемым для всех, поэтому запускаем

chmod +x file.sh

и если вы хотите противоположную приведенной выше команду, мы можем сделать

chmod -x file.sh

2 )Используя восьмеричные числа

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

  • 4 означает "прочитать"
  • 2 означает "запись"
  • 1 означает «выполнить»
  • 0 означает «нет разрешений».

Добавляя эти числа, мы можем легко установить индивидуальные разрешения. Итак, если мы возьмем предыдущий пример, это будет означать

chmod 764 file.sh

7 — результат разрешений 4+2+1, 6 — 4+2+0 и 4 — 4+0+0

Вы можете просмотреть дополнительную информацию, запустивman chmod


Вернемся к вашей проблеме. Хотя ваш вопрос неясен, я бы сказал, что вы должны использовать

chmod 711 hello

Это означает, что вы (, владелец ), имеете полные права, ваша группа может только выполнять действия, и то же самое касается всех остальных.

или (в зависимости от того, как вы интерпретируете слова "все пользователи")

chmod 771 hello

Это означает, что вы (, владелец ), имеете полные права, то же самое касается и вашей группы, но все остальные могут только выполнять.

Теперь я должен упомянуть, что вы могли бы использовать что-то вроде

chmod 001 hello

или

chmod 111 hello

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

1
28.01.2020, 02:29

Вопрос не совсем ясен, но я предполагаю, что они хотят что-то вроде 771 или любую комбинацию nn1. Однако я не думаю, что 001 — это именно то, что они ищут. Они только указывают, что все пользователи должны иметь возможность выполнять, а не читать или писать, поэтому нет причин, по которым владелец/группа не может читать/писать.

Кроме того, если вы установили разрешения на 001 , вы не смогли бы выполнить, поэтому, по крайней мере, они хотят 111.

1
28.01.2020, 02:29

Теги

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