Примітка: я відповідаю 1. , оскільки Ігнасіо вже відповів 2 .
У наступному sudoзаписі:
superadm ALL=(ALL) ALL
є чотири поля:
- Перший вказує користувача, якому будуть надані привілеї для деяких команд.
- Другий використовується рідко. Це список імен хостів, щодо яких ця запис судо буде ефективною. У стандартних налаштуваннях відповідний лише один хост (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пропущено, додаткові групові привілеї не надаються.