- Adding to Root Group using Useradd Command
- Setting as Sudo User
- Linux User
- Read permission
- Write permission
- How to Change Permissions in Linux Using the chmod Command
- How to Change Permissions using Symbolic Mode
- Example
- How to Change Permissions using Absolute Mode
- How to Change Ownership using the chown Command
- How to change user ownership with chown
- How to change user and group ownership simultaneously
- Linux Permissions Guided Exercise
- Visualization of the problem
- Wrapping up
- Как получить права root
- Вход как root
- Команда su
- Команда sudo
- Что такое Visudo?
- Редактирование файла sudoers
- Стандартные параметры
- Параметры настройки прав пользователей
- Параметры привилегий групп
- Пользовательские правила
- Создание алиасов
- Блокировка правил
- Дополнительные сведения
- Заключение
- Добавление в корневую группу с помощью команды Useradd
- Добавление в корневую группу с помощью usermod
- Редактирование файла /etc/passwd
- Conclusion
Adding to Root Group using Useradd Command
These are the groups I have in my Linux box.
groups
root bin daemon sys adm disk wheel
Note: This is not the recommended method for granting root access
Setting as Sudo User
The sudo configuration file is /etc/sudoers and you can edit this file using visudo command: # visudo.
Using visudo protects from conflicts and guarantees that the right syntax is used.
Add the entry given below in the file:
bob, tom ALL=(ALL) ALL
This entry allows bob and all the other members of the group operator to gain access to all the program files in the /sbin and /usr/sbin directories, as well as the privilege of running the command /usr/oracle/backup.pl.
bob, %operator ALL= /sbin/, /usr/sbin, /usr/oracle/backup.pl
Суперпользователь «root” — это король пользователей Linux / Unix. Наличие корневого доступа предоставляет полный и неограниченный доступ к дистрибутиву Linux.
В этой инструкции я покажу вам, как дать root права пользователю в системе Linux. Как правило, доступ на корневом уровне (root) используется в системном администрировании. Поэтому всегда больно давать root-доступ другим пользователям. Вы должны быть очень осторожны и должны забрать доступ, как только необходимость в этом отпадет.

