powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Пересчить UID и/или GID из слов в цифры
45 сообщений из 45, показаны все 2 страниц
Пересчить UID и/или GID из слов в цифры
    #39616144
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу скажу, я не знаю как это делается, даже теоретически, поэтому прошу не наезжать. В общем есть файл с uid/gid(root, shell,system,user и тд), надо пересчитать или перевести их в цифры. Как?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616151
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java uuid to number .
Выдаёт, как бы это ни было удивительно, даже ссылка на доку из Java SE API.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616164
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Не, вы не поняли видимо. Есть текстовый файл в котором записано
root/root
root/shell
shell/shell
....
А на выходе надо получить
0/0
0/2000
2000/2000
.....
А не пытаться получить его у файла или сгенерировать рандомно.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616169
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, мне не нужны unique user id , мне нужны просто user id пересчитать в цифры...
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616172
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Это такая шутка белых, которую не понять чёрным?".
man id и скармливаем значения, выдранные из файла.

P.S. Я, конечно, попутал UUID с UID, но какого лешего тут Java, если задача для типичного шелл-скрипта???
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616174
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, если бы мне надо было это сделать в shell, я б таких вопросов не задавал. Так что на java надо, и ни на чём другом.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616175
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelне нужны unique user id А их и нет - UUID это "вселенски уникальный" идентификатор (universally unique identifier), а не то, что вы подумали.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616176
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, ну вот что то на примере такого, только тут пересчёта нет, они забиты константами https://android.googlesource.com/platform/system/core.git/ /android-cts-8.1_r3/libcutils/include/private/android_filesystem_config.h
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616177
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гуглить не пробовали ?
Лично мне второй ссылкой выдан, вроде, подходящий пакет .
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616225
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, что то я не сильно понял в jdk8 нет такого компонента?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616243
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, как избавиться от всего лишнего в UnixNumericUserPrincipal.java чтоб осталась только одна static функция, которая бы и возвращала результат?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616244
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Либо разжуйте как вызывать её( https://github.com/Himansu-Nayak/java7-sourcecode/blob/master/com/sun/security/auth/UnixNumericUserPrincipal.java), из другого модуля. А то в ней нет ни main, ни статичного ничего. Как этим пользоваться то вообще? Примеров в гугле не нашел(((
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616285
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы не в состоянии ни поменять одну циферку на другую, ни попробовать хоть какой-то код, то я не мамаша, чтобы разжёвывать кашку для несчастного ребёнка.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616298
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята тут вообще тема не про Java. Это Unix админская задача. И решать ее надо на всех
этих bash/python/perl e.t.c. Плюс маппинг uid/gid => нужно тянуть из операционки.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616299
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, не внимательно читали условие задачи. Написано же в текстовом файле. А не из системы брать. А читать данные из файла и переводить их из буквенных в цифровые значения.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616305
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel, по твоему expected варианту при декодировании shell мы должны получить целое число 2000.

Верно?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616310
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,да. А при декодинге root - 0
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel, а откуда мы возьмем справочник?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616316
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,а откуда тогда они в tar, например? Там же есть вывод и в буквенном виде, и в числовом. Значит эти данные где то есть либо в виде справочника, либо идёт пересчёт буковок в цифры.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616321
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком еще tar?
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616324
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
Стандартная unix утилита. Да, да, её порт есть и под Винду. Вот он умеет показывать владелец/группа файлов архива как в буквенном, так и в числовом виде. В зависимости от ключей.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616329
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackeAngel, cygwin'овский tar тоже это умеет, без установленного cygwin
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616342
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПлюс маппинг uid/gid => нужно тянуть из операционки.Согласно API - именно оттуда он и тянется.
У человека проблема с написанием и тестированием кода.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616354
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта отсылка к tar - интересна но она отбрасывает нас на шаг в сторону от проблемы.
...
Рейтинг: 0 / 0
Пересчить UID и/или GID из слов в цифры
    #39616369
dimonz80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackeAngelСразу скажу, я не знаю как это делается, даже теоретически, поэтому прошу не наезжать. В общем есть файл с uid/gid(root, shell,system,user и тд), надо пересчитать или перевести их в цифры. Как?

как-то так...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileOwnerAttributeView;
import java.nio.file.attribute.UserPrincipal;

public class FileOwner {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get(System.getProperty("user.home"));
        FileOwnerAttributeView ownerAttributeView = Files.getFileAttributeView(path, FileOwnerAttributeView.class);
        UserPrincipal owner = ownerAttributeView.getOwner();
        System.out.println("owner name: " + owner.getName());
        System.out.println("owner UID: " + owner.hashCode());
        
    }

}



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


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