Когато се използва обща директория за споделено ползване между един и същи потребител на различни linux дистрибуции, възниква проблемът със собствеността и правата на файловете. Те се определят не от името на потребителя, а от идентификаторите на потребителя (uid) и на групата (gid). Независимо, че името на потребителя и групата му съвпадат, то uid и gid при CentOS започват от 500, докато при Ubuntu - от 1000. Възниква резонният въпрос миогат ли да се променят тези идентификатори, уникални в рамките на собствената ОС, така че да съвпадат?
Задачата ни е да сменим uid и gid на потребител, използвайки командите usermod и groupmod:
# id angie
uid=500(angie) gid=500(angie) groups=500(angie),7(lp)
# usermod -u 1000 angie
# id angie
uid=1000(angie) gid=500(angie) groups=500(angie),7(lp)
# groupmod -g 1000 angie
# id angie
uid=1000(angie) gid=1000(angie) groups=1000(angie),7(lp)
В случая потребителят angie с uid=500 и група angie с gid=500 в две последователни стъпки ще смени своите идентификатори на uid=1000 и gid=1000. Важно условие е да не сме влезли в система като потребител, чийто идентификатори ще сменяме! Добър избор е суперпотребителят root.
Следващата стъпка е да променим собствеността на всички файлове, независимо къде се намират и от собственост на (стария) потребител 500 да станат такива на (новия) потребител 1000:
# find / -user 500 -exec chown -h 1000 {} \;
# find / -group 500 -exec chgrp -h 1000 {} \;
find претърсва цялата йерархична структура на системата за собственост на потребител/група 500, а chown и chgrp променят потребителя и групата съответно на намерените файлове на 1000. Това е необходимо, защото въпреки, че usermod и groupmod променят идентификаторите в домашната директория, потребителят би могъл да прави записи и извън нея.
Източници:
Коментари
Публикуване на коментар