'root' пользователь приложения.
От: Dziman США http://github.com/Dziman
Дата: 11.11.15 19:08
Оценка:
Есть многопользовательское приложение(веб, но я думаю это не принципиально). Пользователи имеют роли хранящиеся в БД, которые определяют что можно делать, чего нельзя. И есть суперпользователь(условный root), который может делать вообще все.
Возник спор как этого рута реализовывать.
Подход 1: где-то 'захардкожен' id рута и он проверяется для определения что это рут. При этом этому пользователю 'выдаются' стандартным механизмом 'максимальная' роль.

Мы делаем по аналогии с root в *nix — id всегда 0, у винды тоже (S-1-5-21[domain]-500). Есть конечно группы root и Administrators, но нет группы/роли, определяющей рута или Администратора. Это подход, проверенный десятилетиями. И зачем нам велосипеды изобретать?

Подход 2: просто дбавляется 'суперроль' с максимальными полномочиями и назначается нужным пользователям(даже если это будет только один реальный пользователь).
Какие плюсы, минусы у каждого из подходов?
avalon 1.0rc3 build 430, zlib 1.2.5
Re: 'root' пользователь приложения.
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.11.15 19:18
Оценка: 5 (2)
Здравствуйте, Dziman, Вы писали:

D> Какие плюсы, минусы у каждого из подходов?


Если копировать подход из мира *nix, то вход под root должен быть запрещен, в то время как sudo (аналог супер-роли) может быть у нескольких человек и в случае разбора полетов гораздо проще найти концы.
Управляю вселенной не привлекая внимания санитаров.
Re[2]: 'root' пользователь приложения.
От: Dziman США http://github.com/Dziman
Дата: 11.11.15 19:25
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB> D> Какие плюсы, минусы у каждого из подходов?


AB> Если копировать подход из мира *nix, то вход под root должен быть запрещен, в то время как sudo (аналог супер-роли) может быть у нескольких человек и в случае разбора полетов гораздо проще найти концы.


Неа, стандартный подход: "Вон в *nix есть суперюзер с ид=0, значит и у нас так будет. Там еще sudo и прочие ограничения для него? Не, не слышали."
avalon 1.0rc3 build 430, zlib 1.2.5
Re[3]: 'root' пользователь приложения.
От: Слава  
Дата: 11.11.15 20:40
Оценка:
Здравствуйте, Dziman, Вы писали:

D>Здравствуйте, Anton Batenev, Вы писали:


AB>> D> Какие плюсы, минусы у каждого из подходов?


AB>> Если копировать подход из мира *nix, то вход под root должен быть запрещен, в то время как sudo (аналог супер-роли) может быть у нескольких человек и в случае разбора полетов гораздо проще найти концы.


D>Неа, стандартный подход: "Вон в *nix есть суперюзер с ид=0, значит и у нас так будет. Там еще sudo и прочие ограничения для него? Не, не слышали."


Нету для рута никаких ограничений. И входить под ним можно, и что угодно, если настроить систему.
Re[3]: 'root' пользователь приложения.
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.11.15 22:27
Оценка:
Здравствуйте, Dziman, Вы писали:

D> Неа, стандартный подход: "Вон в *nix есть суперюзер с ид=0, значит и у нас так будет. Там еще sudo и прочие ограничения для него? Не, не слышали."


Ну я написал как бы я сделал. А то, что большинство под root по FTP ходят — ну дурака могила исправит.
Управляю вселенной не привлекая внимания санитаров.
Re: 'root' пользователь приложения.
От: Sharov Россия  
Дата: 12.11.15 12:03
Оценка:
Здравствуйте, Dziman, Вы писали:

D>Есть многопользовательское приложение(веб, но я думаю это не принципиально). Пользователи имеют роли хранящиеся в БД, которые определяют что можно делать, чего нельзя. И есть суперпользователь(условный root), который может делать вообще все.

D>Возник спор как этого рута реализовывать.
D>Подход 1: где-то 'захардкожен' id рута и он проверяется для определения что это рут. При этом этому пользователю 'выдаются' стандартным механизмом 'максимальная' роль.
D>

Мы делаем по аналогии с root в *nix — id всегда 0, у винды тоже (S-1-5-21[domain]-500). Есть конечно группы root и Administrators, но нет группы/роли, определяющей рута или Администратора. Это подход, проверенный десятилетиями. И зачем нам велосипеды изобретать?

D>Подход 2: просто дбавляется 'суперроль' с максимальными полномочиями и назначается нужным пользователям(даже если это будет только один реальный пользователь).
D>Какие плюсы, минусы у каждого из подходов?

У меня реализован первый подход, т.е. при создании системы сразу имеется пользователь админ. Он же в свою очередь может создавать других админов.
Кодом людям нужно помогать!
Re: 'root' пользователь приложения.
От: wildwind Россия  
Дата: 14.11.15 07:57
Оценка:
Здравствуйте, Dziman, Вы писали:

D> Какие плюсы, минусы у каждого из подходов?


Плюс второго подхода: в логах будет "Пользователь Вася сделал бяку" вместо "Пользователь root сделал бяку".
Я привык, что в интернете можно найти ответ на любой вопрос. Я не люблю думать. Зачем думать, если всё уже придумано до меня? © Zenden@RSDN ::: avalon/1.0.442
Re: 'root' пользователь приложения.
От: Ziaw Россия  
Дата: 17.11.15 04:21
Оценка: +1
Здравствуйте, Dziman, Вы писали:

D>Какие плюсы, минусы у каждого из подходов?


Надо плясать от бизнес процессов. Если явно предполагается, что у системы будет один админ и всем понятно, кто этот человек — первый подход имеет право на жизнь. Если нет — только второй, иначе учетка админа станет ничьей, ее пароль начнут писать на бумажках и прочие вытекающие.
Re: 'root' пользователь приложения.
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.11.15 09:52
Оценка:
Здравствуйте, Dziman, Вы писали:

D>Есть многопользовательское приложение(веб, но я думаю это не принципиально). Пользователи имеют роли хранящиеся в БД, которые определяют что можно делать, чего нельзя. И есть суперпользователь(условный root), который может делать вообще все.

D>Возник спор как этого рута реализовывать.
D>Подход 1: ...
D>Подход 2: ...

Подход 3 — флажок в базе "супер админ" у пользователя. Это комбинация 1 и 2 — с одной стороны не требуется хардкода, с другой стороны супер-админу можно многие проверки прав просто отключить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.