|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
|
Удалить учетные записи пользователей, которые принадлежат указанным группам23.04.2015, 12:49. Показов 1059. Ответов 13
Метки нет (Все метки)
Здравствуйте помогите пожалуйста решить задачу. Нужно удалить из системы пользователей, которые принадлежат заданным группам. Измененные системные файлы необходимо записать в новые файлы. А старые системные файлы нужно оставить без изменения. Файл, в котором будут находится имена групп, пользователей которых нужно удалить, передавать при запуске через консоль.
Подскажите куда копать, может быть есть какая-нибудь удобная библиотека или ещё что-то такое. Ну а если кто-то вообще напишет кусок кода, то буду вообще бесконечно рад и благодарен
0
|
|
| 23.04.2015, 12:49 | |
|
Ответы с готовыми решениями:
13
Учетные записи пользователей Учетные записи пользователей
|
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
||||||
| 25.04.2015, 14:45 [ТС] | ||||||
|
Ребята, в общем написал вот такой вот
Прилагаю весь код:
0
|
||||||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||
| 25.04.2015, 15:19 | |||
Сообщение было отмечено Neuling как решение
Решение
ваш "двумерный" массив состоит из 1й строки:
1
|
|||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
||||||
| 25.04.2015, 17:37 [ТС] | ||||||
|
ёмаё, досадно, забыл, что с 0 нумеруется. Стыдно, обидно, досадно. Спасибо вам! А я уже начал думать, с в файле, с которого я считываю, что-то неправильно с кодировкой.
Добавлено через 13 минут Ребята, а кто может подсказать, как вообще удаляются учётные записи пользователей в Unix-системах, средствами программирования на С. В моей ситуации, когда нужно оставить системные файлы без изменений, я ничего лучше не придумал, сделать копии системных файлов, а затем уже работать с ними и удалять строки которые отвечают за тех пользователей, чьи учётные записи нужно удалить. А вот если бы нужно было изменить первоначальный системный файл, можно ли было сделать как-то по другому? я знаю, что существуют библиотеки pwd.h, grp.h и т.д. которые позволяют получать информацию о пользователях, группах и т.д. Возможно-ли как-то удалить пользователя с помощью этих библиотек? Например получить указатель на структуру group и в поле "пользователи группы" записать пробелы, например. Тогда система подтянет эту инфу и пользователи будут удалены из этой группы??? или эти библиотеки "однонаправленные" и созданы только для того, чтобы считать необходимую информацию? Добавлено через 1 час 55 минут Ошибка осталась. Теперь вместо "абракадабры" выводиться пустая строка. Код:
0
|
||||||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
|
| 25.04.2015, 17:42 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
|
| 25.04.2015, 17:43 [ТС] | |
|
З.Ы. С оригинальным файлом f_passwd всё работает. И строка выводиться.
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 25.04.2015, 17:52 | ||
|
ваша Copy_System_File_To_New_System_File не прост о копирует содержимое, но и вставляет. дополнительные пустые строки в новый файл. и вот тут
Добавлено через 3 минуты и для чего в цикле rewind? считывать одну и ту же строку?
1
|
||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
|
| 25.04.2015, 17:56 [ТС] | |
|
Хм, не могу понять, где в алгоритме "Copy_System_File_To_New_System_File " вставляются пустые строки. И почему тогда при открытии текстовым редактором файла f_new_passwd пустых строк нет?
Добавлено через 1 минуту rewind в цикле не нужен, это пока-что так сделал, просто чтобы попробовать.
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||||
| 25.04.2015, 18:01 | ||||
|
2
|
||||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
||||||
| 25.04.2015, 18:11 [ТС] | ||||||
|
"почему тогда при открытии текстовым редактором файла f_new_passwd пустых строк нет?"
Добавлено через 7 минут даже при выполнении кода
0
|
||||||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 25.04.2015, 18:38 | ||
|
да вы правы. я перепутал с puts. в отличие от нее fputs не пишет лишний '\n'
Добавлено через 15 минут
0
|
||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
||||||
| 25.04.2015, 23:44 [ТС] | ||||||
|
retmas, большое спасибо Вам, чтобы помогаете.
Нашёл ошибку. Файл f_new_passwd был открыт для записи, mode - "wt" Поэтому не удавалось произвести его чтение. Открыл затем для чтения и записи "Open_File(&f_new_passwd,argv[2], "a+");" и проблема решилась. Добавлено через 1 минуту З.Ы ахахаха, спасибо!!)) Уже тоже нашёл этот забавный недочёт)))) Добавлено через 5 часов 4 минуты Подскажите, как можно сравнить содержимое двух строк, когда одна объявлена как массив символов char (char str_name[128], а другую нужно взять из массива строк, который объявлен как указатель на указатель (char **members). Хочу сделать так: сначала сравнить длину двух строк,а если длина равна сравнивать посимвольно. Но сразу же проблема, как узнать длину строки во втором случае? sizeof не работает (в данном случае он будет показывать размер указателя). Как именно можно обращаться к строке, которая лежит в **members (там несколько строк, мне надо в цикле сравнивать со всеми ними строку str_name). Место в коде, где должно выполняться данное сравнение, выделил комментариями в верхнем регистре.
0
|
||||||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 26.04.2015, 09:44 | ||
|
не вникал в код цикла, т.к. на беглый взгляд там бардак и непотребство, но замечу:
строки сравнивайте функцией str(n)cmp. а вообще продумайте лучше удаление пользователей. например, следующие случаи: - удаляемый пользователь может состоять и в других группах (не указанных во входном файле). значит нужно удалить его и из них. - пользователь может владеть своей группой (не указанной во входном файле). например, в группе kolya_and_co (указанной во входном файле) есть пользователь vasya, у этого пользователя есть своя группа vasya. при удалении пользователя vasya следует удалить и его группу vasya, если она является первичной для vasya, она не является первичной для других пользователей, она не содержит других пользователей.
1
|
||
|
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 17
|
|
| 26.04.2015, 11:54 [ТС] | |
|
Спасибо за советы!)
Ну да, насколько я понял, каждый пользователь в Unix-подобных системах состоит хотя бы в одной группе (с таким же именем как и у пользователя). Но тут проблем не будет, точно также до первого двоеточия буду считывать имя группы и удалять её, если имя группы == имя пользователя. а вот по поводу удаления пользователей из других групп, не указанных во входном файле, тут уже нужно будет действительно переделать алгоритм.
0
|
|
| 26.04.2015, 11:54 | |
|
Помогаю со студенческими работами здесь
14
Учетные записи пользователей Учетные записи пользователей Активные учетные записи пользователей Настроить учетные записи пользователей Учетные записи пользователей Windows 7 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|