В инструкциях сказано, что сценарий установки должен запускаться от имени пользователя root :, после чего он должен иметь полный доступ на запись ко всему.
Если программа не запускается от имени пользователя root и по-прежнему нуждается в доступе к /etc/init.d
после установки, это очень необычно , но может быть организовано, если это действительно необходимо:
1. )Создайте группу. Вы можете назвать его как хотите. Опция -r
создает его с использованием диапазона номеров GID, выделенного для системных групп, поэтому его нельзя путать с группами, связанными с обычными пользователями :
sudo groupadd -r proteios
2. )Добавьте пользователя, которому требуется доступ на запись к /etc/init.d
, в эту группу:
sudo usermod -a -G proteios someuser
3. )Назначьте владение группой в /etc/init.d
новой группе. Если это нужно нескольким пользователям,просто повторите этот шаг столько раз, сколько необходимо:
sudo chgrp -R proteios /etc/init.d
4. )Назначить групповой доступ для записи:
sudo chmod -R g+rwX /etc/init.d
5. )Убедитесь, что все новые файлы, созданные в этом каталоге, по умолчанию принадлежат группе proteios
:
sudo chmod g+s /etc/init.d
Я бы предпочел сначала сделать все это на удаленной -виртуальной машине, чтобы посмотреть, что на самом деле хочет делать это программное обеспечение Proteios /etc/init.d
. Это программное обеспечение, кажется, имеет встроенное -предположение, что компьютер, на котором установлен Proteios, будет использоваться только для Proteios и ни для чего другого, и поэтому ему не нужно особо заботиться о безопасности или стандартных соглашениях -— опасное предположение.
Если выясняется, что программа хочет изменить только свой собственный сценарий запуска -, но делает это таким образом, что доступа на запись только к самому сценарию недостаточно (, например. он хочет сделать резервную копию старого файла перед созданием нового ), тогда я мог бы не добавлять разрешения к реальному /etc/init.d
, а вместо этого попробовать перенаправить приложение, создав каталог с подходящими разрешениями в другом месте (например /opt/proteios/etc/init.d
), добавив
export SERVICE_PATH=/opt/proteios/etc/init.d
в начало сценария запуска Proteios и в среду любого пользователя, использующего Proteios, а затем создание символической ссылки из (каждого )запуска Proteios -сценария запуска, созданного в пользовательском каталоге, обратно в реальный/etc/init.d
:
sudo ln -s /opt/proteios/etc/init.d/* /etc/init.d/
Таким образом, Proteios может изменять свои файлы сколько угодно, но не может изменять другие системные службы. Если он хочет добавить другие ранее неизвестные сценарии запуска -, администратор должен будет создать для них символические ссылки, если эти сценарии действительно должны запускаться во время загрузки. Это должно помешать пользователям манипулировать другими системными службами через Proteios.
Вы всегда можете использовать декорирование -сортировку -недекорирование:
<input awk -v OFS=: '{print ++n[$0], $0}' |
sort -t: -k1,1n -k2 |
cut -d: -f2-
Где awk
добавляет перед каждой строкой вхождение строки в виде числа для sort
сортировки по первому k
ey (числовому порядку )и исходной строке в качестве второго ключа (порядок сортировки локали по умолчанию ).
Здесь, используя :
в качестве разделителя вместо SPC по умолчанию awk
и перехода по умолчанию sort
от непустого -пробела к пробелу по умолчанию, SPC будет включен в второй ключ, который может (маловероятно )повлиять на сортировку.