Титла: Useradd въпрос... Публикувано от: emagi в Oct 01, 2007, 13:24 Здравейте!
Искам да ви попитам следното:по принцип добавям потребители чрез adduser,но сега искам чрез PHP скрипт при регистрация,новия потребител да му се създаде акаунт с папка в /home/username! Та пробвах със следния ред в конзолата: useradd marin -d /home/marin -s /bin/shell -p marin Създава се потребител marin има папка marin в /home ,но не мога да се логна с username:marin и password:marin Ако някой може да помогне,ще се радвам много! Титла: Useradd въпрос... Публикувано от: Hapkoc в Oct 01, 2007, 13:42 От useradd(8):
Титла: Useradd въпрос... Публикувано от: emagi в Oct 01, 2007, 17:55 Не мога да те разбера!Би ли ми разяснил,ако може!
Титла: Useradd въпрос... Публикувано от: VladSun в Oct 01, 2007, 18:22 Титла: Useradd въпрос... Публикувано от: Gaara в Oct 01, 2007, 21:35 Още от useradd(8):
Титла: Useradd въпрос... Публикувано от: gat3way в Oct 01, 2007, 22:54 Ако наистина трябва PHP скрипт да го прави, нали се сещаш, че apache трябва да ти работи с root привилегии...или useradd да си е добавен както следва в sudoers. И двете неща са доста грозни по принцип, да не говорим на какви секюрити рискове подлагаш системата, при положение че не escape-неш като хората това дето ти се дава от потребителя
![]() На твое място въобще не бих си позволил такива рискове. Много по-добър вариант е PHP или шел скрипт, който се изпълнява със суперюзърски привилегии всяка минута през крон-а, проверява дали има заявка за нов потребител и го създава. И най-накрая, въобще не бих си играл с useradd. Бих си сглобил сам реда в passwd и shadow и бих го пльоснал там. Може да не е толкова удобно, ама да давам излишни привилегии за важни неща...не че съм параноик, даже напротив, ама това ми идва в повече.. Титла: Useradd въпрос... Публикувано от: Hapkoc в Oct 02, 2007, 09:39 @emagi:
'marin' прилича ли ти на криптирана парола? @gat3way: Писането в passwd и shadow понеже не изисква root привилегии, за разлика от изпълнението на useradd? Ще прощаваш, но това малко ми прилича на твоя patch за TTL на пакетите - вместо да използваш ipt_TTL модула за netfilter. Явно си по hardcore решенията. :) Титла: Useradd въпрос... Публикувано от: gat3way в Oct 02, 2007, 10:11 Писането във файловете елиминира нуждата да се вика външно binary с прекалено много привилегии. Това от една страна елиминира риска от всякакви гадости, които потребителя набие, за да си създаде например потребител с uid=0 или пък да изпълнява други команди. Защото дори да му обвиеш входа с кавички, никой не ти гарантира, че няма да реши да сложи " -u 0" в потребителското име например...или да се пробва да прави други глупости.
От друга страна, да речем че позволиш sudo useradd..не може да си сигурен, че няма да открие някой друг remote execution бъг по PHP скриптовете и да не си създаде след това superuser-ски акаунт ![]() BTW, що си мислиш че е много сложно? PHP си има crypt(), единственият забавен момент е че се налага salt-a да ти е "$1$<осем_случайни_символа>$", всичко останало е лепене на стрингове и file i/o...мисля че ще се реализира на не повече от 20 реда ![]() Титла: Useradd въпрос... Публикувано от: Hapkoc в Oct 02, 2007, 11:42 Не си мисля, че е сложно. Мисля, че не е по-сигурно, понеже за да пишеш в passwd и shadow ти трябват root права, т.е. php скрипта трябва да се изпълнява като root, т.е. пак ако се намери exploit може да направи поразии въпросния xax0r.
Титла: Useradd въпрос... Публикувано от: gat3way в Oct 02, 2007, 12:02 То при всички положения ще ти трябват root права. Аз пак казвам, че въпросният скрипт не трябва да има нищо общо с уеб сървъра, просто не е добра идея въобще apache юзъра да може да прави такива неща. Отделен скрипт в крон-а например е добра идея. На него спокойно могат да му се делегират суперюзърски привилегии стига разбира се само root-a да може да го модифицира, както и да си сигурен, че това, което потребителят е въвел, е безопасно. Сега няма да споря, че човек ако се постарае, може да си санитизира входните данни, обаче винаги трябва да се има едно наум, когато викаш system() или нещо от сорта. Просто аз бих се чувствал по-спокоен ако си реша генерално проблема с разни лоши metacharacters и прочее неща
![]() Разбира се, не е гаранция какво ще влезе в двата файла при положение че пишеш в тях, ама да речем си лош хахор, ще ти е доста трудно да "инжектираш" едни и същи неща и в двата файла (passwd/shadow) и като резултат PAM или каквото там автентицира потребителите, да го хареса ![]() Титла: Useradd въпрос... Публикувано от: Hapkoc в Oct 02, 2007, 12:46 gat3way, никъде не съм казал, че да се дават права на потребителя на apache-а да изпълнява useradd е правилно. Напротив, аз лично никога не бих го направил.
Просто казвам, че решението с директно писане във файловете ми се струва доста грубо. Освен това дори да пишеш директно в passwd и shadow пак трябва да си правиш валидация на входните данни... Титла: Useradd въпрос... Публикувано от: gat3way в Oct 02, 2007, 13:31 Мислех по въпроса за това какво може да влезе там, честно казано освен да ги пълниш с глупости, друго ще е трудно да постигнеш
![]() ![]() Титла: Useradd въпрос... Публикувано от: gat3way в Oct 02, 2007, 14:42 Бла, шибана работа, успях да го излъжа да ми създаде потребител по този начин, дори със суперпотребителски права. Значи поне малко елементарно санитизиране на входа ще трябва да има, например да не се допуска \n вътре или да се реже стринга от някой символ нататък, не знам...
Значи връщам си думите назад ![]() |