Если я правильно понимаю ваш вопрос, должно сработать что-то вроде следующего:
nix-env --json -qaA nixpkgs.wireshark | json_pp >name.json && less name.json
группы помогут назначить права, такие как группа sudo (, которая будет иметь root-доступ)
поэтому всякий раз, когда вы хотите назначить разрешения на некоторые роли для любого пользователя, просто добавьте в любые группы в соответствии с вашими требованиями
Помните, что Unix по происхождению являются многопользовательскими -системами. Имея это в виду, что-то вроде системы, совместно используемой студентами и преподавателями университета, вполне может быть использовано для разделения пользователей на разные группы. У вас могут быть установлены ограничения на использование в системе, и вы можете захотеть, чтобы для учащихся были более строгие ограничения, чем для персонала. У вас также может быть отдельный вычислительный кластер, доступный только тем, кто действительно в нем нуждается (и знает, как его использовать ), это может быть другая группа. (Здесь я предполагаю общую базу данных пользователей, но это в значительной степени необходимо, когда у вас несколько систем.)
Что касается прав доступа к файлам, у вас может быть каталог для какого-то проекта и группа, у которой есть доступ к каталогу, чтобы они могли изменять файлы (правильная настройка umask
и бит setgid
в каталогах помогают здесь ).
Из всего персонала у вас будет меньший набор людей, которым разрешено получать доступ суперпользователя в системе. Один из способов сделать это — использовать права доступа к файлам, чтобы разрешить запуск su
только членам определенной группы (часто root
или wheel
). sudo
будет более распространен в современных Linux, но он также настроен на использование групп, чтобы определить, кто что может делать.
Теперь, конечно, многопользовательские системы, в которых вы входите в систему с помощью последовательного терминала / telnet / SSH, уже не так распространены. Но если в вашей системе запущены какие-либо службы, которые могут использоваться другими пользователями за пределами системы, полезно разделить их на собственные учетные записи . Затем можно использовать группы, чтобы разрешить ограниченный доступ между пользователями. Например, crontab
представляет собой двоичный файл setgid и использует групповые разрешения для доступа к файлам crontab
.и у вас может быть группа www-data
, которой будет разрешено изменять файлы данных HTTP-сервера. (Или наоборот, пользовательские файлы могут получить разрешение на чтение для www-data
, чтобы HTTP-сервер мог их прочитать.)