Позвольте пользователю просматривать корневой каталог других пользователей через sudo

Взгляд на man gmetad, Вы, вероятно, найдете

-d, --debug=INT
Debug level. If greater than zero, daemon will stay in foreground. (default='0')

так с помощью параметра командной строки, например. gmetad -d 1, должен добиться цели.

2
13.04.2017, 15:36
3 ответа

Несколько вещей:

  1. Команда sudo для подъема себя к более высокому уровню учетных данных или для команды или для набора команд, не для того, чтобы получить доступ к каталогу, с которым Вы (1) не ни один владелец, (2) в группе, которая прочитала полномочия в упомянутый каталог, или (3) каталог не открыли другие полномочия для мира.

  2. Файл /etc/sudoers файл, который содержит все правила для данной системы и предусматривает, какие пользователи, группы пользователей, могут работать который команды поднятым способом как root, обычно, или некоторая другая учетная запись пользователя. Вы обычно НЕ хотите редактировать этот файл непосредственно, хотя Вы можете, он быть лучшими не сделать так.

  3. Команда visudo предписанный путь к редактированию /etc/sudoers файл.

  4. Если Вы хотите видеть, к каким sudo учетным данным у пользователя есть доступ, самый простой путь состоит в том, чтобы стать тем пользователем и выполнить команду, sudo -l.

    $ sudo -l
    Matching Defaults entries for saml on this host:
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL
    LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User saml may run the following commands on this host:
    (ALL) ALL
    (root) NOPASSWD: /usr/lib/jupiter/scripts/bluetooth, (root) /usr/lib/jupiter/scripts/cpu-control, (root) /usr/lib/jupiter/scripts/resolutions, (root)
    /usr/lib/jupiter/scripts/rotate, (root) /usr/lib/jupiter/scripts/touchpad, (root) /usr/lib/jupiter/scripts/vga-out, (root) /usr/lib/jupiter/scripts/wifi
    

доступ колеса

Я полагаю, что Вы обращаетесь к группе пользователей wheel, который является старым путем (к моему знанию) способ дать пользовательские разрешения становиться корнем через su -. Эта статья делает хорошее задание обсуждения использования этой группы, названной: Администрирование Вашей системы Linux.

Предоставление доступа к /home/<user>?

К моему знанию нет никакого систематического способа сделать, это, не давая этому пользователю подняло полномочия другими способами, которыми Вы пытаетесь ограничить. Я сказал бы, что, если Вы не доверяете этому конкретному пользователю ответственность наличия доступа этим способом затем, они - вероятно, не правильный человек для выполнения этой работы!

Группы

Например. Скажите, что у меня есть 2 студента и 1 TA. Студенты (user1 и user2) TA (user3).

Таким образом, группы были бы следующие:

  • class1
  • vboxuser1

Таким образом, когда я вошел в систему как любой из вышеупомянутых пользователей (1-3), мои группы будут следующие:

$ groups
users vboxusers class1

Это группируется, должен был бы также быть установлен на доме студента dirctories:

$ ls -l /home/user1 | head -3
total 37784
drwxrwxr-x   2 saml class1     4096 May 16 22:02 alsa
drwxrwxr-x  31 saml class1     4096 Mar 26 12:09 apps

Это - всего одна идея, она имеет проблемы с этим подходом, но, учитывая информацию Вы обеспечили, "один способ сделать это"!

1
27.01.2020, 22:23
  • 1
    хорошо, я получаю его. У меня есть пользователи LDAP, чьи домой расположен под / домой в сервере. Например, если у меня есть 2 пользователя LDAP (user1 и user2), у меня есть следующие папки в сервере./home/user1 и/home/user2. Я создаю локального пользователя в сервере (serveruser). Теперь я должен дать полномочия serveruser для просмотра/home/user1 и/home/user2. Действительно ли это возможно так или иначе в Linux? –  Ramesh 19.09.2013, 23:40
  • 2
    @Ramesh - поскольку я заявил, нет никакого способа сделать это легко. Вы могли, например, использовать Списки управления доступом (ACLs), но это затем потребует, чтобы Вы систематически применили их к каждому пользователю /home/user# каталог для пользователя serveruser. Это обычно не делается, потому что это становится кошмаром обслуживания. Если Вы не доверяете этому администратору, то найдите другой, что Вы делаете. –  slm♦ 19.09.2013, 23:43
  • 3
    Не то, чтобы я не доверяю пользователю. Я - системный администратор в школе. Так, я хочу дать полномочия / корневому каталогу к обучающим помощникам для оценки присвоений домашней работы студентов. Так, я вид потребности предоставить доступ к пользователю, не давая пароль root ему. –  Ramesh 19.09.2013, 23:45
  • 4
    Существует ли группа, которая характерна для различных групп пользователей, который выравнивается с обучающими помощниками? Я присвоил бы TA этой группе также, затем они смогут получить доступ к этим группам без проблемы. ACLs был бы Вашей другой опцией, но это потребует, чтобы Вы применили имя пользователя TA как имеющий доступ для чтения к переменной группе /home/user# каталоги. –  slm♦ 19.09.2013, 23:47
  • 5
    Да. Все студенты в лаборатории принадлежат "vboxusers" группе. Теперь, Вы предлагаете, чтобы я создал учетные записи пользователей для GTA's в vboxusers группе? После того, как я создам учетные записи пользователей, как я могу сделать представление TAs другими пользовательскими папками также? –  Ramesh 19.09.2013, 23:50

Теперь, я хочу предоставить локальному пользователю в сервере ограниченный корневой доступ.

Это походит на плохую идею.

Во-первых, существует проблема конфиденциальности данных - если Вы не доверяете этому пользователю, чтобы иметь полные корневые полномочия, почему Вы доверяете ему данные Ваших пользователей?

Во-вторых, даже если Вам так или иначе удалось бы предоставить этому пользователю ограниченный корневой доступ к /home (который я не думаю, возможно), существует теперь несколько способов для него получить полный корневой доступ, который Вы, вероятно, не ожидаете:

  • Он может создать символьную ссылку на /:

    cd /home
    ln -s / evil-symlink
    

    Теперь он может получить доступ к содержанию корневой файловой системы как /home/evil-symlink/ как корень, потому что это расположилось внутри /home.

  • Он может создать setuid исполняемые файлы внутри /home. Просто копия /bin/bash кому: /home/bash, сделать chmod u+s /home/bash и у Вас есть свое собственное root оболочка.

Они только способ ограничить пользователя определенным каталогом независимо от полномочий, которые я могу придумать, chroot, и это общеизвестно, что корень может убежать из a chroot.

0
27.01.2020, 22:23

Во-первых, что Вы сделали неправильно:

user1, %operator ALL= /home/users

Это позволяет user1 выполнять любую команду в каталоге /home/users как любой пользователь. Если нет никакой исполняемой программы в том каталоге, правило эффективно ничего не делает. Если существуют исполняемые программы там, правило позволяет user1 выполнять их.

Вы не можете использовать sudo дать пользовательское разрешение получить доступ к файлу, только разрешение выполнить команду как другого пользователя.

Посмотрите Позволяют пользователю читать корневые каталоги некоторых других пользователей для способа сделать то, что Вы пытаетесь сделать.

0
27.01.2020, 22:23

Теги

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