Автор Тема: Useradd въпрос...  (Прочетена 1854 пъти)

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Useradd въпрос...
« -: 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
Ако някой може да помогне,ще се радвам много!
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Useradd въпрос...
« Отговор #1 -: Oct 01, 2007, 13:42 »
От useradd(8):
Цитат
      -p, --password PASSWORD
          The encrypted password, as returned by crypt(3). The default is to
          disable the account.
Активен

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Useradd въпрос...
« Отговор #2 -: Oct 01, 2007, 17:55 »
Не мога да те разбера!Би ли ми разяснил,ако може!
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Gaara

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian
  • Window Manager: E17
    • Профил
Useradd въпрос...
« Отговор #4 -: Oct 01, 2007, 21:35 »
Още от useradd(8):

Цитат

       -d, --home HOME_DIR
           The new user will be created using HOME_DIR as the value for the
           user’s login directory. The default is to append the LOGIN name to
           BASE_DIR and use that as the login directory name. The directory
           HOME_DIR does not have to exist but will not be created if it is
           missing.

..........................................................................................
.....

       -m, --create-home
           The user’s home directory will be created if it does not exist. The
           files contained in SKEL_DIR will be copied to the home directory if
           the -k option is used, otherwise the files contained in /etc/skel
           will be used instead. Any directories contained in SKEL_DIR or
           /etc/skel will be created in the user’s home directory as well. The
           -k option is only valid in conjunction with the -m option. The
           default is to not create the directory and to not copy any files.
           This option may not function correctly if the username has a / in
           it.

Активен

Last night, Darth Vader came down from planet Vulcan and told me that if you don't install Debian, he'd melt your brain.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Useradd въпрос...
« Отговор #5 -: Oct 01, 2007, 22:54 »
Ако наистина трябва PHP скрипт да го прави, нали се сещаш, че apache трябва да ти работи с root привилегии...или useradd да си е добавен както следва в sudoers. И двете неща са доста грозни по принцип, да не говорим на какви секюрити рискове подлагаш системата, при положение че не escape-неш като хората това дето ти се дава от потребителя '<img'>

На твое място въобще не бих си позволил такива рискове. Много по-добър вариант е PHP или шел скрипт, който се изпълнява със суперюзърски привилегии всяка минута през крон-а, проверява дали има заявка за нов потребител и го създава.

И най-накрая, въобще не бих си играл с useradd. Бих си сглобил сам реда в passwd и shadow и бих го пльоснал там. Може да не е толкова удобно, ама да давам излишни привилегии за важни неща...не че съм параноик, даже напротив, ама това ми идва в повече..
Активен

"Knowledge is power" - France is Bacon

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Useradd въпрос...
« Отговор #6 -: Oct 02, 2007, 09:39 »
@emagi:

'marin' прилича ли ти на криптирана парола?

@gat3way:

Писането в passwd и shadow понеже не изисква root привилегии,  за разлика от изпълнението на useradd? Ще прощаваш, но това малко  ми прилича  на твоя patch за TTL на  пакетите - вместо да използваш ipt_TTL модула за netfilter. Явно си по hardcore решенията. :)
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Useradd въпрос...
« Отговор #7 -: Oct 02, 2007, 10:11 »
Писането във файловете елиминира нуждата да се вика външно binary с прекалено много привилегии. Това от една страна елиминира риска от всякакви гадости, които потребителя набие, за да си създаде например потребител с uid=0 или пък да изпълнява други команди. Защото дори да му обвиеш входа с кавички, никой не ти гарантира, че няма да реши да сложи " -u 0" в потребителското име например...или да се пробва да прави други глупости.

От друга страна, да речем че позволиш sudo useradd..не може да си сигурен, че няма да открие някой друг remote execution бъг по PHP скриптовете и да не си създаде след това superuser-ски акаунт '<img'>

