Возможно, чтобы заставить udev создать определенный номер события устройства или изменить номера событий устройства

Концепция - это концепция разрешений. Чтобы объяснить это, нам сначала нужно взглянуть на две вещи: uid и файловая система.

uid

В Unix-подобных системах у каждого пользователя есть идентификатор пользователя (UID) в дополнение к имени пользователя и другим свойствам. uid - это число. { {1}} Этот uid не может быть изменен самим пользователем. Вы можете проверить свой uid с помощью команды

$ id
uid=1001(username) gid=1001(username) groups=1001(username)

. Uid в этом примере вывода - 1001. uid - это уникален только в одной операционной системе. Если у вас два компьютера, два пользователя могут иметь один и тот же uid.

Файловая система

Unix-подобная файловая система хранит для каждого файла uid владельца файла и разрешения, которые владелец имеет для этого файла, и многое другое.

Вы можете увидеть права доступа к файлу, выполнив

$ ls -l file
-rw-r--r--  1 username  usergroup  1145 27 Feb 07:15 file

. Разрешения для владельца: « - rw- r - r - », поэтому владелец может читать файл и записывать в файл.

Как все это работает

Для окончательного понимания схемы разрешений нам понадобится ядро ​​системы Unix.

Каждый раз, когда мы обращаемся к файлу или делаем что-то с файлом, мы не касаемся файла напрямую. Вместо этого мы используем системный вызов, который просит ядро ​​сделать эту работу за нас. Внутри системного вызова есть процедуры для получения uid пользователя и получения прав доступа к файлу. Затем ядро ​​проверяет, совпадает ли владелец файла с uid пользователя; и если это так, он затем проверяет, есть ли у пользователя необходимое разрешение.

Уловка в том, что обычный пользователь не может влиять на ядро. Ядро запускается в процессе загрузки компьютера, и затем на него может влиять только пользователь root (с uid = 0).

Пользователь не может изменить свой uid, и он не может изменить права доступа к файлу, которым он не владеет (ему придется изменить свой uid), потому что ядро ​​управляет этими вещами, и только root может их изменить.

Подробнее о разрешениях здесь и о системных вызовах и их работе здесь . А если вы хотите знать, что еще хранится в файловой системе, прочтите это об индексных дескрипторах.

Что я упустил

Этот ответ даст вам лишь небольшое представление о схеме разрешений, но я надеюсь, что он поможет вам лучше понять вещи, которые я упустил, например

  • Группы, которые работают как uid схема
  • Разрешения для всех пользователей
  • Типы файлов
  • sudo и su
  • Разрешения по сети
  • ... (Если вы хотите узнать больше, получите хорошую книгу о операционных систем.)

0
22.02.2019, 17:55
1 ответ

Оказалось, что решение оказалось проще, чем я ожидал, просто добавив в stderr -vжурналы параметров, которые пересылаются между клиентом и сервером. В моем примере это будет следующее:

socat -v TCP:localhost:8888 pty,rawer &> com.log
0
28.01.2020, 03:57

Теги

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