Једно стручно трик Линукс питање са разговора за посао

Ево једног занимљивог питањца из реалног света и са реалног разговора за посао који се заиста десио. Питање гласи: Како управљати привилегијама – ако /bin/chmod није извршни фајл?

Дакле, визуализација проблема би била оваква….неко је урадио chmod -x /bin/chmod па команда chmod више не ради јер није извршна…како је вратити да буде извршна и да ради као и раније али уз пар отежавајућих окoлности – ради се само са оним што имаш сад на располагању – забрањено је рестартовати сервер па радити из лајв Линукса, користити било какав third-part софтвер, рачунати као да тај компјутер нема USB портове, NAS, било какав додатни хардвер, ни блутут (bluetooth) ни никакве додатне програме осим оних најосновнијих и наравно, забрањено је копирати chmod са других дистрибуција.

Ово је иначе питање да би се сконтао начин размишљања једног Линуксаша (који није провео неколико дана у неспавању и није попио кило Гуаране и покиле кафе да би остао у стању свести пре теста) у некаквој таквој ситуацији. Реално – ко би икад урадио тако нешто, али ето – могуће је и како се онда изборити са тим? Да визуализијем питање…кроз командну линију!?

Дакле, креиран фајл ‘testfajl.txt’, додате му неке пермисије, уклоњена execute пермисија са chmod-a и датом фајлу (или било којем другом) више није могуће мењати привилегије кроз chmod – јер исти више није извршан.

Четири решења ћу дати испод али мора да се кликне у њих (да не би било баш на извол’те, ако сте решили да размислите сами)

Решење број 1
[root@kompjuteras ~] cp /bin/cat chmod-temp
[root@kompjuteras ~] cp /bin/chmod chmod-temp
cp: overwrite ‘chmod-temp’? y
[root@kompjuteras ~] ./chmod-temp +x /bin/chmod
[root@kompjuteras ~] chmod 644 testfajl.txt
[root@kompjuteras ~]
# Сад chmod ради
Решење број 2
[root@kompjuteras ~] cp /bin/cat chmod-temp 
[root@kompjuteras ~] cat /bin/chmod > chmod-temp 
[root@kompjuteras ~] ./chmod-temp +x /bin/chmod 
[root@kompjuteras ~] chmod 644 testfajl.txt 
[root@kompjuteras ~]
# Сад chmod ради
Решење број 3
[root@kompjuteras ~] install --mode=u=rwx,g=rx,o=rx /bin/chmod chmod-temp
[root@kompjuteras ~] install --mode=u=rwx,g=rx,o=rx chmod-temp /bin/chmod
[root@kompjuteras ~] # Може и: ./chmod-temp +x /bin/chmod
[root@kompjuteras ~] chmod 755 testfajl.txt
[root@kompjuteras ~]
# Chmod опет ради
Решење број 4

Реинсталирати пакет у којем се налази дата команда, наћи је преко whatprovide и урадити реинсталацију