Примечание: я отвечаю 1. , поскольку Игнасио уже ответил 2 ..
В следующей sudo
записи:
superadm ALL=(ALL) ALL
Есть четыре поля:
- Первый указывает пользователя, которому будут предоставлены привилегии для некоторых команд.
- Второй редко используется. Это список имен хостов, для которых эта запись sudo будет действовать. В стандартных настройках релевантен только один хост (localhost), поэтому это поле обычно оставляется как
ALL
.
- Четвёртом поле список команд
superadm
будет иметь возможность работать с повышенными привилегиями. ALL
означает все команды. В противном случае используйте список команд через запятую.
- Третье поле (написанное
(…)
необязательно) указывает, какие пользователи (и группы) superadm
смогут выполнять следующие команды: ALL
означает, что они могут выбрать что угодно (неограниченно). Если это поле опущено, оно означает то же, что и (root)
.
Пример:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
Здесь alan
разрешено запускать две команды /bin/ls
и /bin/kill
как root
(или bin
), возможно, с дополнительными operator
или system
групповыми привилегиями.
Так что alan
можете выбрать запуск ls
от имени bin
пользователя с operator
привилегиями группы, например:
sudo -u bin -g operator /bin/ls /whatever/directory
Если -u
опущен, это так же, как -u root
. Если -g
опущен, дополнительные привилегии группы не предоставляются.