BTW, що си мислиш че е много сложно? PHP си има crypt(), единственият забавен момент е че се налага salt-a да ти е "$1$<осем_случайни_символа>$", всичко останало е лепене на стрингове и file i/o...мисля че ще се реализира на не повече от 20 реда  '<img'>



Активен

"Knowledge is power" - France is Bacon

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Useradd въпрос...
« Отговор #8 -: Oct 02, 2007, 11:42 »
Не си мисля, че е сложно. Мисля, че не е по-сигурно, понеже за да пишеш в passwd и shadow ти трябват root права, т.е. php скрипта трябва да се изпълнява като root, т.е. пак ако се намери exploit може да направи поразии въпросния xax0r.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Useradd въпрос...
« Отговор #9 -: Oct 02, 2007, 12:02 »
То при всички положения ще ти трябват root права. Аз пак казвам, че въпросният скрипт не трябва да има нищо общо с уеб сървъра, просто не е добра идея въобще apache юзъра да може да прави такива неща. Отделен скрипт в крон-а например е добра идея. На него спокойно могат да му се делегират суперюзърски привилегии стига разбира се само root-a да може да го модифицира, както и да си сигурен, че това, което потребителят е въвел, е безопасно. Сега няма да споря, че човек ако се постарае, може да си санитизира входните данни, обаче винаги трябва да се има едно наум, когато викаш system() или нещо от сорта. Просто аз бих се чувствал по-спокоен ако си реша генерално проблема с разни лоши metacharacters и прочее неща '<img'>

Разбира се, не е гаранция какво ще влезе в двата файла при положение че пишеш в тях, ама да речем си лош хахор, ще ти е доста трудно да "инжектираш" едни и същи неща и в двата файла (passwd/shadow) и като резултат PAM или каквото там автентицира потребителите, да го хареса '<img'>
Активен

"Knowledge is power" - France is Bacon

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Useradd въпрос...
« Отговор #10 -: Oct 02, 2007, 12:46 »
gat3way, никъде не съм казал, че да се дават права на потребителя на apache-а да изпълнява useradd е правилно. Напротив, аз лично никога не бих го направил.

Просто казвам, че решението с директно писане във файловете ми се струва доста грубо. Освен това дори да пишеш директно в passwd и shadow пак трябва да си правиш валидация на входните данни...
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Useradd въпрос...
« Отговор #11 -: Oct 02, 2007, 13:31 »
Мислех по въпроса за това какво може да влезе там, честно казано освен да ги пълниш с глупости, друго ще е трудно да постигнеш '<img'>  В смисъл, можеш да вкараш правилния ред в shadow, но това същото ще трябва да влезе и в passwd и автентикацията няма да мине...както и можеш да вмъкнеш валиден ред в passwd, но пък същият ще влезе и в shadow...и пак няма да мине автентикацията. Най-грубото, което можеш да направиш е примерно да вкараш още един ред за root или друг съществуващ потребител с идеята да прецакаш автентикацията, само дето като гледам при мен, PAM хваща първият ред от този файл, който му съответства на username-a и не се хаби да продължава нататък да рови из passwd. Така че не знам, освен да превърнеш двата файла в кочина, друго лошо надали ще можеш да свършиш. Разбира се, това на пръв поглед, може пък и да се измисли нещо умно и хахорско по въпроса '<img'>



Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Useradd въпрос...
« Отговор #12 -: Oct 02, 2007, 14:42 »
Бла, шибана работа, успях да го излъжа да ми създаде потребител по този начин, дори със суперпотребителски права. Значи поне малко елементарно санитизиране на входа ще трябва да има, например да не се допуска \n вътре или да се реже стринга от някой символ нататък, не знам...

Значи връщам си думите назад '<img'>
Активен

"Knowledge is power" - France is Bacon

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
useradd да добавя
Настройка на програми
Bogo 7 1130 Последна публикация Feb 06, 2006, 21:25
от rat
SSH & Useradd въпроси
Настройка на програми
NikolayDONG 3 737 Последна публикация Jul 30, 2013, 21:51
от mimosh