Sudoers - управление группы и перезагрузка/завершение работы

Посмотрите на команду stat, это показывает 3 раза, когда файл был доступен в последний раз, когда он был в последний раз изменен и когда его права были изменены в последний раз.

Вас интересуют разрешения (изменения), смотрите ниже вывод для примера файла, который у меня только что chmod'ed;

prompt::11:26:45-> stat ideas.md 
  File: ‘ideas.md’
  Size: 594         Blocks: 8          IO Block: 4096   regular file
Device: 27h/39d Inode: 117         Links: 1
Access: (0770/-rwxrwx---)  Uid: (    0/    root)   Gid: (  992/  vboxsf)
Context: system_u:object_r:vmblock_t:s0
Access: 2014-12-21 19:15:29.000000000 +0000
Modify: 2014-12-21 19:15:29.000000000 +0000
Change: 2014-12-22 11:26:45.000000000 +0000
 Birth: -

Или как @0xC0000022L говорит, что вы можете использовать stat -c, чтобы показать именно тот вывод, который вам нужен;

prompt::11:32:46-> stat -c %z ideas.md 
2014-12-22 11:26:51.000000000 +0000
0
16.12.2018, 13:48
1 ответ

Я бы сказал нет. Нет, если только у тебя нет веской причины. Я работаю в крупной финансовой компании с очень строгими методами обеспечения безопасности, так что одна из вещей, которую мы делаем, это отбираем sudo у всех, а затем возвращаем его выборочно.

Один из идентификаторов, с которого мы его забираем, является корневым. Это означает, что если я устанавливаю RPM с «sudo rpm»..., я делаю это как root, что нормально, но если RPM затем в своих сценариях пытается sudo, это будет неудачно - потому что, опять же, мы заблокировали даже root из глобального sudo.

Теперь, если мы избирательно вернули sudo для определенных команд, это может сработать, если 100% вызовов RPM sudo - это вещи, которые были даны root. Но шансы на это невелики.

Возникли проблемы со сценариями sudo внутри RPM. Лучше просто оставить это, я думаю. Или, по крайней мере, имейте в виду, что есть такие компании, как моя, где вы можете не знать, кто имеет sudo для чего, и даже корень может не иметь его.

-121--68633-

MAX _ ARG _ STRLEN применяется только при вызове внешних программ. «for» является частью синтаксиса bash, и bash будет обрабатывать это непосредственно. И да, он будет выполнять команду seq и захватывать весь stdout перед выполнением подстановки в оператор «for».

-121--111639-

Предположим, что идентификатор группы - «foo»

с помощью visudo для изменения настроек sudo:

Символ% идентифицирует группу

%foo ALL = (root) /usr/bin/reboot

Для изменения пароля необходимо использовать сценарий, ограничивающий активность - sudo не может сделать все это.

Предположим, что один специальный пользователь - peewee С помощью visudo add:

User_Alias SPECIAL peewee

SPECIAL ALL = (root) NOPASSWD: /root/special_passwd.shl

В качестве корня:

mkdir /root
chmod 750 /root

Это полностью не проверено: назовите этот скрипт special_passwd.shl, поместите его в корневой каталог. Разрешения = 750

#!/bin/bash
if [ $# -eq 2 ] ; then
# echo username:passwd | chpasswd is the syntax
   grp=$(/usr/bin/id -g "$1")
   if [ "$grp" = "1234" ]; then
         echo ${1}:${2} | /usr/bin/chpasswd
      [ $? -eq 0 ] || echo 'password change failed'
   fi

else
   echo 'No password change: requires username, new password'
fi

Рекомендуется показать, что вы примерили к этому. Сценарий - стартер, не предназначенный для производства.

1
28.01.2020, 02:51

Теги

Похожие вопросы