🔹 Используем утилиту setfacl. По умолчанию её может не быть в системе.
setfacl -m u::rwx,g::rx,o::x /usr/bin/chmod
🔹 Можно запустить утилиту chmod, передав её явно динамическому компоновщику. В контексте данной заметки считайте компоновщик интерпретатором для программы chmod. В разных дистрибутивах он может иметь разное название и расположение. Пример для Debian 11:
/usr/lib64/ld-linux-x86-64.so.2 /usr/bin/chmod +x /usr/bin/chmod**
🔹 Можно скопировать права с любого исполняемого файла и записать содержимое утилиты chmod в этот файл. Получается рабочая копия chmod. Создаём пустой файл с правами утилиты ls.
cp --attributes-only /usr/bin/ls ./new_chmod
Копируем содержимое утилиты chmod в созданный файл:
cat /usr/bin/chmod > ./new_chmod
Можно использовать:
/new_chmod +x /usr/bin/chmod
🔹 Почти то же самое что и предыдущий вариант только проще:
install -m 755 /usr/bin/chmod ./new_chmod
или так:
rsync --chmod=ugo+x /usr/bin/chmod ./new_chmod
🔹 Если умеете программировать, то, пример с Python:
python -c "import os;os.chmod('/usr/bin/chmod', 0755)"👉 DevOps Portal