Текущий архив: 2004.09.05;
Скачать: CL | DM;
Вниз
Права админа Найти похожие ветки
← →
Керик (2004-07-24 17:57) [0]Как определить наличие прав администратора в текущей учётной записи?
← →
Бином Ньютоныч (2004-07-24 19:02) [1]Только между нами: все администраторы входят во встроенную группу Administrators. Но это страшная тайна!
← →
N170 (2004-07-24 19:16) [2]IsAdminUser() в Windows XP и выше..
← →
Керик (2004-07-24 19:22) [3]Для N170: Я не нашёл IsAdminUser(). В каком модуле?
← →
VMcL © (2004-07-24 20:10) [4]>>N170 (24.07.04 19:16) [2]
Где взял?
http://search.microsoft.com/search/results.aspx?qu=IsAdminUser&View=msdn&st=b&c=4&s=1&swc=4
← →
Бином Ньютоныч (2004-07-24 20:44) [5]function AllocateTokenInformation(Token: THandle;
TokenClass: TTokenInformationClass): Pointer; stdcall;
var
Size, Res: Cardinal;
begin
Result:=nil; Size:=0;
repeat
Result:=CoTaskMemRealloc(Result, Size);
if GetTokenInformation(Token, TokenClass, Result, Size, Size) then
Res:=ERROR_SUCCESS else Res:=GetLastError;
until Res <> ERROR_INSUFFICIENT_BUFFER;
if (Res <> ERROR_SUCCESS) and (Result <> nil) then
begin
CoTaskMemFree(Result);
Result:=nil;
end;
SetLastError(Res);
end;
function IsAdminUser: boolean;
const
sAdmGroup = "S-1-5-32-544"#0;
var
n: integer;
CurToken: THandle;
Groups: PTokenGroups;
AdmGroupSid: PSID;
begin
{$R-}
Result:=OpenProcessToken(GetCurrentProcess, TOKEN_ALL_ACCESS, CurToken);
if not Result then RaiseLastOsError;
Groups:=AllocateTokenInformation(CurToken, TokenGroups);
if Groups = nil then RaiseLastOsError;
try
Result:=ConvertStringSidToSidA(@sAdmGroup[1], AdmGroupSid);
if Result then
try
Result:=not Result;
for n:=0 to Pred(Groups.GroupCount) do
begin
Result:=EqualSid(AdmGroupSid, Groups.Groups[n].Sid);
if Result then Break;
end;
finally
LocalFree(Cardinal(AdmGroupSid));
end;
finally
CoTaskMemFree(Groups);
end;
{$R+}
end;
← →
Anatoly Podgoretsky © (2004-07-24 20:45) [6]Бином Ньютоныч (24.07.04 19:02) [1]
Не совсем так, могут и не входить.
← →
Anatoly Podgoretsky © (2004-07-24 20:47) [7]И даже если быть точнее, то чаще не входят, это глобальная группа и не желания включать в нее кого ни попала. Для этого существуют более подходящии группы, Domain Admins, Local Admins
Но и это не обязательно.
← →
Бином Ньютоныч (2004-07-24 20:49) [8]>Anatoly Podgoretsky © (24.07.04 20:45) [6]
Чрезвычайно интересно! Подробней можно? Я с таким не встречался. Откуда инфа? Если из опыта, то как восроизвести?
← →
Бином Ньютоныч (2004-07-24 20:53) [9]>Anatoly Podgoretsky © (24.07.04 20:47) [7]
:(
MSDN:
Administrators: "A built-in group. After the initial installation of the operating system, the only member of the group is the Administrator account. When a computer joins a domain, the Domain Admins group is added to the Administrators group. When a server becomes a domain controller, the Enterprise Admins group also is added to the Administrators group.
The Administrators group has built-in capabilties that give its members full control over the system. The group is the default owner of any object that is created by a member of the group.
"
← →
Anatoly Podgoretsky © (2004-07-24 20:54) [10]Вот видишь, сам и подтверждаешь, что это не догма.
← →
Бином Ньютоныч (2004-07-24 21:07) [11]Не, я IsAdminUser прям счас писал, под действием паров пива, так что творчески на нее взгляните:)
>Anatoly Podgoretsky © (24.07.04 20:54) [10]
Не понял. По-моему - наоборот. Я вообще-то не админ... А как еще, без включения в группу Administrators дать юзеру права админа? Нет, меня правда это очень интересует!
← →
Anatoly Podgoretsky © (2004-07-24 21:13) [12]Зато я админ.
Админ может удалить администратора из любой группы и наиболее частый случай, когда удаляется группы Domain Admins и Enterprise Admins. Точно такое же может делаться для конкретного админа, что бы на него не распространялись права группы, а только его личные права.
На всякий случай администратор это точно такой же обычный пользователь, которому предоставлены дополнительные права. И я первое что делаю удаляю предопределенного админстратора из всех групп.
← →
Керик (2004-07-24 21:27) [13]Господа! Надо, чтобы при запуске моей программы (или при запуске инсталляшки с этой же программой) определялось наличие прав администратора в текущей учётной записи. Если таких прав нет, то выдать соответствующий MessageBox. Сейчас появляется Access Violations...
← →
Бином Ньютоныч (2004-07-24 21:28) [14]Так, что-то проясняется. Возникает вопрос - кто такой администратор? Т.е. у него остаются права группы, но в группу он не входит? Если он не входит в группу Administrators, то как он рулит системой? Сервисами, DCOM, COM+ etc?. На новые компоненты его права распространяются? Что, ему нужно вручную давать разрешения на каждый объект? Или создана новая группа? А чем она отличается от Administrators? Чего-то не понимаю? И в чем глобальный смысл этого действа? Против чего оно направлено?
← →
Anatoly Podgoretsky © (2004-07-24 21:37) [15]Бином Ньютоныч (24.07.04 21:28) [14]
Нет у него остаются свои права, которые могут совпадать и не совпадать с группой. Зато например права назначенные права на папку для группы administrators на него распространяться не будут.
Многие эксплоиты расчитывают на то что пользователь Administator входит в группу administrators и тут облом. Конечно можно бы было его удалить совсем, но это резервная запись.
← →
Бином Ньютоныч (2004-07-24 21:50) [16]>Anatoly Podgoretsky © (24.07.04 21:37) [15]
Я все-таки не совсем понимаю. Ну допустим, я пишу червя. Мне параллельно, в какую группу входит текущий юзер, лишь бы он пустил меня ... ну например в реестр. Как здесь поможет удаление из группы? Хоте, если юзер запросто ходит по сети с админскими правами и с не прикрытыми дырами, то это, имхо, проблема генетическая, а не техническая. Не согласны? И как все-таки с управлением системой, т.е. с админскими обязанности?
← →
Polevi © (2004-07-24 21:56) [17]да какая разница как назвать админ или еще как
насторить можно как угодно
если API вызов привел к ACCESS_DENIED - не судьба
← →
Бином Ньютоныч (2004-07-24 22:03) [18]>Polevi © (24.07.04 21:56) [17]
Дык, вроде не про название базар, а?
← →
Polevi © (2004-07-24 22:25) [19]а что такое "наличие прав администратора " ?
это постоянная величина разве ?
← →
Бином Ньютоныч (2004-07-24 22:35) [20]>Polevi © (24.07.04 22:25) [19]
Для меня - вхождение в группу Administrators. Как для других - не знаю:(
← →
Polevi © (2004-07-24 22:41) [21]ну входишь ты в эту группу
я политиками безопасности ограничу тебе доступ к нужному тебе ресурсу..
и что ты делать будешь
[17] самый правильный способ :)
← →
Бином Ньютоныч (2004-07-24 22:54) [22]>Polevi © (24.07.04 22:25) [19]
Ну, брат, какой же это администратор? Зачем он такой? Администратор - тот, который обладает правами группы. Кто может устаналивать/удалять/настраивать системные компоненты. Можно из из трактора теплоход сделать...и ведь делают! А зачем? Накуролесить можно всякого, только какое это имеет отношение к серьезным приложениям?
← →
Polevi © (2004-07-24 23:04) [23]знаешь по всякому бывает... если человек владеет ноутбуком к примеру (на работе дали поюзать )-то есть только он на нем работает то с одной строны логично дать ему права администратора.. а с другой стороны какой из него админитсратор..
однако для софтин которые он юзает это может быть необходимим
вот тут политики приходят на помощб :)
← →
Бином Ньютоныч (2004-07-24 23:09) [24]Есть система безопасности операционной системы. Она устанавливает определенную идеалогию защиты. Отходить от нее из каких-то собственных умозрительных заключений - значит подвергать систему дополнительной опасности и наживать себе геморрой, что мы и наблюдаем на многочисленных примерах. Прав администратора должно быть достаточно для, например, установки любых компонентов системы. Либо их хватает, либо это - не администратор. Так установлено в идеалогии защиты Windows. Приложение, использующее защиту ОС не может не ориентироваться на предопределенную идеалогия - у него просто нет выбора, оно не может предвидеть все возможные бздыки админов. Если Вы создали собственную модель, то все проблемы - это только Ваши проблемы. Все, пошел спать:)
← →
Anatoly Podgoretsky © (2004-07-24 23:11) [25]Администратор это сложное понятие, смутное.
На новелл 3 был супервизор, вот это был человек, который обладал бессметной властью, бессмертный. Администратор же это простой пользователь обладающий некоторыми правами, его также можно удалить, как и другого пользователя.
Для указаной задачи совсем не надо знать является ли админстратор конкретный пользователь, гораздо важнее может он выполнить указаную задачу или нет, а для этого достаточно обрабатывать исключения.
Конечно в АПИ что то есть по этому поводу, но оно не нужно в данном случае.
← →
Бином Ньютоныч (2004-07-24 23:22) [26]Нет, не удержался:). Polevi, друг мой, если юзерскому софту в работе необходимы админские права, то место такому софту - в корзине, и нигде более. Уж извини, если что. Все, теперь точно - спать:)
← →
Polevi © (2004-07-25 10:34) [27]> [26] Бином Ньютоныч (24.07.04 23:22)
полностью согласен насчет корзины.. но иногда нет выбора
к примеру системы банк-клиент я такие видел что восоы дыбом.. и что прикажешь - идти к руководству с предложением банк менять ?
такова жизнь, друг мой ньютоныч :)
← →
Anatoly Podgoretsky © (2004-07-25 10:41) [28]Обычно расправа короткая, но к сожалению и такие случаи бывают.
← →
Бином Ньютоныч (2004-07-25 10:47) [29]>Polevi © (25.07.04 10:34) [27]
Да уж, что правда, то правда:( Воистину "Мы рождены, чтоб сказку сделать былью" И чем страшнее сказка, тем больше вероятность ее превращения в реальность. Почему так происходит, я, видимо, уже никогда не пойму:( Слава Богу, я имею дела только с железными и стеклянными банками:)
← →
Piter © (2004-07-25 17:19) [30]смотря какие эксплоиты... MsBlast аттаковал сервис svchost и права текущего юзера в системе абсолютно не важны... да и вообще под конкретным пользователем обычно не запускается чего-то серверного (что можно аттаковать) - так какая тогда нафиг разница кто сейчас за компом - обычный юзер или администратор.
← →
Polevi © (2004-07-25 17:28) [31]> [30] Piter © (25.07.04 17:19)
все эксплоиты мерещатся ? ты эта.. береги себя, гуляй на воздухе побольше
а то знаешь, сначала навязчивые идеи, потом раздвоение личности...
Страницы: 1 вся ветка
Текущий архив: 2004.09.05;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.029 c