powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пересчить UID и/или GID из слов в цифры
20 сообщений из 45, страница 2 из 2
Пересчить UID и/или GID из слов в цифры
    #39616371
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80как-то так...Только решаете вы совсем другую задачу.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616375
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovdimonz80как-то так...Только решаете вы совсем другую задачу.


Не, ну чё придераться-то?)))

Код: java
1.
2.
3.
java.nio.file.attribute.UserPrincipalLookupService svc =  java.nio.file.FileSystems.getDefault().getUserPrincipalLookupService();
svc.lookupPrincipalByGroupName("staff").hashCode()
svc.lookupPrincipalByName("root").hashCode()
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616452
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё равно - другая.
Автору надо разобрать текстовый файл, получить для каждой пару логин/группа, создать соответствующие объекты и запросить у этих объектов (системный) идентификатор. При этом ему совершенно безразличны атрибуты и владелец файла-источника.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616468
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovВсё равно - другая.
Автору надо разобрать текстовый файл, получить для каждой пару логин/группа, создать соответствующие объекты и запросить у этих объектов (системный) идентификатор. При этом ему совершенно безразличны атрибуты и владелец файла-источника.

Для танкистов:
root - логин, staff - группа.
svc.lookupPrincipalByGroupName("staff").hashCode() - вернет 501 (ID группы "staff" на моем компе, у остальных it depends)
svc.lookupPrincipalByName("root").hashCode() - вернет 0 (ID юзера "root" почти везде)
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616511
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под Windows это нелетает. По крайней мере на моей десятке.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    @Test
    public void test() throws Exception {
        Properties props = System.getProperties();

        String osName    = props.getProperty("os.name");
        String osArch    = props.getProperty("os.arch");
        String osVersion = props.getProperty("os.version");

        logger.info("osName = '{}', osArch = '{}', osVersion = '{}'",osName,osArch,osVersion);

        if (osName.equals("Windows 10")) {
            throw new Exception("Illegal OS exception");
        } else {
            FileSystem fs = FileSystems.getDefault();
            UserPrincipalLookupService svc = fs.getUserPrincipalLookupService();
            svc.lookupPrincipalByName("root").hashCode();
            svc.lookupPrincipalByGroupName("staff").hashCode();
        }


    }
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616574
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80Для танкистов:... есть более подходящее API. Для хрюниксов. Для винды - не вижу аналогов.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616575
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonПод Windows это нелетает. По крайней мере на моей десятке.

И не должно. Еще удивись, что рута на Win 10 нету)). Сам же писал
maytonРебята тут вообще тема не про Java. Это Unix админская задача. И решать ее надо на всех
этих bash/python/perl e.t.c. Плюс маппинг uid/gid => нужно тянуть из операционки.


Мне вообще странно, что UID через hashCode получать надо. Про это в JavaDoc ни слова.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616576
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: sql
1.
2.
            svc.lookupPrincipalByName("root").hashCode();
            svc.lookupPrincipalByGroupName("staff").hashCode();

А подумать? Вы уже создали пользователя "root" и группу "staff"???
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616577
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovmayton
Код: sql
1.
2.
            svc.lookupPrincipalByName("root").hashCode();
            svc.lookupPrincipalByGroupName("staff").hashCode();

А подумать? Вы уже создали пользователя "root" и группу "staff"???

Если их нету, то java.nio.file.attribute.UserPrincipalNotFoundException. За полностью работоспособным кодом с защитой от дурака, отловом всех эксепшнов и т.п. можно обратиться в раздел "Работа".
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616578
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80Если их нету, то java.nio.file.attribute.UserPrincipalNotFoundException.mayton вы уже сказали об этом.
Теперь повторите для автора топика.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616580
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovТеперь повторите для автора топика.
Кстати, где он?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616581
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разница между идентификаторами пользователей/групп в юниксах и идентификаторами безопасности винды:
Код: plaintext
1.
2.
       User login: admin$
         User SID: S-1-5-21-2673944721-1503362698-616458971-500
Primary group SID: S-1-5-21-2673944721-1503362698-616458971-513
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import com.sun.security.auth.module.NTSystem;
public class Test {
  public static void main(String[] args)
  {
    NTSystem nts = new NTSystem();
    System.out.println("       User login: " + nts.getName());
    System.out.println("         User SID: " + nts.getUserSID());
    System.out.println("Primary group SID: " + nts.getPrimaryGroupID());
  }
}
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616584
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, таки, я неправ - JAAS подходит только для текущего пользователя.
java.nio.files.attributes - точно не работает для винды и, в общем-то, ничего не гарантирует для юниксов.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616585
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovРазница между идентификаторами пользователей/групп в юниксах и идентификаторами безопасности винды:
Код: plaintext
1.
2.
       User login: admin$
         User SID: S-1-5-21-2673944721-1503362698-616458971-500
Primary group SID: S-1-5-21-2673944721-1503362698-616458971-513
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
import com.sun.security.auth.module.NTSystem;
public class Test {
  public static void main(String[] args)
  {
    NTSystem nts = new NTSystem();
    System.out.println("       User login: " + nts.getName());
    System.out.println("         User SID: " + nts.getUserSID());
    System.out.println("Primary group SID: " + nts.getPrimaryGroupID());
  }
}



У автора типично виндовые юзеры/группы:

Код: plaintext
1.
2.
3.
root/root
root/shell
shell/shell
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616586
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovjava.nio.files.attributes - точно не работает для винды и, в общем-то, ничего не гарантирует для юниксов.

По большому счету да. Для абсолютно точного решения надо JNI.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616587
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80У автора типично виндовые юзеры/группы:Вы бы хоть в кавычки взяли свою "шутку".
Я в курсе про корни и оболочки, но мне несложно подготовить файл, содержащий список локальных пользователей и групп винды.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616588
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80Для абсолютно точного решения надо JNIВполне достаточно process API
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616590
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovdimonz80Для абсолютно точного решения надо JNIВполне достаточно process API

Костыль. Зависит от сторонныих утилит.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616593
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimonz80Костыль. Зависит от сторонныих утилит.Компиляция JNI-модуля тоже зависит от сторонних утилит, только ещё сложнее.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616594
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovdimonz80Костыль. Зависит от сторонныих утилит.Компиляция JNI-модуля тоже зависит от сторонних утилит, только ещё сложнее.


Аааа... Ну ОК.
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Пересчить UID и/или GID из слов в цифры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]