как запретить пользователю устанавливать его ПУТЬ [закрыто]

ESC=$(printf '\033')
RED="${ESC}[0;31m"
 NC="${ESC}[0m"

sed -e '
   /./!b
   /[^[:space:]]/!b

   s/.*/\
&,/

   :loop
      h
      s/\(\n\),/|\1/;                                                  # An empty field
      s/\(\n\)\([+-]\{0,1\}[.][0-9]\{1,\}\),/\2|\1/;                   # +-.NNN
      s/\(\n\)\([+-]\{0,1\}[0-9]\{1,\}\([.][0-9]*\)\{0,1\}\),/\2|\1/;  # +-NNN.MMM +-NNN. +-NNN
      s/\(\n\)~\([0-9][0-9]*\),/\2|\1/;                                # ~NNN
      s/\(\n\)\([0-9][0-9]*\)~,/\2|\1/;                                # NNN~
      s/\(\n\)~\([^~]*\)~,/\2|\1/;                                     # ~...~
      x;G
      /^\(.*\)\n\1$/{
         g;'"s/\n\([^,]*\)/${RED}\1${NC}/"'
         i\
***'"${RED}ERROR${NC}"'*** Unable to process the field shown colored.\
\
Cause of error: What this means is that this particular field is not \
\
           Fix: You should add to the sed code in the :loop label to \
                digest the able to be processed by the sed code as it stands.\
\
The record with the offending field shown colored red:\

         q
      }
      g; # all clear: recover and carry on...
   /\n$/!bloop

   s/..$//
' csv.data

Работа

  • Мы основываем решение на различных типах полей.
  • Пропуск пустых или пустых строк.
  • Добавьте "," для упрощения использования регулярного выражения, мы уберем его в конце.
  • Чтобы запустить игру, поместите маркер \n в начало строки. Этот маркер будет перемещаться слева направо, перескакивая через обрабатываемое поле за раз.
  • Действие начинается в цикле do-while, в теле которого мы обрабатываем поле за раз. Начало поля сигнализируется \n, и мы обрабатываем различные разновидности полей, которые могут возникнуть. Каждый раз мы переносим обрабатываемое поле слева от \n и заменяем , на |.
  • Цикл останавливается, когда маркер \n достигает конца строки /\n$/, после чего мы удаляем маркер и пустышку , мы разместили в начале.

Результаты

364034|2015652205|26722|2015|4|C25753-4|TC25753,|2WD Double Cab 144.2" SLT,|Y|40506.16|43555.00|1095.00|043|005|006|007|003|008|016|041|012|029|068|027|028|033|3|2WD Double Cab 144.2"|SLT|6|4|N|S|N|S|N|N|N|| |Confirmed|w2015k65m22t5|Sierra 2500HD|Double Cab Standard Box 2-Wheel Drive SLT|Rear Wheel Drive|Extended Cab Pickup - Standard Bed
0
26.04.2018, 07:31
3 ответа

Наконец, заставьте его работать, так что bash -rне работает, но я нашел rbashустановленный двоичный файл, который является ограниченной версией bash.

После добавления /bin/rbashв качестве оболочки для пользователя с ограниченными правами он не может установить путь или выполнить с полным путем, и это то, что я хотел. Спасибо за помощь всем!

0
28.01.2020, 02:13

Вы можете использовать readonlyBash, встроенный -, чтобы сделать переменную доступной только для чтения. Но это вряд ли удержит кого-то, кто хочет изменить свою среду, поскольку они могут просто запустить новую оболочку, не запуская файлы RC, и настроить свою собственную среду. Кроме того, это никоим образом не мешает запускать программы, не входящие в PATH. Переменная PATH— это просто функция удобства, позволяющая пользователям писать foo, а не, например, /usr/bin/foo. Вот и все. Это никак не связано с безопасностью.


Ключом к обеспечению безопасности среды является тщательное изучение вашей модели угроз -Ожидаете ли вы, что пользователи попытаются прочитать файлы других пользователей, нарушить установку, подслушать сообщения, рассылать спам, чтобы получить root-доступ или что-то еще? После того, как вы установили это, вы можете приступить к работе над тем, какие меры действительно помогут этого добиться.

4
28.01.2020, 02:13

Вам следует обратить внимание на «ограниченный» режим bash (, начинающийся с bash --restrictedили bash -r), который предотвращает такие команды, как cd, и блокирует запуск любого исполняемого файла по полному пути, поэтому он позволяет выполнять только то, что в $PATH.

Кроме того, он предотвращает изменение переменных среды, таких как PATH.

Вы можете найти обзор «ограниченного» режима bash здесь .

4
28.01.2020, 02:13

Теги

Похожие вопросы