From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_20,DNS_FROM_OPENWHOIS, FUZZY_XPILL,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.2.5 Date: Sat, 22 May 2010 06:44:49 +0400 From: MisHel64 X-Mailer: The Bat! (v4.1.9) Professional Organization: home X-Priority: 3 (Normal) Message-ID: <767584533.20100522064449@Bk.Ru> To: ALT Linux Community general discussions In-Reply-To: <201004130946.51098.a_s_y@sama.ru> References: <201004130946.51098.a_s_y@sama.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit X-Mras: Ok Subject: [Comm] =?koi8-r?b?8M/M2NrP18HUxczJIMkg08vSydDU2Q==?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 02:44:53 -0000 Archived-At: List-Archive: List-Post: Здравствуйте. Я не очень силен в шелле, и хотел бы попросить помощь сообщества. Мне нужно несколько скриптов. Первый скрипт. 1) Если переданное имя пользователя не известно системе, то использовать имя специальной гостевой учетной записи. 2) Если в определенной папке нет папки с именем пользователя, то создать такую папку, назначить ее владельцем пользователя, дать ему права на чтение, запись и удаление файла. 3) Если это гостевая учетная запись, и папки нет, то создать такую папку, назначить ее владельцем пользователя, дать ему права на чтение, запись, но запретить удаление файла, и изменение уже существующих файлов. 4) Если это гостевая учетная запись, и папка есть, то установить права на папку и лежащие в ней файлы таким образом, что бы он мог создавать новые файлы, читать уже существующие, но не мог удалять и изменять уже существующие файлы. Вновь создаваемые файлы, удалять разрешить. Второй скрипт, полная противоположность первому. Если в определенной папке существует папка с именем пользователя, и она пуста, то эту папку удалить. Проверить все папки в определенной папке. Если вложенная папка пуста, то считать ее именем пользователя. Если папка пуста, то ее удалить. И если пользователь входит в определенную группу, то удалить и пользователя. Потом нужно будет доработать эти скрипты. При заходе пользователя проверить наличие этого пользователя, и если он отсутствует в системе, то создать этого пользователя, запомнить с какого IP он зашел в систему. Причем не просто создать, а очень желательно с UID из определенного диапазона, а не с первым свободным, и засунуть его в специальную гостевую группу. Если пользователь уже существует в системе, но зашел с IP не из той же сети /24, или не входит в специальную гостевую группу, то изменить имя пользователя, и сделать как описано выше. Если в определенной папке существует папка с именем пользователя, и она пуста, то эту папку удалить. Если при этом пользователь входит в определенную гостевую группу, и удалить и пользователя из системы. Еще одна сложность, это как проверить принадлежит ли переданный ип определенной сети. Большая сложность, что сеть может иметь маску от 24 до 17. Часть этого я уже реализовал, часть вызывает сложности. IP адрес пользователя, его имя передаются в скрипты в качестве параметра. Скрипты выполняются от рута, и изменить это нельзя. Вновь создаваемые пользователи не должны получить возможность локально входить систему. Так же не должны получить возможности входить используя SSH или подобное. -- С уважением, MisHel64 mailto:MisHel64@Bk.Ru