Unix and Zephyr

Many students will find it convenient or even necessary to use public UNIX workstations or log onto one of them remotely.  These workstations—known as the elaines, epics, sagas, etc.—are predominantly located in Sweet Hall and are available for use by anyone with a SUNet ID.  This section will examine the benefits and privacy risks of using these systems.  It assumes the reader is familiar with logging onto one of the above machines and has some rudimentary knowledge of how to navigate in a UNIX-based environment.  For further information on these systems and other services available to you, consult http://www.stanford.edu/group/itss/services/sunetid/leland.comps.html.

Whenever you log onto a terminal session (e.g. elaine, epic, saga, etc.), you automatically subscribe to the Zephyr Notification System.  This system allows users to send and receive messages in real-time, usually between one user and another.  Because all users are subscribed to this service by default, communication between users is greatly enhanced; on the other hand, the potential for online “stalking” is similarly enhanced.  Please consult http://www.mit.edu/afs/sipb/project/doc/izephyr/html/izephyr.html for more in-depth details.

“I just called to say…” — Talking to other users with zwrite

Perhaps the most commonly used command by those who are “online” is zwrite, which can be described as an archetype to instant messaging.  It allows you to send messages to other users and have those messages display on their terminal almost immediately.  To send a message to a user type the following at the command line:

fable8:~/> zwrite username

in which case you will be prompted with:

Type your message now.  End with control-D or a dot on a line by itself.

After typing a message, the recipient should see something like the following:

From: Sender's Name <Sender's Email Address> on fable8.Stanford.EDU
To: username@IR.STANFORD.EDU
All your sashimi belong to us!  

If the user is subscribing to messages (more on that later), this message will most likely appear in the recipient’s terminal window.  They have no control over what text the message replaces, but can always press the key combination control-L to restore their screen.

Savvy users may  modify the way they subscribe to Zephyr.  In this case, some of them will be able to know when you’ve initiated a zwrite to them even before you’ve finished writing the message and it has been queued for delivery.  They will be notified by some default message (sometimes known as a ping) as soon as you type zwrite username (followed by pressing the return key) regardless of whether you send the message or cancel the zwrite.  Fortunately, the addition of the command line switch “-n” prevents such a ping from being sent, as in zwrite –n username.

“Where are my friends when I need them most?” — zlocate and znol

In some cases the recipient may not be logged in, so you may get a message such as:

username: Not logged in or not subscribing to messages

So how do you find out whether a user is logged in?  Several options are available.  For the moment, we will focus on two zephyr utilities: zlocate and znol.

When you determine whether a particular user is logged on, use zlocate:

fable8:~/> zlocate username

which either gives you:

fable8.Stanford.EDU                        pts/4   Tue May 15 21:59:36 2001

if username is logged in or

Hidden or not logged-in

if not.   If you want to query for more than one user then type the usernames separated by spaces: zlocate user1 user2.  Most likely, however, you have a set list of people you want to query, but retyping that list each time you want to make an inquiry can be cumbersome.   Fortunately, you can use znol to tell you who among a list is logged on.  You’ll need a list of users placed in a file called .anyone in your home directory.  Here’s an example:

username1
username2
username3
username4

Assuming everyone is logged on except username2, typing znol at the prompt yields something like:

username1: saga7.Stanford.EDU      pts/1   Tue May 15 23:14:48 2001
username3: myth5.Stanford.EDU    pts/15  Tue May 15 21:53:18 2001
username4: fable8.Stanford.EDU pts/1   Tue May 15 18:02:46 2001

“Everybody needs a little time away, to hide away…” — zctl

Sometimes, you may not want znol or zlocate to report that you are online, perhaps because of an upcoming project deadline.  One simple way to “hide” yourself is to type zctl hide.  Now, Zephyr will report that you are hidden or not online (though it will still forward any zwrites to you from determined stalkers).  To make yourself visible again, type zctl unhide.  As we will see later, because of the way the network is setup, alternative methods exist for determining whether you are online, so you cannot completely hide in the sense of being anonymously logged in. 

Within the services provided by Zephyr, however, we can use zctl to limit other people’s ability to communicate with you and knowledge of your online presence.  This program allows you to define the kind of communications you want to have and works in conjunction with a file called .zephy.vars. Simply, .zephy.vars defines your exposure level to the network environment.

Exposure levels affect the operation of Zephyr and its interaction with the user.  You can set the exposure level by modifying the appropriate line in your .zephy.vars file (if you have one) or  typing zctl set exposure level, where level can be one of the following (in order of increasing visibility):

• none

The user is no longer registered with Zephyr and thus no longer subscribes to any messages.   The user no longer shows up as logged in and will not receive any messages via zwrite.

• realm-visible

This is the default setting.  The user is registered with Zephyr and thus retrieves messages for all subscriptions. (To keep track of what your current Zephyr subscriptions are, type zctl retrieve).  No login or logout announcements will be sent and zwrites are received.

• realm-announced

Login and logout announcements will be sent to other users who have explicitly requested such notification via subscriptions. 

• net-visible

Login and logout announcements will be sent to all users in your .anyone file.


Questions? Comments? Suggestions? Send mail to: privacy_project@CS.Stanford.EDUlord-ganesha.jpg (11032 bytes)