Добавить гостевую учетную запись, созданную при входе в определенные группы?

Добавить гостевую учетную запись, созданную при входе в определенные группы?

Этот вопрос связан сдругой, более общий вопросо гостевых аккаунтах. Этот очень специфичен.

Настройка: У меня много старых Dell Latitude E6410 и несколько новых Dell Latitude 5450, которые я использую в классе, работающем под управлением 16.04. Многие студенты используют эти машины для различных целей, в том числе для анализа данных и сбора данных через подключенные USB-устройства.

Гостевые аккаунты хорошо служат нам для очистки машин между входами в систему. Дополнительная функция гостевых аккаунтов заключается в том, что при включении машин и «забывании» их, машина автоматически входит в гостевую учетную запись и запускает окно браузера. Проблема в том, что гостевые аккаунты не имеют никаких привилегий для доступа к USB-портам.

Простым решением было бы добавить новую гостевую учетную запись (например, guest-abf2) в группу dialout и plugdev, чтобы студенты могли использовать подключенные устройства и флэш-накопители. Что-то вроде:

moduser -a -G plugdev,dialout $USER

внутри скрипта на достаточно раннем этапе процесса входа в систему, чтобы он сработал.

Вот что я попробовал на данный момент:

  • поместив эту команду в один из двухдокументированные крючки: auto.shи prefs.shв /etc/guest-sessionкаталоге. Ни один из них не работает. prefs.shзапускается в контексте пользователя, и хотя auto.shпредполагается, что он запускается в контексте root, он запускается слишком поздно, чтобы добавить недавно созданную учетную запись гостя в две группы
  • изменение доступных скриптов, запускаемых lightdm (Да, я знаю, что это нехорошо, но я уже отчаялся.) и все равно это не работает. Мне нужно выполнить команду moduser сразу после создания учетной записи, но до фактического входа в систему.
  • В соответствии сстарая документация (11 или около того)есть хук под названием , setup.shкоторый я попробовал, но я не уверен, что он сейчас работает.
  • Я рассматривал возможность написания скрипта udev, но это кажется ужасно болезненным, а документация, похоже, ориентирована на монтирование USB-флешек, не разрешая доступ к USB-устройствам. Я могу ошибаться.
  • Где-то я наткнулся на документацию, что есть похожий механизм типа «скрипта» для автоматического добавления новых пользователей в определенные группы, но я не могу его найти. Это может сработать в данном случае или нет, но я попробую.

решение1

Гостевые учетные записи создаются скриптом оболочки /usr/sbin/guest-account.

В конце функции add_accountвызываетсядобавить пользователядля создания пользователя. Если вы добавите -G plugdev,dialoutздесь опцию, это должно сработать.

Использоватьdpkg-переадресациячтобы избежать перезаписывания обновленным пакетом измененного скрипта.

решение2

Использоватьusermod, нет ' moduser'.

... поэтому поведение скрипта запуска prefs.sh теперь работает так, как и заявлено. Создав файл prefs.sh в /etc/guest-session со следующей строкой:

moduser $USER -a -G plugdev,dialout

Эта команда приведет к сбою гостевой сессии и не загрузится, если вы включите ее в prefs.sh. ``moduser' - недопустимая команда. Вместо этого используйте эту строку:

usermod -a -G plugdev,dialout $USER

решение3

auto.shникогда не запускался в контексте root. prefs.shТак было до Ubuntu 15.10, когда он был источником /usr/sbin/guest-account, но код был рефакторингован, и в 16.04 prefs.shисточником является /usr/share/lightdm/guest-session/setup.sh, который не запускается от имени root.

Не знаю, является ли это изменение поведения намеренным. Если нет, то, возможно, есть причина предложить изменение.

Не уверен, что вы имеете в виду, когда говорите, что гостевой сеанс не может получить доступ к портам USB. Я знаю, что вы можете использовать USB-накопители, по крайней мере. Возможно, есть и другие устройства, использование которых запрещено AppArmor.

Редактировать:

Я подалотчет об ошибке, и если он будет принят, вы сможете использовать его prefs.shдля назначения гостя в группу(ы), как вы могли это делать раньше.

Что касается USB-накопителей, я провел несколько тестов и обнаружил, что форматирование флешки имеет значение. С отформатированной в ext4 флешкой я не мог ни читать, ни писать, но когда она была отформатирована в fat16, все работало нормально.

решение4

Я не знаю точно, когда это произошло, но lightdm был обновлен, поэтому поведение скрипта запуска изменилось.префс.штеперь работает как заявлено. Создав файл с именемпрефс.шв/etc/гостевой-сессиисо следующей строкой:

moduser $USER -a -G plugdev,dialout

Мне удалось добиться именно того, что мне было нужно: разрешить учащимся получать доступ к новым USB-устройствам в гостевой учетной записи.

Связанный контент