Как дать Root права пользователю в Linux
Согласно разрешениям файловой системы Linux, root или суперпользователь имеет полные права на чтение (r), запись (w) и выполнение (x) любого файла. По умолчанию идентификатор пользователя root равен «0».
Linux User
File permissions fall in three categories: read, write, and execute.
Read permission
Similarly for directories, read permissions allow the listing of directory content without any modification in the directory.
Write permission
Symbolic representation of permissions
Note that we can find permissions of files and folders using long listing (ls -l) on a Linux terminal.
Output of long listing
In the output above, d represents a directory and- represents a regular file.
How to Change Permissions in Linux Using the chmod Command
Now that we know the basics of ownerships and permissions, let’s see how we can modify permissions using the chmod command.
Syntax of chmod:
chmod permissions filename
We can change permissions using two modes:
Now, let’s see them in detail.
How to Change Permissions using Symbolic Mode
We can use mathematical operators to add, remove, and assign permissions. The table below shows the summary:
Example
Suppose, I have a script and I want to make it executable for owner of the file zaira.
Let’s split the permissions like this:
To add execution rights (x) to owner (u) using symbolic mode, we can use the command below:
chmod u+x mymotd.sh
Now, we can see that the execution permissions have been added for owner zaira.
Additional examples for changing permissions via symbolic method:
How to Change Permissions using Absolute Mode
Absolute mode uses numbers to represent permissions and mathematical operators to modify them.
The below table shows how we can assign relevant permissions:
Permissions can be revoked using subtraction. The below table shows how you can remove relevant permissions.
chmod 451 file-name
This is how we performed the calculation:
Note that this is the same as r—r-x—x.
To remove execution from other and group, subtract 1 from the execute part of last 2 octets.
This would be the same as rwxr-xr—.
How to Change Ownership using the chown Command
Next, we will learn how to change the ownership of a file. You can change the ownership of a file or folder using the chown command. In some cases, changing ownership requires sudo permissions.
Syntax of chown:
How to change user ownership with chown
chown news mymotd.sh
Command to change ownership: sudo chown news mymotd.sh
How to change user and group ownership simultaneously
In case we only need to change the group owner, we can use chown by preceding the group name by a colon :
Linux Permissions Guided Exercise
Up until now we have explored permissions, ownerships, and the methods to change them. Now we will reinforce our learning with a guided exercise.
Visualization of the problem
We can visualize the problem like this:
Use the sudo command with flag i.
If you have the root password, you can login using that as well.
If you do not have root access, use the commands with appending sudo.
Step 2: Create a group dev-team
Use the groupadd command.
Syntax: groupadd group-name
Enter groupadd dev-team to create the dev-team group
Where -G specifies the group.
Use command passwd
Step 5: Create a directory in /home and name it dev-team
Use command mkdir
mkdir creates a directory.
Syntax: mkdir directory-name
Step 6: Change the group ownership of the folder dev-team to group dev-team
Use command chown
Syntax: chown :group-name folder
chown :dev-team /home/dev-team/
Step 7: Make sure the permissions of folder dev-team allow group members to create and delete files.
Use command chmod
Syntax: chmod permissions folder
chmod g+w /home/dev-team/
Step 8: Ensure that ‘others’ don’t have any access to the files of dev-team folder.
Remove read, write, execute permissions from ‘others’ if they exist.
chmod o-rx dev-team
Step 9: Exit the root session and switch to John
su — John
Verify with command whoami.
Step 10: Navigate to folder: /home/dev-team
Use command cd to switch folders.
Syntax: cd /path/to/folder
Confirm current path with pwd.
Step 11: Create an empty file in the folder: /home/dev-team
Use command touch to create an empty file.
Syntax: touch filename
Verify: ls -lrt
Step 12: Change the group ownership of the created file to dev-team and verify.
Use command chown to change ownership.
Syntax: chown :group file-name
chown :dev-team john-file.txt
Once group ownership is modified, all members of the group can access this file.
Verify ls -lrt
Use command exit to exit the terminal.
su — Bob
Step 14: Navigate to the path /home/dev-team
Step 15: Find out Bob’s privileges to access john-file.txt
Use command ls -l for long listing.
Does group have rw- permissions?
Step 16: Modify the file john-file.txt while logged in as Bob
This would redirect the quoted text to end of the file.
If all the permissions are correctly set, Bob would be allowed to edit and save this file. Otherwise you would get an error like this: Permission denied.
Verify cat john-file.txt
Step 17: Create another group project-manager and assign a member Fatima to it
Use command groupadd to add a new group.
Step 18: Navigate to folder /home/dev-team and verify if Fatima can access it
Use cd to navigate to /home/dev-team.
We get this error:
This is because, others don’t have any access to the folder dev-team.
If we recall, below are the rights of the dev-team folder.
Wrapping up
Thanks to Tom Mondloch for his help with the guided exercise.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
17 марта, 2016 12:01 пп
Centos, Linux, Ubuntu
Разделение прав доступа – одна из наиболее важных парадигм безопасности, реализуемых в Linux и Unix-подобных операционных системах. Обычные пользователи работают с ограниченными правами; так сокращаются масштабы их влияния на их собственную среду и на операционную систему в целом.
Пользователь root имеет привилегии суперпользователя. Эта учетная запись администратора не имеет ограничений, которые присутствуют на учётных записях обычных пользователей. Другие пользователи могут выполнять команды с правами root в ряде отдельных случаев.
В данном руководстве показано, как правильно и безопасно для системы передавать права root.
Примечание: Данное руководство было выполнено на сервере Ubuntu 12.04, однако большинство современных дистрибутивов Linux будут вести себя аналогичным образом.
Для выполнения руководства нужно предварительно выполнить начальную настройку сервера:
Войдите на сервер как не-root пользователь.
Как получить права root
Есть три основных способа получить привилегии суперпользователя, которые варьируются по уровню сложности.
Вход как root
По запросу введите root-пароль.
Команда su
Постоянно использовать учётную запись root не рекомендуется, поскольку, имея абсолютные права доступа, можно совершенно случайно нанести системе непоправимый вред.
Потому в системе существует команда su, позволяющая обычному пользователю получать root-права в любой момент.
Итак, чтобы получить root-права, просто введите:
Система запросит пароль root-пользователя, после чего откроет доступ к сессии оболочки root-пользователя.
Выполнив все задачи, требующие прав root, можно вернуться в предыдущую сессию:
Команда sudo
Последний способ получения привилегий root – команда sudo.
Команда sudo позволяет выполнять отдельные команды с правами root без необходимости открывать новую сессию.
Примечание: В отличие от su, команда sudo запрашивает не пароль root, а пароль пользователя, который вызывает команду.
Из соображений безопасности команда sudo недоступна по умолчанию, доступ к ней нужно настраивать. Если вы следовали руководству по начальной настройке сервера, вы уже знаете, как это делается.
Что такое Visudo?
Команда sudo настраивается при помощи файла /etc/sudoers.
Важно! Никогда не редактируйте этот файл при помощи обычного текстового редактора! Для этого следует использовать visudo.
Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется команда visudo.
Команда visudo открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.
Как правило, visudo открывает файл /etc/sudoers в редакторе vi. В системе Ubuntu visudo использует nano.
Чтобы настроить команду visudo для использования vi в системе Ubuntu, выполните команду:
sudo update-alternatives —config editor
There are 3 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
————————————————————
* 0 /bin/nano 40 auto mode
1 /bin/nano 40 manual mode
2 /usr/bin/vim.basic 30 manual mode
3 /usr/bin/vim.tiny 10 manual mode
Выберите число, соответствующее текстовому редактору, который вы хотите использовать.
В системе CentOS это значение можно изменить, добавив в ~/.bashrc строку:
Чтобы обновить настройки, введите:
Чтобы открыть /etc/sudoers, введите:
Редактирование файла sudoers
Итак, в выбранном вами текстовом редакторе на экране откроется файл sudoers.
Ниже приведены параметры файла системы Ubuntu 12.04 (закомментированные строки опущены, а изменения, внесённые при начальной настройке сервера, сохранены).
Примечание: Файл sudoers системы CentOS гораздо более объёмен; некоторые его параметры в этом руководстве не описаны.
Стандартные параметры
Первая строка, Defaults env_reset, сбрасывает терминальную среду, чтобы удалить все пользовательские переменные. Эта мера безопасности используется для устранения потенциально вредного воздействия переменных среды из сессии sudo.
Параметры настройки прав пользователей
Третий и четвёртый параметр должны быть вам знакомы. Четвёртую строку вы добавили самостоятельно, но, возможно, не разбирали её подробно.
Это значит, что пользователи root и demo могут запускать все команды при помощи sudo, указав свой пароль.
Параметры привилегий групп
Последние две строки похожи на параметры привилегий пользователей, однако они отвечают за права групп.
Имена групп начинаются с символа %.
Пользовательские правила
Ознакомившись с базовым синтаксисом файла, попробуйте создать пару правил самостоятельно.
Создание алиасов
Файл sudoers можно более удобно структурировать при помощи различных алиасов (англ. – alias).
К примеру, можно создать три разные группы пользователей с совмещёнными правами:
Имена групп должны начинаться с большой буквы. После этого можно дать пользователям GROUPTWO право на изменение БД apt-get:
GROUPTWO ALL = /usr/bin/apt-get update
Если в правиле не указан пользователь и группа, по умолчанию sudo использует root.
Затем можно разрешить пользователям группы GROUPTHREE выключать и перезапускать машину; для этого нужно создать алиас команды:
Cmnd_Alias POWER = /sbin/shutdown, /sbin/halt, /sbin/reboot, /sbin/restart
GROUPTHREE ALL = POWER
Алиас команды POWER содержит команды для отключения и перезапуска машины.
Также можно создать алиас Run as, который заменяет часть правила, указывающую пользователя, в сессии которого нужно выполнить команду.
Runas_Alias WEB = www-data, apache
GROUPONE ALL = (WEB) ALL
Теперь любой пользователь группы GROUPONE может выполнять команды в сессиях пользователей www-data или apache.
Примечание: Помните, что созданные ранее правила имеют более высокий приоритет в случае конфликта правил.
Блокировка правил
Существует ряд способов контроля поведения и реакции sudo на вызов.
К примеру, команда updatedb в сочетании с пакетом mlocate относительно безвредна. Чтобы обычный пользователь мог выполнять её с привилегиями суперпользователя, не вводя пароль, можно создать такое правило:
GROUPONE ALL = NOPASSWD: /usr/bin/updatedb
Команда NOPASSWD значит, что система не будет запрашивать пароль. Также существует команда PASSWD, которая отвечает за противоположное поведение и используется по умолчанию.
NOPASSWD распространяется на всё правило, если команда PASSWD не отменяет его. Например, строка может выглядеть так:
GROUPTWO ALL = NOPASSWD: /usr/bin/updatedb, PASSWD: /bin/kill
Ещё одна удобная команда – NOEXEC, которая используется для предотвращения опасного поведения определенных программ. К примеру, некоторые команды, такие как less, могут вызывать другие команды:
Эта команда выполняет любую команду с привилегиями пользователя, запускающего less, а это может быть очень опасно.
Чтобы запретить такое поведение, можно использовать следующую строку:
Дополнительные сведения
В данном разделе собраны различные полезные советы по работе с sudo.
Если вы указали пользователя или группу в параметре Run as, вы можете выполнять команды в сессии этого пользователя при помощи флагов -u и –g соответственно:
По умолчанию sudo сохраняет учётные данные в одном терминале на некоторое время. Это означает, что в течение этого периода вам не придется вводить пароль снова.
Если в целях безопасности вы хотите сбросить этот таймер, используйте команду:
Чтобы узнать права пользователя, введите:
Эта команда выведет все права, указанные в файле /etc/sudoers для данного пользователя.
Если обычный пользователь попытается запустить команду администратора без префикса sudo, команда не сработает. Чтобы избежать необходимости повторного ввода команды, используйте функцию bash, которая повторяет команду:
Двойной восклицательный знак повторит последнюю команду.
Заключение
Теперь у вас есть базовые навыки работы с файлом sudoers и правами root.
Работая с правами суперпользователя, помните о том, что обычные пользователи не обладают такими правами по умолчанию из соображений безопасности. Не злоупотребляйте правами root, иначе можно случайно нанести системе непоправимый ущерб.
Добавление в корневую группу с помощью команды Useradd
Конфигурационный файл sudo — это файл /etc/sudoers, и вы можете отредактировать его с помощью команды visudo:
Использование visudo защищает от конфликтов и гарантирует использование правильного синтаксиса.
Чтобы предоставить полный доступ конкретным пользователям
Добавьте в файл запись, приведенную ниже:
Предоставление доступа к определенным файлам одному конкретному пользователю
Как Добавить пользователя в Sudoers или Sudo Group на Arch Linux
Добавление в корневую группу с помощью usermod
Давайте посмотрим, как мы можем дать обычному пользователю root- права, добавив его в корневую группу.
Это группы, которые есть в моей дистрибутиве Linux.
# groups root bin daemon sys adm disk wheel
Приведенная ниже команда даст пользователю привилегию root
Редактирование файла /etc/passwd
Отредактируйте /etc/passwd для конкретного пользователя. Измените UID и GID пользователя на «0«. Это даст root права пользователю в linux.
Теперь пользователь temproot должен иметь привилегии root:
ВНИМАНИЕ: это не рекомендуемый метод предоставления корневого доступа (root-прав)
Conclusion
Login in as root and running commands is dangerous because all commands are with the highest privileges. Accident mistakes can even delete root directories and unsafe to run programs with a root shell.






