Чтобы установить бит закрепления в каталоге, почему команды chmod 1777
и chmod 3777
обе работают?
permissions
chmod
Ляо Чжуоди
источник
источник
passwd
бинарный файл был доступен для записи во всем мире, вы бы не смогли получить root-доступ, изменив его, как вы говорите, но вы могли бы заменить его на какой-то другой бинарный файл, который каждый после этого будет запускать, думая, что это такpasswd
.Ответы:
Каждое число (также называемое восьмеричным, потому что оно является base8) в этой группе представляет 3 бита. Если вы превратите его в двоичный файл, это сделает его намного проще.
1 = 0 0 1
3 = 0 1 1
5 = 1 0 1
7 = 1 1 1
Таким образом, если вы сделали 1777, 3777, 5777 или 7777, вы бы установили бит закрепления, поскольку третий столбец будет равен 1. Однако при 3777, 5777 и 7777 вы дополнительно устанавливаете другие биты (SUID для первого столбца и SGID для второго столбца).
И наоборот, любое другое число в этом месте (максимум до 7) не будет устанавливать бит закрепления, потому что последний столбец не будет равен 1 или «включен».
2 = 0 1 0
4 = 1 0 0
6 = 1 1 0
источник
clear
столбцов Группа владельцев и другие.Права доступа, передаваемые в качестве аргумента chmod, указываются как восьмеричное значение. Каждая цифра в значении представляет три бита. Если даны три цифры, вы устанавливаете биты чтения, записи и выполнения для владельца файла, группы и других (всех остальных). Если даны четыре цифры, крайний левый номер устанавливает биты setuid, setgid и sticky. Октябрь 1 устанавливает липкий бит. Octal 2 устанавливает бит setgid. Octal 2 + восьмеричное 1 - восьмеричное 3, которое устанавливает бит setgid и бит sticky.
источник
binary or
оператора. Однако, как вы указали, в этом случае это дает тот же результат, и гораздо больше людей знакомы с дополнением.