The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"bash + регистрация"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"bash + регистрация"  
Сообщение от lnick email(ok) on 27-Фев-07, 11:37 
Доброе время суток.
Мне необходимо написать скрипт, который принимает два значения (пользователь и пароль) и регистрирует пользователя в системе.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "bash + регистрация"  
Сообщение от newser (ok) on 27-Фев-07, 11:52 
>Доброе время суток.
>Мне необходимо написать скрипт, который принимает два значения (пользователь и пароль) и
>регистрирует пользователя в системе.

Необходимо написать - напишите! Только непонятно зачем...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "bash + регистрация"  
Сообщение от lnick email(ok) on 27-Фев-07, 12:02 
>Необходимо написать - напишите! Только непонятно зачем...
Я незнаю как.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "bash + регистрация"  
Сообщение от newser (ok) on 27-Фев-07, 12:41 
>>Необходимо написать - напишите! Только непонятно зачем...
>Я незнаю как.

ЗАЧЕМ Вам это нужно? Какая задача? Опишите подробнее.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "bash + регистрация"  
Сообщение от lnick email(ok) on 27-Фев-07, 12:51 
>ЗАЧЕМ Вам это нужно? Какая задача? Опишите подробнее.
Нужно чтобы пользователи получили учетки на САМБА сервере. Хочу сделать это автоматически. Через ВЕБ-интерфейс. Написал интерфейс на РНР. Интерфейс регистрации есть. А дальше незнаю как.
Вот решил из РНР вызывать команды шела. Никак.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "bash + регистрация"  
Сообщение от newser (ok) on 27-Фев-07, 13:27 
>>ЗАЧЕМ Вам это нужно? Какая задача? Опишите подробнее.
>Нужно чтобы пользователи получили учетки на САМБА сервере. Хочу сделать это автоматически.
>Через ВЕБ-интерфейс. Написал интерфейс на РНР. Интерфейс регистрации есть. А дальше
>незнаю как.
>Вот решил из РНР вызывать команды шела. Никак.

http://tldp.org/LDP/abs/html/ - руководство по программированию на bash.

Удачи!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "bash + регистрация"  
Сообщение от phpcoder (??) on 27-Фев-07, 14:20 
>Мне необходимо написать скрипт, который принимает два значения (пользователь и пароль) и
>регистрирует пользователя в системе.

Что вы подразумеваете под "регистрирует пользователя в системе"? Заводит аккаунт для него, добавляя запись в /etc/passwd и другие файлы или что-то другое?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "bash + регистрация"  
Сообщение от lnick email(ok) on 27-Фев-07, 20:10 
>Что вы подразумеваете под "регистрирует пользователя в системе"? Заводит аккаунт для него,
>добавляя запись в /etc/passwd и другие файлы или что-то другое?


Да. Именно заводит аккаунт для пользователя.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "bash + регистрация"  
Сообщение от phpcoder (??) on 28-Фев-07, 12:28 
>>Что вы подразумеваете под "регистрирует пользователя в системе"? Заводит аккаунт для него,
>>добавляя запись в /etc/passwd и другие файлы или что-то другое?
>
>Да. Именно заводит аккаунт для пользователя.

Гм. Ну попробую помочь, ведь задача весьма проста:

#!/bin/sh

# проверяем количество аргументов: должно быть два
if [ $# -ne 2]; then
  echo "Usage: $0 username password" >&2
  exit 1
fi

USER="$1"
PASS="$2"

# проверяем, чтобы имя пользователя и пароль не были пустыми
if [ -z "$USER" -o -z "$PASS" ]; then
  echo "User name or password shouldn't be empty!" >&2
  exit 1
fi

# добавляет пользователя
useradd -c "Autocreated user" "$USER"
if [ $? -ne 0 ]; then
  echo "Can't create user $USER: useradd fails." >&2
  exit 1
fi

# устанавливает пароль для него
printf '%s\n' "$PASS" | /usr/bin/passwd "$USER" --stdin >/dev/null
if [ $? -ne 0 ]; then
  echo "Can't set password for user $USER: passwd fails." >&2
  exit 1
fi

echo "User $USER was successfully created."

Скрипт я не проверял, но работать должен. Задание пароля через пайп может работать не везде, так как не все passwd это поддерживают. Но, знаю точно, что на CentOS 4.3 это работать должно.

В принципе код весьма простой и понятный, как по мне :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "bash + регистрация"  
Сообщение от phpcoder (??) on 28-Фев-07, 12:30 

Вот тут я допустил синтаксическую ошибку:

>if [ $# -ne 2]; then

Нужно добавить пробел после двойки, перед закрывающей квадратной скобкой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "bash + регистрация"  
Сообщение от lnick email(??) on 28-Фев-07, 14:53 
Большое тебе спасибо. Все работает.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "bash + регистрация"  
Сообщение от lnick email(??) on 28-Фев-07, 16:25 
printf '%s\n' "$PASS" | smbpasswd -a  $USER -s>/dev/null
if [ $? -ne 0 ]; then
  echo "Can't set password for user $USER: passwd fails." >&2
  exit 1
fi

это идет регистрация на самбе. Что то тут не то.

Mismatch - password unchanged.
Unable to get new password.
Can't set password for user asd: passwd fails.

Выдает

printf '%s\n' "$PASS" | smbpasswd -a -s $USER >/dev/null

Тоже ошибка

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "bash + регистрация"  
Сообщение от phpcoder (??) on 28-Фев-07, 17:17 
-printf '%s\n' "$PASS" | smbpasswd -a  $USER -s>/dev/null
+printf '\n%s\n' "$PASS" | smbpasswd -a  $USER -s >/dev/null
if [ $? -ne 0 ]; then
-  echo "Can't set password for user $USER: passwd fails." >&2
-  echo "Can't set password for user $USER: smbpasswd fails." >&2
  exit 1
fi

Так должно работать. (С Самбой и паролями не работал, так что пришлось вместо вас читать man smbpasswd: http://www.hmug.org/man/8/smbpasswd.php

Неработало потому, что smbpasswd ждал ввода двух паролей -- старого и нового. А вы ему передавали только одну строчку (он воспринимал её как старый пароль). Согласно ману, при опции -a нужно просто нажать Enter (что эквивалентно символу новой строки -- '\n') для старого пароля.

HTH

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "bash + регистрация"  
Сообщение от lnick email(ok) on 01-Мрт-07, 16:41 
>+printf '\n%s\n' "$PASS" | smbpasswd -a  $USER -s >/dev/null

С одним отличием.
printf '%s\n%s\n' "$PASS" "$PASS" | smbpasswd -a  $USER -s >/dev/null

Но всеравно огромное спасибо.
Bсе работает.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "bash + регистрация"  
Сообщение от Xalio on 11-Июн-07, 02:33 
http://www.publichouse.nu

http://www.litox.ru/index.php?name=News&file=article&sid=573


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру