Это зависит от того, какой менеджер пакетов вы используете и какая у вас среда.
Linux сам по себе не имеет таких инструментов, потому что многие программы существуют для Linux, и многие из них могут требовать специальной обработки файлов или режимов выполнения (т.е. setuid двоичные файлы или каталоги типа почтового ящика с назначенными специальными привилегиями), в отличие от Mac (я предполагаю OS X), потому что Mac более закрытый пул и разработчики OS X знают, какие программы будут предустановлены на типичный Mac и имеют рекомендации по установке пакетов.
Если менеджер пакетов может отлаживать такие проблемы, то - отлично, вам следует проверить документацию по менеджеру пакетов на этот счет.
Если вы запутались в корневой файловой системе, то безопасно сначала сделать резервную копию текущего списка привилегий:
find / -xdev -exec ls -ld '{}' ';' >>/root/perms.lst
(do that for each mount point related to system binaries, for example, /usr)
затем сбросить все обратно в root (0:0). Если у вас были какие-либо специальные setuid двоичные файлы, которые будут затронуты таким сбросом, вы сможете сбросить их статус позже, изучив файл /root/perms.lst.
Для разрешений chmod сложнее посоветовать что-то вроде chmod 644 или chmod 755, вы должны изучить свои файлы перед внесением изменений, потому что это может быть связано с безопасностью.
Сsed
:
sed 's/^\(..\)./\11/' infile > expected_result
(..)
известно как групповое совпадение, и оно захватывает первые два символа, а \1
является обратной ссылкой -. точка .
в регулярном выражении соответствует любому одиночному символу.
если это было не 3 rd место, а N th , вы можете сделать следующее, чтобы изменить 3 rd символ места с 1
.
sed 's/^\(.\{2\}\)./\11/' infile
Или как показано ниже, как указано @steeldriver:
sed 's/./1/3' infile