467e56bfdc
Create a new layer to manage the StarlingX Flock specific recipes Signed-off-by: Saul Wold <sgw@linux.intel.com>
861 lines
36 KiB
Diff
861 lines
36 KiB
Diff
Index: cgcs-users-1.0-r0/AUTHORS.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/AUTHORS.orig
|
||
@@ -0,0 +1,15 @@
|
||
+AUTHORS OF PROJECT IBSH
|
||
+
|
||
+Attila Nagyidai <attila at ibsh.net>
|
||
+ * Original program author, project admin, developer.
|
||
+
|
||
+Shy <shy at ibsh.net>
|
||
+ * Developer, debugger, tester, and many more.
|
||
+
|
||
+Witzy <witzy at ibsh.net>
|
||
+ * Developer, debugger, tester, and many more.
|
||
+
|
||
+http://www.ibsh.net
|
||
+irc:
|
||
+irc.freenode.net #ibsh
|
||
+irc.geek-power.org #ibsh
|
||
Index: cgcs-users-1.0-r0/BUGS.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/BUGS.orig
|
||
@@ -0,0 +1,19 @@
|
||
+** Open BUGS **
|
||
+None, so far.
|
||
+
|
||
+** Fixed BUGS **
|
||
+- Input length checking on all inputs, string copies, etc. is fixed.
|
||
+- The myscanf function will no longer accept more then 80 chars at once,
|
||
+so ibsh hopefully wont crash on a too long input.
|
||
+- Added signal.h in the header file, the lack of it caused compilation
|
||
+problems on some systems.
|
||
+- Fixed the infinite loop in DelBadFiles. This function is temporarily
|
||
+taken out of the project
|
||
+- Removed the involvment of /bin/sh from system. Added path checking.
|
||
+- In jail root, not only ../ is not allowed, but .. too.
|
||
+- Fixed a bug, that happened on bsd, when the user pressed ^D.
|
||
+- Fixed a bug with opendir
|
||
+- Fixed a format string vulnerability in logprintbadfile(). Thanks to
|
||
+Kim Streich for the report.
|
||
+
|
||
+2005.05.23
|
||
Index: cgcs-users-1.0-r0/ChangeLog.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/ChangeLog.orig
|
||
@@ -0,0 +1,34 @@
|
||
+0.3e - a buffer overflow and a string bug, both found by RazoR (Nikolay Alexandrov), fixed.
|
||
+0.3d - a format string vulnerability, found by Kim Streich, is fixed.
|
||
+0.3b-0.3c - bugfixes.
|
||
+0.3a - The admin has the opportunity, to create separate cmds file for each user.
|
||
+ This way the sysadmin has complete control over sensitive applications, which
|
||
+ should only be allowed to a selected few.
|
||
+ - The admin has the opportunity, to create separate xtns file for each user.
|
||
+ - The extensions policy has been changed. Now both globals.xtns and the user
|
||
+ extension files will list the extensions, that are _allowed_ ! In earlier versions,
|
||
+ the forbidden extensions were listed, that is allow everything, except to deny a few.
|
||
+ From this version on, it's deny everything, except allow the ones, listed in these files.
|
||
+ - While the code for the search of illegal/dangerous material stored in user space is
|
||
+ back, it will not erase any files any more. Instead, it will remove all
|
||
+ rights from that file, so it can not be executed, or read. Files, with the +x bit set,
|
||
+ will be chmodded to -x. This is another "defense line" to stop the user to execute
|
||
+ programs, stored in user space.
|
||
+ - The access to all linux binaries, and source code files, stored in user space, if any,
|
||
+ will be blocked.
|
||
+ - Absolute path for restricted users can not be longer then 255 characters. All files,
|
||
+ that are longer (with full path), will be renamed.
|
||
+ - Minor bug fixes.
|
||
+
|
||
+0.2a - Major bug fixes.
|
||
+ - User activities are logged with syslog.
|
||
+ - hhsytem revised, hardened. /bin/sh isnt involved anymore into program starting.
|
||
+ If the home directory is in the PATH, it's ignored.
|
||
+ - erasing illegal content is temporarily suspended and removed.
|
||
+
|
||
+0.1b - Major bug fixes.
|
||
+ - The config files are accidentally missing from this release!
|
||
+
|
||
+0.1a - The first version of the program.
|
||
+
|
||
+2005.05.23.
|
||
Index: cgcs-users-1.0-r0/CONTRIBUTORS.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/CONTRIBUTORS.orig
|
||
@@ -0,0 +1,7 @@
|
||
+CONTRIBUTORS TO PROJECT IBSH
|
||
+
|
||
+Kim Streich <kstreich at gmail.com>
|
||
+ * bug finder, debugger, tester.
|
||
+
|
||
+RazoR (Nikolay Alexandrov) <Nikolay@Alexandrov.ws>
|
||
+ * bug finder, debugger, tester.
|
||
Index: cgcs-users-1.0-r0/COPYING.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/COPYING.orig
|
||
@@ -0,0 +1,340 @@
|
||
+ GNU GENERAL PUBLIC LICENSE
|
||
+ Version 2, June 1991
|
||
+
|
||
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
+ Everyone is permitted to copy and distribute verbatim copies
|
||
+ of this license document, but changing it is not allowed.
|
||
+
|
||
+ Preamble
|
||
+
|
||
+ The licenses for most software are designed to take away your
|
||
+freedom to share and change it. By contrast, the GNU General Public
|
||
+License is intended to guarantee your freedom to share and change free
|
||
+software--to make sure the software is free for all its users. This
|
||
+General Public License applies to most of the Free Software
|
||
+Foundation's software and to any other program whose authors commit to
|
||
+using it. (Some other Free Software Foundation software is covered by
|
||
+the GNU Library General Public License instead.) You can apply it to
|
||
+your programs, too.
|
||
+
|
||
+ When we speak of free software, we are referring to freedom, not
|
||
+price. Our General Public Licenses are designed to make sure that you
|
||
+have the freedom to distribute copies of free software (and charge for
|
||
+this service if you wish), that you receive source code or can get it
|
||
+if you want it, that you can change the software or use pieces of it
|
||
+in new free programs; and that you know you can do these things.
|
||
+
|
||
+ To protect your rights, we need to make restrictions that forbid
|
||
+anyone to deny you these rights or to ask you to surrender the rights.
|
||
+These restrictions translate to certain responsibilities for you if you
|
||
+distribute copies of the software, or if you modify it.
|
||
+
|
||
+ For example, if you distribute copies of such a program, whether
|
||
+gratis or for a fee, you must give the recipients all the rights that
|
||
+you have. You must make sure that they, too, receive or can get the
|
||
+source code. And you must show them these terms so they know their
|
||
+rights.
|
||
+
|
||
+ We protect your rights with two steps: (1) copyright the software, and
|
||
+(2) offer you this license which gives you legal permission to copy,
|
||
+distribute and/or modify the software.
|
||
+
|
||
+ Also, for each author's protection and ours, we want to make certain
|
||
+that everyone understands that there is no warranty for this free
|
||
+software. If the software is modified by someone else and passed on, we
|
||
+want its recipients to know that what they have is not the original, so
|
||
+that any problems introduced by others will not reflect on the original
|
||
+authors' reputations.
|
||
+
|
||
+ Finally, any free program is threatened constantly by software
|
||
+patents. We wish to avoid the danger that redistributors of a free
|
||
+program will individually obtain patent licenses, in effect making the
|
||
+program proprietary. To prevent this, we have made it clear that any
|
||
+patent must be licensed for everyone's free use or not licensed at all.
|
||
+
|
||
+ The precise terms and conditions for copying, distribution and
|
||
+modification follow.
|
||
+
|
||
+ GNU GENERAL PUBLIC LICENSE
|
||
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||
+
|
||
+ 0. This License applies to any program or other work which contains
|
||
+a notice placed by the copyright holder saying it may be distributed
|
||
+under the terms of this General Public License. The "Program", below,
|
||
+refers to any such program or work, and a "work based on the Program"
|
||
+means either the Program or any derivative work under copyright law:
|
||
+that is to say, a work containing the Program or a portion of it,
|
||
+either verbatim or with modifications and/or translated into another
|
||
+language. (Hereinafter, translation is included without limitation in
|
||
+the term "modification".) Each licensee is addressed as "you".
|
||
+
|
||
+Activities other than copying, distribution and modification are not
|
||
+covered by this License; they are outside its scope. The act of
|
||
+running the Program is not restricted, and the output from the Program
|
||
+is covered only if its contents constitute a work based on the
|
||
+Program (independent of having been made by running the Program).
|
||
+Whether that is true depends on what the Program does.
|
||
+
|
||
+ 1. You may copy and distribute verbatim copies of the Program's
|
||
+source code as you receive it, in any medium, provided that you
|
||
+conspicuously and appropriately publish on each copy an appropriate
|
||
+copyright notice and disclaimer of warranty; keep intact all the
|
||
+notices that refer to this License and to the absence of any warranty;
|
||
+and give any other recipients of the Program a copy of this License
|
||
+along with the Program.
|
||
+
|
||
+You may charge a fee for the physical act of transferring a copy, and
|
||
+you may at your option offer warranty protection in exchange for a fee.
|
||
+
|
||
+ 2. You may modify your copy or copies of the Program or any portion
|
||
+of it, thus forming a work based on the Program, and copy and
|
||
+distribute such modifications or work under the terms of Section 1
|
||
+above, provided that you also meet all of these conditions:
|
||
+
|
||
+ a) You must cause the modified files to carry prominent notices
|
||
+ stating that you changed the files and the date of any change.
|
||
+
|
||
+ b) You must cause any work that you distribute or publish, that in
|
||
+ whole or in part contains or is derived from the Program or any
|
||
+ part thereof, to be licensed as a whole at no charge to all third
|
||
+ parties under the terms of this License.
|
||
+
|
||
+ c) If the modified program normally reads commands interactively
|
||
+ when run, you must cause it, when started running for such
|
||
+ interactive use in the most ordinary way, to print or display an
|
||
+ announcement including an appropriate copyright notice and a
|
||
+ notice that there is no warranty (or else, saying that you provide
|
||
+ a warranty) and that users may redistribute the program under
|
||
+ these conditions, and telling the user how to view a copy of this
|
||
+ License. (Exception: if the Program itself is interactive but
|
||
+ does not normally print such an announcement, your work based on
|
||
+ the Program is not required to print an announcement.)
|
||
+
|
||
+These requirements apply to the modified work as a whole. If
|
||
+identifiable sections of that work are not derived from the Program,
|
||
+and can be reasonably considered independent and separate works in
|
||
+themselves, then this License, and its terms, do not apply to those
|
||
+sections when you distribute them as separate works. But when you
|
||
+distribute the same sections as part of a whole which is a work based
|
||
+on the Program, the distribution of the whole must be on the terms of
|
||
+this License, whose permissions for other licensees extend to the
|
||
+entire whole, and thus to each and every part regardless of who wrote it.
|
||
+
|
||
+Thus, it is not the intent of this section to claim rights or contest
|
||
+your rights to work written entirely by you; rather, the intent is to
|
||
+exercise the right to control the distribution of derivative or
|
||
+collective works based on the Program.
|
||
+
|
||
+In addition, mere aggregation of another work not based on the Program
|
||
+with the Program (or with a work based on the Program) on a volume of
|
||
+a storage or distribution medium does not bring the other work under
|
||
+the scope of this License.
|
||
+
|
||
+ 3. You may copy and distribute the Program (or a work based on it,
|
||
+under Section 2) in object code or executable form under the terms of
|
||
+Sections 1 and 2 above provided that you also do one of the following:
|
||
+
|
||
+ a) Accompany it with the complete corresponding machine-readable
|
||
+ source code, which must be distributed under the terms of Sections
|
||
+ 1 and 2 above on a medium customarily used for software interchange; or,
|
||
+
|
||
+ b) Accompany it with a written offer, valid for at least three
|
||
+ years, to give any third party, for a charge no more than your
|
||
+ cost of physically performing source distribution, a complete
|
||
+ machine-readable copy of the corresponding source code, to be
|
||
+ distributed under the terms of Sections 1 and 2 above on a medium
|
||
+ customarily used for software interchange; or,
|
||
+
|
||
+ c) Accompany it with the information you received as to the offer
|
||
+ to distribute corresponding source code. (This alternative is
|
||
+ allowed only for noncommercial distribution and only if you
|
||
+ received the program in object code or executable form with such
|
||
+ an offer, in accord with Subsection b above.)
|
||
+
|
||
+The source code for a work means the preferred form of the work for
|
||
+making modifications to it. For an executable work, complete source
|
||
+code means all the source code for all modules it contains, plus any
|
||
+associated interface definition files, plus the scripts used to
|
||
+control compilation and installation of the executable. However, as a
|
||
+special exception, the source code distributed need not include
|
||
+anything that is normally distributed (in either source or binary
|
||
+form) with the major components (compiler, kernel, and so on) of the
|
||
+operating system on which the executable runs, unless that component
|
||
+itself accompanies the executable.
|
||
+
|
||
+If distribution of executable or object code is made by offering
|
||
+access to copy from a designated place, then offering equivalent
|
||
+access to copy the source code from the same place counts as
|
||
+distribution of the source code, even though third parties are not
|
||
+compelled to copy the source along with the object code.
|
||
+
|
||
+ 4. You may not copy, modify, sublicense, or distribute the Program
|
||
+except as expressly provided under this License. Any attempt
|
||
+otherwise to copy, modify, sublicense or distribute the Program is
|
||
+void, and will automatically terminate your rights under this License.
|
||
+However, parties who have received copies, or rights, from you under
|
||
+this License will not have their licenses terminated so long as such
|
||
+parties remain in full compliance.
|
||
+
|
||
+ 5. You are not required to accept this License, since you have not
|
||
+signed it. However, nothing else grants you permission to modify or
|
||
+distribute the Program or its derivative works. These actions are
|
||
+prohibited by law if you do not accept this License. Therefore, by
|
||
+modifying or distributing the Program (or any work based on the
|
||
+Program), you indicate your acceptance of this License to do so, and
|
||
+all its terms and conditions for copying, distributing or modifying
|
||
+the Program or works based on it.
|
||
+
|
||
+ 6. Each time you redistribute the Program (or any work based on the
|
||
+Program), the recipient automatically receives a license from the
|
||
+original licensor to copy, distribute or modify the Program subject to
|
||
+these terms and conditions. You may not impose any further
|
||
+restrictions on the recipients' exercise of the rights granted herein.
|
||
+You are not responsible for enforcing compliance by third parties to
|
||
+this License.
|
||
+
|
||
+ 7. If, as a consequence of a court judgment or allegation of patent
|
||
+infringement or for any other reason (not limited to patent issues),
|
||
+conditions are imposed on you (whether by court order, agreement or
|
||
+otherwise) that contradict the conditions of this License, they do not
|
||
+excuse you from the conditions of this License. If you cannot
|
||
+distribute so as to satisfy simultaneously your obligations under this
|
||
+License and any other pertinent obligations, then as a consequence you
|
||
+may not distribute the Program at all. For example, if a patent
|
||
+license would not permit royalty-free redistribution of the Program by
|
||
+all those who receive copies directly or indirectly through you, then
|
||
+the only way you could satisfy both it and this License would be to
|
||
+refrain entirely from distribution of the Program.
|
||
+
|
||
+If any portion of this section is held invalid or unenforceable under
|
||
+any particular circumstance, the balance of the section is intended to
|
||
+apply and the section as a whole is intended to apply in other
|
||
+circumstances.
|
||
+
|
||
+It is not the purpose of this section to induce you to infringe any
|
||
+patents or other property right claims or to contest validity of any
|
||
+such claims; this section has the sole purpose of protecting the
|
||
+integrity of the free software distribution system, which is
|
||
+implemented by public license practices. Many people have made
|
||
+generous contributions to the wide range of software distributed
|
||
+through that system in reliance on consistent application of that
|
||
+system; it is up to the author/donor to decide if he or she is willing
|
||
+to distribute software through any other system and a licensee cannot
|
||
+impose that choice.
|
||
+
|
||
+This section is intended to make thoroughly clear what is believed to
|
||
+be a consequence of the rest of this License.
|
||
+
|
||
+ 8. If the distribution and/or use of the Program is restricted in
|
||
+certain countries either by patents or by copyrighted interfaces, the
|
||
+original copyright holder who places the Program under this License
|
||
+may add an explicit geographical distribution limitation excluding
|
||
+those countries, so that distribution is permitted only in or among
|
||
+countries not thus excluded. In such case, this License incorporates
|
||
+the limitation as if written in the body of this License.
|
||
+
|
||
+ 9. The Free Software Foundation may publish revised and/or new versions
|
||
+of the General Public License from time to time. Such new versions will
|
||
+be similar in spirit to the present version, but may differ in detail to
|
||
+address new problems or concerns.
|
||
+
|
||
+Each version is given a distinguishing version number. If the Program
|
||
+specifies a version number of this License which applies to it and "any
|
||
+later version", you have the option of following the terms and conditions
|
||
+either of that version or of any later version published by the Free
|
||
+Software Foundation. If the Program does not specify a version number of
|
||
+this License, you may choose any version ever published by the Free Software
|
||
+Foundation.
|
||
+
|
||
+ 10. If you wish to incorporate parts of the Program into other free
|
||
+programs whose distribution conditions are different, write to the author
|
||
+to ask for permission. For software which is copyrighted by the Free
|
||
+Software Foundation, write to the Free Software Foundation; we sometimes
|
||
+make exceptions for this. Our decision will be guided by the two goals
|
||
+of preserving the free status of all derivatives of our free software and
|
||
+of promoting the sharing and reuse of software generally.
|
||
+
|
||
+ NO WARRANTY
|
||
+
|
||
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||
+REPAIR OR CORRECTION.
|
||
+
|
||
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||
+POSSIBILITY OF SUCH DAMAGES.
|
||
+
|
||
+ END OF TERMS AND CONDITIONS
|
||
+
|
||
+ How to Apply These Terms to Your New Programs
|
||
+
|
||
+ If you develop a new program, and you want it to be of the greatest
|
||
+possible use to the public, the best way to achieve this is to make it
|
||
+free software which everyone can redistribute and change under these terms.
|
||
+
|
||
+ To do so, attach the following notices to the program. It is safest
|
||
+to attach them to the start of each source file to most effectively
|
||
+convey the exclusion of warranty; and each file should have at least
|
||
+the "copyright" line and a pointer to where the full notice is found.
|
||
+
|
||
+ <one line to give the program's name and a brief idea of what it does.>
|
||
+ Copyright (C) <year> <name of author>
|
||
+
|
||
+ This program is free software; you can redistribute it and/or modify
|
||
+ it under the terms of the GNU General Public License as published by
|
||
+ the Free Software Foundation; either version 2 of the License, or
|
||
+ (at your option) any later version.
|
||
+
|
||
+ This program is distributed in the hope that it will be useful,
|
||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+ GNU General Public License for more details.
|
||
+
|
||
+ You should have received a copy of the GNU General Public License
|
||
+ along with this program; if not, write to the Free Software
|
||
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
+
|
||
+
|
||
+Also add information on how to contact you by electronic and paper mail.
|
||
+
|
||
+If the program is interactive, make it output a short notice like this
|
||
+when it starts in an interactive mode:
|
||
+
|
||
+ Gnomovision version 69, Copyright (C) year name of author
|
||
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||
+ This is free software, and you are welcome to redistribute it
|
||
+ under certain conditions; type `show c' for details.
|
||
+
|
||
+The hypothetical commands `show w' and `show c' should show the appropriate
|
||
+parts of the General Public License. Of course, the commands you use may
|
||
+be called something other than `show w' and `show c'; they could even be
|
||
+mouse-clicks or menu items--whatever suits your program.
|
||
+
|
||
+You should also get your employer (if you work as a programmer) or your
|
||
+school, if any, to sign a "copyright disclaimer" for the program, if
|
||
+necessary. Here is a sample; alter the names:
|
||
+
|
||
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||
+
|
||
+ <signature of Ty Coon>, 1 April 1989
|
||
+ Ty Coon, President of Vice
|
||
+
|
||
+This General Public License does not permit incorporating your program into
|
||
+proprietary programs. If your program is a subroutine library, you may
|
||
+consider it more useful to permit linking proprietary applications with the
|
||
+library. If this is what you want to do, use the GNU Library General
|
||
+Public License instead of this License.
|
||
Index: cgcs-users-1.0-r0/COPYRIGHT.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/COPYRIGHT.orig
|
||
@@ -0,0 +1,17 @@
|
||
+This file is part of IBSH (Iron Bars Shell) , a restricted Unix shell
|
||
+Copyright (C) 2005 Attila Nagyidai
|
||
+
|
||
+This program is free software; you can redistribute it and/or
|
||
+modify it under the terms of the GNU General Public License
|
||
+as published by the Free Software Foundation; either version 2
|
||
+of the License, or (at your option) any later version.
|
||
+
|
||
+This program is distributed in the hope that it will be useful,
|
||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+GNU General Public License for more details.
|
||
+
|
||
+You should have received a copy of the GNU General Public License
|
||
+along with this program; if not, write to the Free Software
|
||
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
+
|
||
Index: cgcs-users-1.0-r0/INSTALL.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/INSTALL.orig
|
||
@@ -0,0 +1,23 @@
|
||
+Installing ibsh is really easy, so no need for the usual sections
|
||
+in this document. There is no configure script either, so if
|
||
+something wrong, make will fail.
|
||
+
|
||
+# make ibsh
|
||
+# make ibsh_install
|
||
+
|
||
+Optionally:
|
||
+
|
||
+# make clean
|
||
+
|
||
+
|
||
+To uninstall ibsh:
|
||
+
|
||
+# make ibsh_uninstall
|
||
+
|
||
+
|
||
+Of course you will have to enable this shell by:
|
||
+# echo /bin/ibsh >> /etc/shells
|
||
+or however you like it.
|
||
+And make sure the permissions read 0755 !
|
||
+
|
||
+2005.03.24.
|
||
Index: cgcs-users-1.0-r0/main.c.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/main.c.orig
|
||
@@ -0,0 +1,233 @@
|
||
+/*
|
||
+ Created: 03.19.05 11:34:57 by Attila Nagyidai
|
||
+
|
||
+ $Id: C\040Console.c,v 1.1.2.1 2003/08/13 00:38:46 neum Exp $
|
||
+
|
||
+ This file is part of IBSH (Iron Bars Shell) , a restricted Unix shell
|
||
+ Copyright (C) 2005 Attila Nagyidai
|
||
+
|
||
+ This program is free software; you can redistribute it and/or
|
||
+ modify it under the terms of the GNU General Public License
|
||
+ as published by the Free Software Foundation; either version 2
|
||
+ of the License, or (at your option) any later version.
|
||
+
|
||
+ This program is distributed in the hope that it will be useful,
|
||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
+ GNU General Public License for more details.
|
||
+
|
||
+ You should have received a copy of the GNU General Public License
|
||
+ along with this program; if not, write to the Free Software
|
||
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||
+
|
||
+ Author: Attila Nagyidai
|
||
+ Email: na@ent.hu
|
||
+
|
||
+ Co-Author: Shy
|
||
+ Email: shy@cpan.org
|
||
+
|
||
+ Co-Author: Witzy
|
||
+ Email: stazzz@altern.org
|
||
+
|
||
+ URL: http://ibsh.sourceforge.net
|
||
+ IRC: irc.freenode.net #ibsh
|
||
+ RSS, Statistics, etc: http://sourceforge.net/projects/ibsh/
|
||
+
|
||
+*/
|
||
+
|
||
+/* Header files */
|
||
+#include "ibsh.h"
|
||
+
|
||
+/* Main: */
|
||
+/* Handle arguments, read config files, start command processing. */
|
||
+/* IBSH doesnt use any command line arguments, but my text editor */
|
||
+/* uses this code in all new c files to create. And i didnt have the */
|
||
+/* heart to remove it. ;p */
|
||
+/* Technical Description: */
|
||
+/* Get the passwd entry for the user. The uid is easily aquired, since */
|
||
+/* it is the real user id. After that, grab the passwd file entry upon */
|
||
+/* the id, and copy the information to the loggedin struct. */
|
||
+/* Add some signal handlers too. */
|
||
+/* The infinite loop: */
|
||
+/* Get the current directory, the full path. Compute the jailpath from that, */
|
||
+/* that is the directories below the users homedir, which is the jail root. */
|
||
+/* The jail ceiling if you like. Print some prompt to the user with the jailpath, */
|
||
+/* and read stdin for incoming commands. Filter out the bad commands, typos, the */
|
||
+/* not allowed commands. It the command is ok, execute it. If it is a shell builtin, */
|
||
+/* use our builtin code, otherwise use execve. After execve, check if the user didnt */
|
||
+/* use the last command to create some illegal content. If yes, erase that. Give the */
|
||
+/* notice only afterwards. */
|
||
+int main(int argc, char **argv)
|
||
+{
|
||
+ char temp[STRING_SIZE], *buf;
|
||
+ struct stat info;
|
||
+ uid_t ruid, euid;
|
||
+ gid_t rgid, egid;
|
||
+
|
||
+
|
||
+ /* setuid protection */
|
||
+ ruid = getuid();
|
||
+ euid = geteuid();
|
||
+ rgid = getgid();
|
||
+ egid = getegid();
|
||
+ if ( (ruid!=euid) || (ruid==0) || (euid==0) || (rgid!=egid) || (rgid==0) || (egid==0) ) {
|
||
+ OPENLOG;
|
||
+ syslog(LOG_ERR, "setuid/setgid violation!");
|
||
+ CLOSELOG;
|
||
+ printf("ibsh: setuid/setgid violation!! exiting...\n");
|
||
+#ifdef DEBUG
|
||
+ printf("ruid: %d;euid: %d;rgid: %d;egid: %d\n", ruid,euid,rgid,egid);
|
||
+#endif
|
||
+ exit(0);
|
||
+ }
|
||
+
|
||
+ /* To Do: The code of your application goes here */
|
||
+ /* First part: */
|
||
+ /* Get essential information about the user who got this shell: */
|
||
+ /* first the username, then the user id. Upon this, retrieve the */
|
||
+ /* user's record in the passwd file. */
|
||
+ bzero(&loggedin, sizeof(loggedin));
|
||
+ loggedin.uid = getuid();
|
||
+ loggedin.record = getpwuid(loggedin.uid);
|
||
+ if ( loggedin.record == NULL ) {
|
||
+ loggedin.record = getpwnam(loggedin.uname);
|
||
+ if ( loggedin.record == NULL ) {
|
||
+ openlog(loggedin.uname, LOG_PID, LOG_AUTH);
|
||
+ syslog(LOG_ERR, "Can not obtain user information");
|
||
+ printf("Can not obtain user information\n");
|
||
+ closelog();
|
||
+ exit(0);
|
||
+ }
|
||
+ }
|
||
+ strncpy(loggedin.uname, loggedin.record->pw_name, PAM_SIZE);
|
||
+ strncpy(loggedin.udir, loggedin.record->pw_dir, STRING_SIZE);
|
||
+
|
||
+ /* Second part: */
|
||
+ /* Handle some signal catching. Read the configuration files. */
|
||
+ signal( SIGINT, SIG_IGN );
|
||
+ signal( SIGQUIT, SIG_IGN );
|
||
+ signal( SIGTERM, SIG_IGN );
|
||
+ signal( SIGTSTP, SIG_IGN );
|
||
+ LoadConfig();
|
||
+
|
||
+ /* Command mode */
|
||
+ if(argc == 3) {
|
||
+ if ( argv[1][1] == 'c' ) {
|
||
+ if ( CommandOK(argv[2], loggedin.udir, "/", filtered_command) == 1) {
|
||
+ exitcode = hhsystem(filtered_command);
|
||
+ OPENLOG;
|
||
+ syslog(LOG_INFO, "command %s ordered, command %s has been executed.",
|
||
+ argv[2], filtered_command);
|
||
+ printf("command %s ordered, command %s has been executed.\n",
|
||
+ argv[2], filtered_command);
|
||
+ CLOSELOG;
|
||
+ exit(exitcode);
|
||
+ }
|
||
+ printf("CommandOK failed (%s/%s)\n", loggedin.udir, filtered_command);
|
||
+ exit(0);
|
||
+ }
|
||
+ else {
|
||
+ printf("Invalid are (%s)\n", argv[1]);
|
||
+ exit(0);
|
||
+ }
|
||
+ }
|
||
+
|
||
+ OPENLOG;
|
||
+ syslog(LOG_INFO, "user %s has logged in.", loggedin.uname);
|
||
+ CLOSELOG;
|
||
+
|
||
+
|
||
+#ifdef INCLUDE_DELETE_BAD_FILES
|
||
+ DelBadFiles(loggedin.udir);
|
||
+#endif
|
||
+ if ( chdir (loggedin.udir) < 0 )
|
||
+ return -1;
|
||
+
|
||
+
|
||
+ /* Third part: */
|
||
+ /* Start reading and processing the user issued commands. */
|
||
+ /* Split the command by the spaces, filter out anything, */
|
||
+ /* that would allow the user to access files outside the */
|
||
+ /* jail. Filter out multiples and pipes as well. No program */
|
||
+ /* will be allowed to run, unless it is mentioned in the */
|
||
+ /* config files. Files that are created with an extension */
|
||
+ /* that is listed in the other config file, must be deleted! */
|
||
+ for ( ; ; ) {
|
||
+ /* Where is he ? */
|
||
+ if ( getcwd(real_path, STRING_SIZE) == NULL )
|
||
+ return -1;
|
||
+ GetPositionInJail(real_path, loggedin.udir, jail_path);
|
||
+ if ( (strlen(jail_path)) == 0 ) {
|
||
+ strncpy(jail_path, "/", 2);
|
||
+ }
|
||
+ /* We don't want the user to know where he actually is. */
|
||
+ /* This is the prompt! */
|
||
+ printf("[%s]%% ", jail_path);
|
||
+ /* scanf("%s", user_command); */
|
||
+ myscanf(user_command, real_path);
|
||
+ /* Command interpretation and execution. */
|
||
+ if ( (CommandOK(user_command, loggedin.udir, jail_path, filtered_command)) == 0 ) {
|
||
+ printf("Sorry, can't let you do that!\n");
|
||
+ log_attempt(loggedin.uname); /* v0.2a */
|
||
+ continue;
|
||
+ }
|
||
+ /* If the user issued command starts with a shell builtin. */
|
||
+ bzero(temp, strlen(temp));
|
||
+ if ( (buf = strstr(filtered_command, "cd")) != NULL ) {
|
||
+ if ( (strcmp(buf, filtered_command)) == 0 ) {
|
||
+ LTrim3(filtered_command, temp);
|
||
+ if ( (strcmp(temp, real_path)) != 0 ) {
|
||
+ if ( (strcmp(temp, "..")) == 0 ) {
|
||
+ PathMinusOne(jail_path, temp, 1,sizeof(temp));
|
||
+ }
|
||
+ if ( (strcmp(temp, "/")) == 0 ) {
|
||
+ strncpy(temp, loggedin.udir, LINE_SIZE);
|
||
+ }
|
||
+ exitcode = chdir(temp);
|
||
+ if ( exitcode == -1 ) {
|
||
+ printf("ibsh: cd: %s: No such file or directory\n", temp);
|
||
+ }
|
||
+ }
|
||
+ continue;
|
||
+ }
|
||
+ }
|
||
+ else if ( (buf = strstr(filtered_command, "pwd")) != NULL ) {
|
||
+ if ( (strcmp(buf, filtered_command)) == 0 ) {
|
||
+ printf("%s\n", jail_path);
|
||
+ continue;
|
||
+ }
|
||
+ }
|
||
+ else if ( (buf = strstr(filtered_command, "logout")) != NULL ) {
|
||
+ if ( (strcmp(buf, filtered_command)) == 0 ) {
|
||
+ OPENLOG;
|
||
+ syslog(LOG_INFO, "user %s has logged out.", loggedin.uname);
|
||
+ CLOSELOG;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ else if ( (buf = strstr(filtered_command, "exit")) != NULL ) {
|
||
+ if ( (strcmp(buf, filtered_command)) == 0 ) {
|
||
+ OPENLOG;
|
||
+ syslog(LOG_INFO, "user %s has logged out.", loggedin.uname);
|
||
+ printf("user %s has logged out\n", loggedin.uname);
|
||
+ CLOSELOG;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
+ else {
|
||
+ exitcode = hhsystem(filtered_command);
|
||
+ if ( exitcode < 0 ) {
|
||
+ printf("%s\n", strerror(errno));
|
||
+ }
|
||
+ }
|
||
+ if ( getcwd(real_path, STRING_SIZE) == NULL )
|
||
+ return -1;
|
||
+#ifdef INCLUDE_BAD_FILES
|
||
+ DelBadFiles(loggedin.udir);
|
||
+#endif
|
||
+ if ( chdir (real_path) < 0 )
|
||
+ return 1;
|
||
+ }
|
||
+ return 0;
|
||
+}
|
||
+
|
||
Index: cgcs-users-1.0-r0/Makefile.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/Makefile.orig
|
||
@@ -0,0 +1,56 @@
|
||
+# This is the makefile for ibsh 0.3e
|
||
+CC = gcc -g -O3
|
||
+OBJECTS = main.o command.o jail.o execute.o config.o misc.o antixploit.o delbadfiles.o
|
||
+
|
||
+all ibsh: ${OBJECTS} ibsh.h
|
||
+ ${CC} -o ibsh ${OBJECTS}
|
||
+
|
||
+main.o: main.c ibsh.h
|
||
+ ${CC} -c main.c
|
||
+
|
||
+command.o: command.c ibsh.h
|
||
+ ${CC} -c command.c
|
||
+
|
||
+jail.o: jail.c ibsh.h
|
||
+ ${CC} -c jail.c
|
||
+
|
||
+execute.o: execute.c ibsh.h
|
||
+ ${CC} -c execute.c
|
||
+
|
||
+config.o: config.c ibsh.h
|
||
+ ${CC} -c config.c
|
||
+
|
||
+misc.o: misc.c ibsh.h
|
||
+ ${CC} -c misc.c
|
||
+
|
||
+antixploit.o: antixploit.c ibsh.h
|
||
+ ${CC} -c antixploit.c
|
||
+
|
||
+delbadfiles.o: delbadfiles.c ibsh.h
|
||
+ ${CC} -c delbadfiles.c
|
||
+
|
||
+ibsh_install:
|
||
+ cp ./ibsh /bin/
|
||
+ mkdir /etc/ibsh
|
||
+ mkdir /etc/ibsh/cmds
|
||
+ mkdir /etc/ibsh/xtns
|
||
+ cp ./globals.cmds /etc/ibsh/
|
||
+ cp ./globals.xtns /etc/ibsh/
|
||
+
|
||
+ibsh_uninstall:
|
||
+ rm -rf /etc/ibsh/globals.cmds
|
||
+ rm -rf /etc/ibsh/globals.xtns
|
||
+ rm -rf /etc/ibsh/cmds/*.*
|
||
+ rm -rf /etc/ibsh/xtns/*.*
|
||
+ rmdir /etc/ibsh/cmds
|
||
+ rmdir /etc/ibsh/xtns
|
||
+ rmdir /etc/ibsh
|
||
+ rm -rf /bin/ibsh
|
||
+
|
||
+clean:
|
||
+ rm -rf ibsh
|
||
+ rm -rf *.o
|
||
+
|
||
+
|
||
+# 13:49 2005.04.06.
|
||
+
|
||
Index: cgcs-users-1.0-r0/README.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/README.orig
|
||
@@ -0,0 +1,29 @@
|
||
+ Iron Bars SHell - a restricted interactive shell.
|
||
+
|
||
+Overview
|
||
+
|
||
+ For long i have been in the search of a decent restricted shell, but in vain.
|
||
+ The few i found, were really easy to hack, and there were quite a few docs
|
||
+ around on the web about hacking restricted shells with a menu interface.
|
||
+ For my definitions, a restricted shell must not only prevent the user to
|
||
+ escape her jail, but also not to access any files outside the jail.
|
||
+ The system administrator must have total control over the restricted shell.
|
||
+ These are the major features incorporated and realized by ibsh.
|
||
+
|
||
+
|
||
+Features
|
||
+
|
||
+ Please read the changelog.
|
||
+
|
||
+
|
||
+Installation
|
||
+
|
||
+ Read the INSTALL file.
|
||
+
|
||
+
|
||
+Contact
|
||
+ See Authors file.
|
||
+
|
||
+
|
||
+Attila Nagyidai
|
||
+2005.05.23.
|
||
Index: cgcs-users-1.0-r0/Release.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/Release.orig
|
||
@@ -0,0 +1,17 @@
|
||
+This release introduces minor bugfixes, and important new and renewed features.
|
||
+Erasing evil files in the home directory of the user is incorporated again, with
|
||
+many improvements. First of all: no file will be erased! Only the access to them
|
||
+will be blocked. The extension policy has changed, now ibsh blocks those extensions,
|
||
+that are NOT listed. This goes in sync with the usual method of operation of ibsh.
|
||
+The execute permission of files in the user space, will be removed.
|
||
+New customizing features were added: each user now can have her own commands and
|
||
+extensions file, created and maintained by the system administrator. Some users
|
||
+(employees) may require access to special programs. User configuration files allow
|
||
+this access only those, who need it, not for everybody.
|
||
+Ibsh now scans not only the extensions of files, but the content too! Whatever the permission
|
||
+for a certain file exists, if that contains source code, or is a linux binary, access
|
||
+will be blocked.
|
||
+The absolute path for the users is now limited to 255 characters. Longer, already
|
||
+existing filenames will be renamed.
|
||
+
|
||
+06/04/2005
|
||
Index: cgcs-users-1.0-r0/TODO.orig
|
||
===================================================================
|
||
--- /dev/null
|
||
+++ cgcs-users-1.0-r0/TODO.orig
|
||
@@ -0,0 +1,10 @@
|
||
+TODO
|
||
+
|
||
+ - tab completion.
|
||
+ - shell variables.
|
||
+ - some changes to the prompt, maybe variable prompt.
|
||
+ - history
|
||
+ - to be able to use corporate, or other large/complicated programs in a safe
|
||
+ working environment, yet be able to share files/work with others.
|
||
+
|
||
+2005.05.23.
|