DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦02db3025b⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Operator, pragma Module_Name 4 3926, pragma Subsystem Os_Commands, seg_0015d9

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with System_Utilities;
with Terminal;

package Operator is

    procedure Disk_Space;

    procedure Create_User (User : String := ">>USER NAME<<";
                           Password : String := "";
                           Volume : Natural := 0;
                           Response : String := "<PROFILE>");
    -- create a user with the given password on volume (0 => Most Available)

    procedure Delete_User (User : String := ">>USER NAME<<";
                           Response : String := "<PROFILE>");
    -- delete user;  Operator capability is required (or privileged mode)

    procedure Change_Password (User : String := ">>USER NAME<<";
                               Old_Password : String := "";
                               New_Password : String := "";
                               Response : String := "<PROFILE>");

    procedure Create_Session (User : String := ">>USER NAME<<";
                              Session : String := ">>SESSION NAME<<";
                              Response : String := "<PROFILE>");

    procedure Create_Group (Group : String := ">>GROUP NAME<<";
                            Response : String := "<PROFILE>");
    -- Create the named group.  It must currently not exist.  It has
    -- no initial members.

    procedure Delete_Group (Group : String := ">>GROUP NAME<<";
                            Response : String := "<PROFILE>");
    -- Delete the named group.  This operation cannot be used to delete the
    -- group with the same name as an existent user.  Delete_User will
    -- get rid of the group associated with a user.  Acl entries
    -- that refer to a deleted group become inoperative and will be
    -- reclaimed during the next access list compaction.

    procedure Add_To_Group (User : String := ">>USER NAME<<";
                            Group : String := ">>GROUP NAME<<";
                            Response : String := "<PROFILE>");
    -- Add the specified user to the specified group.
    -- Operator privilege is required to execute this operation.

    procedure Remove_From_Group (User : String := ">>USER NAME<<";
                                 Group : String := ">>GROUP NAME<<";
                                 Response : String := "<PROFILE>");
    -- Remove the specified user to the specified group.
    -- Operator privilege is required to execute this operation.

    procedure Display_Group (Group : String := ">>GROUP NAME<<";
                             Response : String := "<PROFILE>");
    -- Display the names of users in the specified group on Current_Output.

    procedure Enable_Privileges (Enable : Boolean := True);
    function Privileged_Mode return Boolean;
    -- If the caller is a member of the predefined group "privileged",
    -- calling this procedure actually enables or disables the
    -- extra capabilities that such a job can have.  General usage is
    -- to not enable privileged mode unless it is really needed so
    -- as to avoid accidently doing something that would normally be
    -- stopped by access control.  All tasks in the job become
    -- privileged when the mode is enabled.  No output is produced
    -- by any of these procedures.  Failure to acquire privileged mode
    -- is indicated only by the absence of the privileges.  Privileged_Mode
    -- returns false in this case.


    procedure Enable_Terminal (Physical_Line : Terminal.Port;
                               Response : String := "<PROFILE>");
    procedure Disable_Terminal (Physical_Line : Terminal.Port;
                                Response : String := "<PROFILE>");
    -- (Dis)allow login on the specified terminal port

    procedure Force_Logoff (Physical_Line : Terminal.Port;
                            Commit_Buffers : Boolean := True;
                            Response : String := "<PROFILE>");
    -- Force a user off of the specified terminal.
    -- Try to commit modified buffers if Commit_Buffers is true.
    -- Each of these operations requires operator capability.

    procedure Set_System_Time (To_Be : String := ">>TIME<<";
                               Response : String := "<PROFILE>");
    -- Requires operator capability.

    procedure Shutdown_Warning (Interval : Duration := 3600.0);
    -- Note that Interval is rounded to the nearest minute.  Less than
    -- 30.0 is rounded to 0.

    function Get_Shutdown_Interval return Duration;

    procedure Archive_On_Shutdown (On : Boolean := True);
    function Get_Archive_On_Shutdown return Boolean;
    -- Archive_On_Shutdown causes the next shutdown to store internal
    -- state in "archive" form, allowing upgrades and conversion of
    -- internal data structures.  It typically takes several hours to
    -- complete a shutdown or restart with archive conversions.

    procedure Show_Shutdown_Settings;
    procedure Cancel_Shutdown;

    procedure Shutdown (Reason : String :=
                           "COPS";           -- Customer operations
                        Explanation : String := "Cause not entered");

    -- Shutdown the machine.  Enter the cause and explanation in the system
    -- log, wait for the Shutdown interval to expire, then log users
    -- off and shutdown the machine.
    -- Enter Reason = "?" to get list of reasons.  The shutdown will not
    -- happen unless Reason is a legal value.


    procedure Explain_Crash;
    -- Reads a shutdown cause and explanation from current input and enters
    -- these in the machine's error log.  Corresponds to the information
    -- entered by shutdown.

    procedure Limit_Login (Sessions : Positive := Positive'Last);
    procedure Show_Login_Limit;
    function Get_Login_Limit return Positive;
    -- Control over the number of simultaneously active user sessions

    procedure Internal_System_Diagnosis;
    -- Requires Operator capability

    subtype Days is Positive;

    procedure Set_Password_Policy
                 (Minimum_Length : Natural := 0;
                  Change_Warning : Days := Operator.Days'Last;
                  Change_Deadline : Days := Operator.Days'Last);
    -- Passwords must be at least Minimum_Length characters long.
    -- Passwords must be changed periodically.  Change_Warning days after the
    -- last change, the user will be notified at login that the account
    -- password should be changed.  Change_Deadline days after the last change,
    -- the user will be unable to login without changing the password.
    -- The default values introduce no restrictions.
    -- Requires Operator capability.

    procedure Show_Password_Policy
                 (For_User : String := System_Utilities.User_Name);
    -- Show the current policy along with the expiration dates for the user(s)
    -- specified.

    function Get_Minimum_Password_Length return Natural;
    function Get_Password_Warning return Days;
    function Get_Password_Deadline return Days;
    -- Return the values last set by Set_Password_Policy.

    function Get_User_Warning
                (For_User : String := System_Utilities.User_Name) return String;
    function Get_User_Deadline
                (For_User : String := System_Utilities.User_Name) return String;
    -- Return the image of the date on which the Warning (Deadline) for
    -- changing the password will be reached.  Can be processed by
    -- Time_Utilities if necessary to have numeric value.  Format is mm/dd/yy.

    pragma Subsystem (Os_Commands);
    pragma Module_Name (4, 3926);

end Operator;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=19 rec1=00 rec2=01 rec3=080
        [0x01] rec0=13 rec1=00 rec2=02 rec3=03a
        [0x02] rec0=12 rec1=00 rec2=03 rec3=060
        [0x03] rec0=13 rec1=00 rec2=04 rec3=038
        [0x04] rec0=17 rec1=00 rec2=05 rec3=044
        [0x05] rec0=18 rec1=00 rec2=06 rec3=024
        [0x06] rec0=14 rec1=00 rec2=07 rec3=04a
        [0x07] rec0=10 rec1=00 rec2=08 rec3=000
    tail 0x20700632c7da1609a19c6 0x42a00088462060003