Путаница в вариантах chmod

У меня есть файл с именем test.sh. Я использовал chown, чтобы установить его владельца в user1.

chown user1 test.sh

Затем я играю с параметрами chmod, чтобы увидеть, правильно ли я их понимаю.

chmod 400 test.sh

Я могу прочитать файл, но не могу его изменить или выполнить.

chmod 200 test.sh

Я могу изменить файл через командную строку, но не могу ее прочитать или выполнить.

chmod 100 test.sh

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

Что я делаю неправильно здесь?

1
задан 3 August 2017 в 18:21

6 ответов

Основные разрешения:

Чтение: r–– → 4 Запись: –w– → 2 Выполнение: ––x → 1

Наиболее часто используемые комбинации:

Чтение: r–– → 4 Чтение и выполнение: r–x → 4 + 0 + 1 = 5 Запись: –w– → 2 Чтение, запись и выполнение : rwx → 4 + 2 + 1 = 7

Дальнейшее чтение:

Чтение и выполнение: r–x → 4 + 0 + 1 = 5 [!d9 ] Unix / Linux Permissions - учебник. Выполнить: ––x → 1
1
ответ дан 22 May 2018 в 19:52
  • 1
    Я заставлял терминал выполнять файл, не имея возможности его прочитать. Не могу поверить, что я этого не видел. Благодарю. – zindarod 3 August 2017 в 14:36
  • 2
    Пожалуйста, добавьте ссылку, предоставленную steeldriver, на ваш ответ. Это устранит большую часть путаницы. – zindarod 3 August 2017 в 14:45
  • 3
    @ Zindarod, сделано. Сегодня я намерен выработать этот ответ. – pa4080 3 August 2017 в 14:50

Основные разрешения:

Чтение: r–– → 4 Запись: –w– → 2 Выполнение: ––x → 1

Наиболее часто используемые комбинации:

Чтение: r–– → 4 Чтение и выполнение: r–x → 4 + 0 + 1 = 5 Запись: –w– → 2 Чтение, запись и выполнение : rwx → 4 + 2 + 1 = 7

Дальнейшее чтение:

Чтение и выполнение: r–x → 4 + 0 + 1 = 5 Unix / Linux Permissions - учебник. Выполнить: ––x → 1
1
ответ дан 18 July 2018 в 09:09

Основные разрешения:

Чтение: r–– → 4 Запись: –w– → 2 Выполнение: ––x → 1

Наиболее часто используемые комбинации:

Чтение: r–– → 4 Чтение и выполнение: r–x → 4 + 0 + 1 = 5 Запись: –w– → 2 Чтение, запись и выполнение : rwx → 4 + 2 + 1 = 7

Дальнейшее чтение:

Чтение и выполнение: r–x → 4 + 0 + 1 = 5 Unix / Linux Permissions - учебник. Выполнить: ––x → 1
1
ответ дан 24 July 2018 в 19:15

Вы также можете попробовать это.

Это добавит разрешение на выполнение владельцем

chmod u+x file

Это приведет к удалению разрешения на выполнение от владельца, если бы у него было это.

chmod u-x file

первый символ означает, кто повлияет на это изменение.

u = пользователь - владелец g = группа - группа владения o = другая - любая a = все - то же, что и ugo

второй символ означает, что вы добавите или удалите разрешения

u = пользователь - владелец - = удалить разрешение g = группа - группа владения

Третий символ означает, что разрешение на использование

для файлов:

- = удалить разрешение w = write - изменить содержимое файла, удалить, переименовать o = other - any

для папок:

w = записать - изменить содержимое файла, удалить , rename w = write - create, удалять файлы из каталога x = execute - cd в каталог

Если вы хотите добавить разрешение на запись для владельца ко всем файлам в папке, запустите

chmod u+w -R folder

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

chmod ugo+r file
chmod ug+rx file
3
ответ дан 22 May 2018 в 19:52
  • 1
    Преимущества такого подхода: 1) Нам не нужно делать какие-либо расчеты и обращать внимание на то, какое число или какое место должно быть - более читаемым для человека; 2) Когда мы используем восьмеричные, мы меняем разрешения всего файла или папки, в то время как таким образом мы просто настраиваем требуемую часть разрешений ... При этом, когда этот подход применим, мы избегаем немых ошибок. – pa4080 3 August 2017 в 15:48
  • 2
    Да, вы правы, но я думаю, что этот метод легче понять для абсолютного новичка. Кроме того, чтобы избежать ошибок, вы можете использовать = вместо + или -. Но я согласен, что восьмеричная версия более мощная – FK-VH 3 August 2017 в 18:26

Вы также можете попробовать это.

Это добавит разрешение на выполнение владельцем

chmod u+x file

. Это приведет к удалению разрешения на выполнение от владельца, если он у него есть.

chmod u-x file

первый символ означает, кто повлияет на это изменение.

u = пользователь - владелец g = группа - группа владения o = другая - любая a = все - то же, что и ugo

второй символ означает, что вы добавите или удалите разрешения

u = пользователь - владелец - = удалить разрешение g = группа - группа владения

Третий символ означает, что разрешение на использование

для файлов:

- = удалить разрешение w = write - изменить содержимое файла, удалить, переименовать o = other - any

для папок:

w = записать - изменить содержимое файла, удалить , rename w = write - create, удалять файлы из каталога x = execute - cd в каталог

Если вы хотите добавить разрешение на запись для владельца ко всем файлам в папке, запустите

chmod u+w -R folder

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

chmod ugo+r file chmod ug+rx file
3
ответ дан 18 July 2018 в 09:09

Вы также можете попробовать это.

Это добавит разрешение на выполнение владельцем

chmod u+x file

. Это приведет к удалению разрешения на выполнение от владельца, если он у него есть.

chmod u-x file

первый символ означает, кто повлияет на это изменение.

u = пользователь - владелец g = группа - группа владения o = другая - любая a = все - то же, что и ugo

второй символ означает, что вы добавите или удалите разрешения

u = пользователь - владелец - = удалить разрешение g = группа - группа владения

Третий символ означает, что разрешение на использование

для файлов:

- = удалить разрешение w = write - изменить содержимое файла, удалить, переименовать o = other - any

для папок:

w = записать - изменить содержимое файла, удалить , rename w = write - create, удалять файлы из каталога x = execute - cd в каталог

Если вы хотите добавить разрешение на запись для владельца ко всем файлам в папке, запустите

chmod u+w -R folder

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

chmod ugo+r file chmod ug+rx file
3
ответ дан 24 July 2018 в 19:15
  • 1
    Преимущества такого подхода: 1) Нам не нужно делать какие-либо расчеты и обращать внимание на то, какое число или какое место должно быть - более читаемым для человека; 2) Когда мы используем восьмеричные, мы меняем разрешения всего файла или папки, в то время как таким образом мы просто настраиваем требуемую часть разрешений ... При этом, когда этот подход применим, мы избегаем немых ошибок. – pa4080 3 August 2017 в 15:48
  • 2
    Да, вы правы, но я думаю, что этот метод легче понять для абсолютного новичка. Кроме того, чтобы избежать ошибок, вы можете использовать = вместо + или -. Но я согласен, что восьмеричная версия более мощная – FK-VH 3 August 2017 в 18:26

Другие вопросы по тегам:

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