- Installing ROOT
- Download a pre-compiled binary distribution
- Install via a package manager
- Conda
- Linux package managers
- Fedora
- CentOS
- Arch Linux
- Gentoo
- NixOS/Nix/Nixpkgs
- Ubuntu and Debian-based distributions
- MacOS package managers
- Homebrew
- Macports
- Nix/Nixpkgs
- LCG releases on CVMFS
- Standalone ROOT
- Complete environment
- Gentoo Prefix on CVMFS
- Run in a Docker container
- Run on CERN LXPLUS
- Build from source
- Как дать Root права пользователю в Linux
- Способ 1: Добавление в корневую группу с помощью usermod
- Способ 2: Добавление в корневую группу с помощью команды Useradd
- Способ 3: Редактирование файла /etc/passwd
- Способ 4: Дать права пользователя Sudo
- В чём принципиальное отличие DESTDIR и install_root?
- Права суперпользователя Linux
- Права суперпользователя в Linux
- Вход под суперпользователем
- Переключение на суперпользователя в терминале
- Получение прав root без переключения
- Графически приложения от имени суперпользователя
- Выводы
Installing ROOT
ROOT is available on Linux, Mac, and (as a beta release) on Windows.
The latest stable ROOT release is 6.24/06 (about ROOT versioning scheme).
There are several ways to install ROOT on your computer: they are all listed in the table of content on the right. Which one is best for you depends on your operating system and usage requirements. In all cases, make sure to always use the most recent ROOT release possible to get the latest bug fixes, features and quick user support.
Download a pre-compiled binary distribution
We distribute pre-compiled ROOT for several major Linux distributions as well as MacOS and (as a beta) Windows. The steps to install a pre-compiled binary are simple:
- Install all required dependencies with the system package manager
- Download the release for the desired platform and ROOT version
- Unpack the archive
- Add the ROOT libraries and executables to your environment by sourcing the appropriate thisroot.* script. These setup scripts can be found in the ROOT binary release, in the bin directory.
For example, on Ubuntu 20, a user could execute the following bash commands to install ROOT v6.24/02, after installing all required dependencies:
To avoid having to source thisroot.sh every time one needs to use ROOT, it is typical to add the command to .bashrc , .profile or analogous configuration files. Note, however, that sourcing thisroot.sh might interfere with ROOT versions installed with different methods.
And on Windows, for example, after the installation, open a x86 Native Tools Command Prompt for VS 2019 , cd to your home directory ( cd %USERPROFILE% ) and call thisroot.bat (let’s assume you installed ROOT in C:\root ). Then you can start ROOT:
Install via a package manager
Supported by the community: these packages are not maintained by the ROOT team, but by helpful members of the community. Please go through each package manager’s standard channels to report any related issue. If you package ROOT and would like to be added to the list below, please contact us by clicking the letter icon at the bottom of the page.
Conda
For any Linux distribution and MacOS, ROOT is available as a conda package. To create a new conda environment containing ROOT and activate it, execute
Setting channel_priority to strict is required to avoid conflicts on some platforms, see the relevant conda docs for more information.
The conda package uses C++17.
More instructions about using this package are available in this blog post.
Please report any issues with the conda package here.
On many Linux distributions, ROOT can be installed via Snap. For example, on Ubuntu:
The Snap package uses C++17. See our dedicated blog post for more information, or visit the official ROOT Snap package page.
Linux package managers
ROOT can be directly installed from the operating system’s package manager in the following Linux distributions:
Fedora
Fedora’s ROOT package can be installed with
More typically, however, users will want more than just the base package. The full list of components can be seen at https://src.fedoraproject.org/rpms/root/ by clicking in one of the offered versions. To install ROOT with support for python and notebooks, for example, run
CentOS
ROOT is available on CentOS via EPEL. To install ROOT on CentOS, just run
Arch Linux
Arch’s ROOT package can be installed with
The Arch package uses C++17.
Gentoo
The Gentoo package for ROOT is sci-physics/root. It can be installed with
NixOS/Nix/Nixpkgs
The package name for ROOT in nixpkgs is root . It can be installed into the user environment using
Running in a temporary environment can be achieved with
A root5 package is provided for the legacy software support.
If you encounter any issues, feel free report them to the nixpkgs issue tracker.
Ubuntu and Debian-based distributions
The ROOT team is working on the release of an official .deb package. More news on this topic very soon.
In the meanwhile, ROOT is available on Ubuntu via conda or our pre-compiled binaries.
MacOS package managers
Homebrew
On Mac, ROOT is also available as a homebrew formula. You can install it with
Macports
After installing macports, the ROOT port can be installed with
Nix/Nixpkgs
The same instructions as for Linux apply when running on macOS.
LCG releases on CVMFS
Standalone ROOT
If your platform mounts CVMFS ROOT is directly available via LCG releases.
ROOT installations with minimal external dependencies are available for Fedora, Ubuntu, CentOS7 and MacOS at:
For example, to set up ROOT 6.24/02 on a CentOS7 machine, just run:
Make sure you use your system’s default compiler, just like this ROOT build.
Complete environment
ROOT, Geant4 and many other packages with all their dependencies are available as LCG views:
LCG views are available for CentOS7, CentOS8 and the latest MacOS and Ubuntu releases. For example, on CERN LXPLUS, you can set up a full environment that contains ROOT 6.24/00 with:
To check what ROOT version is contained in an LCG release, you can visit lcginfo.cern.ch.
Gentoo Prefix on CVMFS
ROOT is also experimentally available in a Gentoo Prefix installation inside the contrib area of the SFT CVMFS repository. To use it from there, run
This will drop you into a new shell where all software from the prefix is available.
Run in a Docker container
ROOT Docker containers for several linux flavours are available at ROOT’s official DockerHub.
For example, to try out the latest ROOT release just run docker run -it rootproject/root .
Run on CERN LXPLUS
Users with a CERN computing account can simply connect to lxplus.cern.ch via SSH and start root : the latest stable version is installed as a normal system package.
Note that certain features (e.g. multi-threading capabilities) are not available on lxplus.cern.ch (or, equivalently, lxplus7.cern.ch ) due to incompatible versions of certain ROOT dependencies on CentOS7. You can use lxplus8.cern.ch to get access to CentOS8, where this limitation is not present.
Build from source
In case no other installation method is available, or if you want full control over the options ROOT is built with, it is possible to compile ROOT from source. See Building ROOT from source for detailed instructions.
As a quick summary, after installing all required dependencies, ROOT can be compiled with these commands on most UNIX-like systems:
And similarly, on Windows, inside a x86 Native Tools Command Prompt for VS 2019 , ROOT can be compiled with these commands:
Источник
Как дать Root права пользователю в Linux
Суперпользователь «root” — это король пользователей Linux / Unix. Наличие корневого доступа предоставляет полный и неограниченный доступ к дистрибутиву Linux.
В этой инструкции я покажу вам, как дать root права пользователю в системе Linux. Как правило, доступ на корневом уровне (root) используется в системном администрировании. Поэтому всегда больно давать root-доступ другим пользователям. Вы должны быть очень осторожны и должны забрать доступ, как только необходимость в этом отпадет.
Как дать Root права пользователю в Linux
Согласно разрешениям файловой системы Linux, root или суперпользователь имеет полные права на чтение (r), запись (w) и выполнение (x) любого файла. По умолчанию идентификатор пользователя root равен «0».
Я собираюсь создать двух пользователей, а именно user1 и user2. Затем я предоставлю root-правак пользователю «user1«.
Способ 1: Добавление в корневую группу с помощью usermod
Давайте посмотрим, как мы можем дать обычному пользователю root- права, добавив его в корневую группу.
# adduser user1
# adduser user2
# groupadd test
Это группы, которые есть в моей дистрибутиве Linux.
# groups
root bin daemon sys adm disk wheel
Я собираюсь добавить user1 в корневую группу следующим образом:
Приведенная ниже команда даст пользователю привилегию root
Способ 2: Добавление в корневую группу с помощью команды Useradd
Я добавил нового пользователя «user3» в корневую группу с помощью команды:
# useradd -m -G root user3
# groups user3
user3 : user3 root
useradd -c “Imitation Root” -d /home/root_user -m -k /etc/skel -s /bin/bash -u 0 -o -g root root_user
Способ 3: Редактирование файла /etc/passwd
Отредактируйте /etc/passwd для конкретного пользователя. Измените UID и GID пользователя на «0«. Это даст root права пользователю в linux.
Теперь пользователь temproot должен иметь привилегии root:
ВНИМАНИЕ: это не рекомендуемый метод предоставления корневого доступа (root-прав)
Способ 4: Дать права пользователя Sudo
Конфигурационный файл sudo — это файл /etc/sudoers, и вы можете отредактировать его с помощью команды visudo:
Использование visudo защищает от конфликтов и гарантирует использование правильного синтаксиса.
Чтобы предоставить полный доступ конкретным пользователям
Добавьте в файл запись, приведенную ниже:
Следовать этому методу не очень хорошая идея, потому что это позволяет и User1, и User2 использовать команду su для предоставления постоянных привилегий root. Таким образом пропуская функции ведения журнала команд sudo.
Предоставление доступа к определенным файлам одному конкретному пользователю
Эта запись позволяет User 1 и всем другим членам группы получить доступ ко всем программным файлам в каталогах /sbin и /usr/sbin, а также привилегию выполнения команды /usr/oracle/backup.pl…
User1, %operator ALL= /sbin/, / usr/sbin, /usr/oracle/backup.pl
Если у вас есть какие-либо вопросы или предложения по этой теме, оставьте комментарий.
Источник
В чём принципиальное отличие DESTDIR и install_root?
В чём отличие между #make install DESTDIR=_PATH_ и # make install install_root=_PATH_ .
DESTDIR — это переменная, используемая утилитой install/ginstall, насколько я понимаю
install_root — это. кстати, что это?
ни в чём, обычно делают DESTDIR , но иногда встречаются и более экзотические переменные ( в старых проектах )
>переменная, используемая утилитой install/ginstall,
неверно понимаете, эта переменная должна быть прямо указана в Makefile
для целей install:
вот пример который не поддерживает установку в виртуальный root:
# Install the binary pbzip2 program and man page
install: pbzip2
if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi
if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi
cp -f pbzip2 $(PREFIX)/bin/pbzip2
chmod a+x $(PREFIX)/bin/pbzip2
ln -s -f $(PREFIX)/bin/pbzip2 $(PREFIX)/bin/pbunzip2
ln -s -f $(PREFIX)/bin/pbzip2 $(PREFIX)/bin/pbzcat
cp -f pbzip2.1 $(PREFIX)/man/man1
chmod a+r $(PREFIX)/man/man1/pbzip2.1
соответственно добавить поддержку для установки можно заменив
$(PREFIX)/ на $(DESTDIR)/$(PREFIX)/
А как оно тогда понимает, где install, а где ginstall?
$ ls -l `which ginstall`
lrwxrwxrwx 1 root root 7 Nov 19 03:50 /bin/ginstall -> install
это одно и тоже
также как и make и gmake в линуксах
GNU install входит в комплект coreutils
ps: кстати в примере ginstall (install) не используется, там просто cp
Если сделать configure в slackware, а затем make в debian (или наоборот, давно не брал я в руки), то просто не работает, ругается на отсутствие ginstall (или install, я не помню).
Может быть за те годы, когда я перестал делать такие кросскомпиляции, это изменилось, но раньше с этим приходилось сталкиваться.
Оттуда и уверенность, что DESTDIR понимает только install/ginstall, configure только нужную ссылку устанавливает.
все намного тривиальнее
$ which install
/bin/install
:$which install
/usr/bin/install
Если бы было так тривиально — я бы не знал про ginstall. Впрочем, после этого топика я знаю о нём ещё меньше, чем раньше.
bash-3.1$ which install
/usr/bin/install
slackware 13, или я чего то не понимаю?
тогда прошу прощения за неверную информацию, у меня самосборный пакет coreutils )
Источник
Права суперпользователя Linux
Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.
В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.
В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.
Права суперпользователя в Linux
Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:
- Читать, писать и изменять атрибуты файлов в своем каталоге
- Читать, писать, изменять атрибуты файлов в каталоге /tmp
- Выполнять программы там, где это не запрещено с помощью флага noexec
- Читать файлы, для которых установлен флаг чтения для всех пользователей.
Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.
Вход под суперпользователем
Чтобы войти под пользователем root можно переключиться в одну из виртуальных консолей, например, с помощью сочетания клавиш Ctrl+Alt+F1 и затем ввести логин root и пароль root пользователя.
Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.
Можно поступить полностью противоположным путем, ввести логин root и его пароль в графическом менеджере входа, чтобы окружение рабочего стола работало от имени root, и мы получаем все права root linux, но такой вариант крайне не рекомендованный, и очень опасный, вы можете случайно повредить всю систему. Поэтому этот способ был отключен во многих менеджерах входа.
Переключение на суперпользователя в терминале
Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:
$ su опции пользователь
Вот ее основные опции:
- -c, —command — выполнить команду
- -g, —group — установить основную группу пользователя (только для root)
- -G —supp-group — дополнительные группы пользователя (только для root)
- -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
- -p, —preserve-environment — сохранить переменные окружения
- -s, —shell — задать оболочку для входа
- —version — отобразить версию программы.
Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.
Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:
Теперь смотрим что получилось:
whoami
pwd
echo $VAR
echo $PATH
exit
Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.
Теперь используем вход в режиме логина:
И повторим ту же комбинацию:
whoami
pwd
echo $VAR
echo $PATH
exit
Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:
Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:
Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.
Получение прав root без переключения
Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:
$ sudo опции команда
- -b — выполнять запускаемую утилиту в фоне
- -E — сохранить переменные окружения
- -g — запустить команду от группы
- -H — использовать домашний каталог
- -l — показать список полномочий в sudo для текущего пользователя
- -r — использовать для команды роль SELinux
- -s — использовать оболочку
- -u — запустить команду от имени пользователя, если не задано используется root
- -i — не выполнять команду, а войти в оболочку, эквивалентно su —
Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:
Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.
Графически приложения от имени суперпользователя
Для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.
Просто наберите gksu или kdesu, а затем нужную команду:
Эта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так:
Программа запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.
Выводы
Вот и все. Теперь вы знаете как получить права суперпользователя в Linux, знаете как использовать команду sudo и в чем разница sudo или su. Теперь программы, требующие дополнительных привилегий в системе, не вызовут у вас проблем. Если остались вопросы, пишите в комментариях!
Источник