navarra@casbah.acns.nwu.edu (John 'tms' Navarra) (05/09/91)
I am a bit dismayed at the debate rising about Project Athena. As the person who started most of this, I would like to say that I personally don't know much about Athena BUT my original post had to do with a guy who asserted that the method he used of removing files on his system was useful. I responded saying that on HIS system which does not work like Athena, the algorithm he uses to saved deleted files is not all that efficient. I made the mistake of criticizing the way this would work on Athena. Now I understand that with your setup at MIT, this method needs SERIOUS revisions to work if it would work at all. I don't neccessarily agree that all users need the privledge of mounting filesystems at there convenience. -- not necc from a security point of view but simply a user point of view. With this permission someone could totally screw with another user that needed to use the machine. You seem to be awfully trusting. But onto more important issues. Athena is NOT most systems and the method of removing files as previously described (.#) has some major drawbacks outlined below. Here is a recap and some further commentary on the discussion about the rm function that was previously discussed in which .# files are kept in the current directory when a user deletes a file. I still assert that this idea is STUPID and here are some of the reasons why: 1) Rm .# does not support users naming files .# anything because they would subsequently be deleted. This is not a big problem since most informed users would know not to name files as such but some novice user might be harmed by this rule which is TOTALLY un-standard. One of the major points of Jonathen Kamen's arguments was that Project Athena is a distributed environment and that the action on one system should realiably be the same on another. Not being able to name a file .# is a non-standard restriction on many computers. (Removing files to /preserve or $HOME/ tmp is not all that standard -but it has been done and does not prohibit the naming of any file. And there is no reason why someone would get confused using it even though it isn't standard.) 2) Rm .# takes a LONG time reaping files from the system because it has to search thru every directory on the system looking for .# files. For a system with a large number of users, this would take a hell-of -a-long-time. But it has been pointed out that some machines are capable with little modification to cron to do this at night quite easily so as not to bog down the system too much. 3) Rm .# files do not hide from ls -a commands. Despite what Jon has said, i don't think this command is all that uncommon. Thus, every time I use this command, I would see .# files from previous deletions Now this is somewhat annoying for directories in which I have deleted small numbers of files (esp since, and I will say it again, 99% of the time when a user types rm filename, he does not want to see this file again, EVER!) So if you use ls -a alot and operate in an environ ment that forces this .# stuff, you will be annoyed plenty! And even for some of you who don't use ls -a that frequently, there are many times when we delete a large number of files in a dir. Now if we do an ls, we will still have to wait around for a while to see non-dot files because the dir is filled with .# files! 4) This problem of deleting large numbers of files brings up a quota issue. Many systems have quotas for its users and deleting files to the current dir still adds onto the quota. It is possible to discount .# files (I think) but why bother if you can just move them to a different dir without a quota or one considerably larger that is not affliated with yours. 5) I thought of this one a little while ago. Say you have a directory tmp with some files in it. Now I will take this example from the viewpoint of a novice and not so novice user. Say I want to get rid of this dir tmp so I do the following: Novice: cd tmp ls: file1 file2 file3 rm * ls [nothing] cd rmdir tmp rmdir: tmp: Directory not empty ????????????? -- I just removed all the files!? More experienced user: cd tmp ls: file1 file2 file3 rm * ls [nothing] cd rmdir tmp rmdir: tmp: Directory not empty [Ah, there must be some . files in there!] ls -las ~/tmp: total 6 1 drwx------ 2 navarra 512 May 8 15:01 . 0 -rw------- 1 navarra 0 May 8 14:32 .#file1 0 -rw------- 1 navarra 0 May 8 14:33 .#file2 0 -rw------- 1 navarra 0 May 8 14:33 .#file3 rm .#file1 mv: .#file1 and /home/u3/navarra/.#file1 are identical ! ???????????? In some cases there might be an option to rm to move whole directories to .#tmp but again, this is pretty useless to do as well. What if you wanted a directory like Cops deleted with all its subdirectories. Then you would have a whole mess of .# directories. Most people do not delete entire directory structures and want them back . So in summary, in most computing environments -- which means environments that wouldn't have the workstation mounting problems that jik was talking about, the entombing procedure is MUCH more efficient and I think easier to understand and correct. Granted, it has some problems but those will be addressed shortly. -- From the Lab of the MaD ScIenTiST: navarra@casbah.acns.nwu.edu
lyda@acsu.buffalo.edu (kevin lyda) (05/10/91)
ok... to start with, i'm a 20 year old undergrad who doesn't sysadmin a site. i'm thinking of getting unix for my pc and wanted to get some insight in how to administer it. however, this debate about how to delete is annoying.... the people who insist that deleteing by renaming to .# files is wrong are not listening! In article <1991May9.025448.25243@casbah.acns.nwu.edu> navarra@casbah.acns.nwu.edu (John 'tms' Navarra) writes: > 1) Rm .# does not support users naming files .# anything because they > would subsequently be deleted. i seem to remember leafing through a unix manual that stated that .# files were temporary. in fact, when i edit files with emacs my temporary backups are .# files. > 2) Rm .# takes a LONG time reaping files from the system because it has > to search thru every directory on the system looking for .# files. please remember jon's article concerning cron functions. you mention it later during this, but you still use this. knowing that users need to sleep, thereby implying a certain time of day where system load is low, having the system bouncing through directories shouldn't be a hardship at, say, 3am. > 3) Rm .# files do not hide from ls -a commands. Despite what Jon has > said, i don't think this command is all that uncommon. if it bugs you that much, here's a solution: modify ls! make a -# option for christ's sakes! you are in computer science, right? problem solving. ls -a shows certain hidden files that should stay hid. problem. make ls have two levels of info hiding. solution. > 4) This problem of deleting large numbers of files brings up a quota > issue. Many systems have quotas for its users and deleting files > to the current dir still adds onto the quota. It is possible to > discount .# files (I think) but why bother if you can just move them > to a different dir without a quota or one considerably larger that > is not affliated with yours. please tell me you see the problem with that. joe schmoe has 5 gifs in his account. he only has room for 4. so once a day he deletes one and undeletes another. now multiply joe scmoe by 100 users. believe me people will do it. you should see the vms users here with temp disk storage. i had a friend knock on my door at 2am so he could log in and access his files on tdisk before a 48 hour period had expired. > 5) I thought of this one a little while ago. Say you have a directory > tmp with some files in it. Now I will take this example from the > viewpoint of a novice and not so novice user. Say I want to get rid > of this dir tmp so I do the following: [novice user example] one solution: modify rmdir so that you can undelete directories. rmdir tmp would result in a directory named .#tmp. another solution: make it so that rmdir doesn't care if there are .# files in a dir. have it /bin/rm them and then do an rmdir. [More experienced user] one solution: if you rm a .# files, the system can assume you really don't want it. so /bin/rm it. another solution: if you rm a .# file it will become a .#.# file. this is a bad solution but a simple delete script will end up doing this. would the people debating please try to do the following: read. i wasn't the first person to give these solutions to your points. kevin
jik@athena.mit.edu (Jonathan I. Kamens) (05/10/91)
In article <1991May9.025448.25243@casbah.acns.nwu.edu>, navarra@casbah.acns.nwu.edu (John 'tms' Navarra) writes: |> 1) Rm .# does not support users naming files .# anything because they |> would subsequently be deleted. The convention of files beginning with .# being temporary and purge-able by the system is far older than Project Athena's "delete" package. Vendors have been shipping systems that search for and delete old .# files by default for many years, just as they search for and delete # files, ~ files, and in some cases a.out and core files. You would do well to learn a bit more about the history of Unix and its current variants before you go around declaring that something both old and common in Unix is "TOTALLY un-standard" and "a non-standard restriction on many computers." |> 2) Rm .# takes a LONG time reaping files from the system because it has |> to search thru every directory on the system looking for .# files. I've already dealt with this problem; it is a non-problem. |> 3) Rm .# files do not hide from ls -a commands. Despite what Jon has |> said, i don't think this command is all that uncommon. Well, then, we'll have to agree to disagree. I have both "rm" and "rmdir" aliased to delete in my account, and I know a lot of hacker-types (the people who are most likely to use "ls -a") at Athena who do the same, and I have never heard this complaint before. If you think it's more of a problem than I do, there is nothing I can do about that. |> 4) This problem of deleting large numbers of files brings up a quota |> issue. Many systems have quotas for its users and deleting files |> to the current dir still adds onto the quota. It is possible to |> discount .# files (I think) but why bother if you can just move them |> to a different dir without a quota or one considerably larger that |> is not affliated with yours. As I have pointed out in a previous posting, allowing users to delete files into a repository without a quota, and then to restore them, allows users to use the deleted-file space as a temporary file archive, unless it is constantly watched by the admins to make sure that this does not happen. Yes, leaving the files in the user's home directory takes up quota. Yes, this is a CONSCIOUS DECISION in the design of the program. Users who are near their quota can do something like "expunge -t 3 ~" to get rid of deleted files. It can be argued that the possibility of abuse of alternative directory archiving of deleted files is outweighed by the advantages of moving the files out of the user's home directory. I might even agree with such an argument, although I would have to think about it some, in which case you're right, this is a flaw in the way in which we do things. But it is not, in my opinion, a major flaw, nor is it enough to call our method "STUPID" as you did in your posting. |> 5) I thought of this one a little while ago. Say you have a directory |> tmp with some files in it. Now I will take this example from the |> viewpoint of a novice and not so novice user. Say I want to get rid |> of this dir tmp so I do the following: You would do well to actually look at our software, which is available in comp.sources.misc, before making up scenarios that might break it. % alias rm delete % alias rmdir delete % cd tmp % ls file1 file2 file3 % rm * % cd .. % rmdir tmp % In other words, if delete is used as it is intended to be used, replacing both rm and rmdir, it does the right thing in the scenario you described. I have already addressed in previous postings all the other points you make that I choose to address. -- Jonathan Kamens USnail: MIT Project Athena 11 Ashford Terrace jik@Athena.MIT.EDU Allston, MA 02134 Office: 617-253-8085 Home: 617-782-0710
navarra@casbah.acns.nwu.edu (John 'tms' Navarra) (05/10/91)
In article <1991May9.191652.26724@athena.mit.edu> jik@athena.mit.edu (Jonathan I. Kamens) writes: >In article <1991May9.025448.25243@casbah.acns.nwu.edu>, navarra@casbah.acns.nwu.edu (John 'tms' Navarra) writes: >|> 1) Rm .# does not support users naming files .# anything because they >|> would subsequently be deleted. > > The convention of files beginning with .# being temporary and purge-able by >the system is far older than Project Athena's "delete" package. Vendors have >been shipping systems that search for and delete old .# files by default for >many years, just as they search for and delete # files, ~ files, and in some >cases a.out and core files. > > You would do well to learn a bit more about the history of Unix and its >current variants before you go around declaring that something both old and >common in Unix is "TOTALLY un-standard" and "a non-standard restriction on >many computers." One guy mentioned emacs -- what about people who use vi? My Sun systems stores some temporary mail files in a # form but MANY new systems do not use this .# technology! > > >|> 3) Rm .# files do not hide from ls -a commands. Despite what Jon has >|> said, i don't think this command is all that uncommon. > > Well, then, we'll have to agree to disagree. I have both "rm" and "rmdir" >aliased to delete in my account, and I know a lot of hacker-types (the people >who are most likely to use "ls -a") at Athena who do the same, and I have >never heard this complaint before. If you think it's more of a problem than I >do, there is nothing I can do about that. > >|> 4) This problem of deleting large numbers of files brings up a quota >|> issue. Many systems have quotas for its users and deleting files >|> to the current dir still adds onto the quota. It is possible to >|> discount .# files (I think) but why bother if you can just move them >|> to a different dir without a quota or one considerably larger that >|> is not affliated with yours. > > As I have pointed out in a previous posting, allowing users to delete files >into a repository without a quota, and then to restore them, allows users to >use the deleted-file space as a temporary file archive, unless it is >constantly watched by the admins to make sure that this does not happen. What is stopping people from storing a bunch of stuff in /tmp? That doesn't normally get cleared unless the machine is rebooted. I never said that a user should be allowed to have an unlimited quota on a trashcan directory. Entomb is owned by charon and you can always supply a quota on a person's tomb directory so they cannot delete large numbers of files. You can't do that if you delete files to your home dir. My system has a 1meg quota. I think this really sucks. If I want to get the new version of bash and uncompress and untar it, it takes up alot of space and I don't have much room for much else. But if I must deal with a quota at least I could keep bash on my system for a few days before it was deleted if i use entomb. > > > You would do well to actually look at our software, which is available in >comp.sources.misc, before making up scenarios that might break it. > >% alias rm >delete >% alias rmdir >delete >% cd tmp >% ls >file1 file2 file3 >% rm * >% cd .. >% rmdir tmp >% > >In other words, if delete is used as it is intended to be used, replacing both >rm and rmdir, it does the right thing in the scenario you described. so this is what you are telling me if I want to use undelete: 1) I have to put up with .# files 2) I have to make some alias for ls -a so I don't see .# files 3) I still have to wait around if I delete large numbers of files and want to do an ls -a because the dir is huge. 4) I have to make rm and rmdir aliases to insure it works right. 5) I have to run a cron job every night to hunt down these files. 6) I have to put up with the quota restrictions. 7) if I really want to delete a file I have to use another command so the stupid .# file is not in my directory. (which is the normal case!) and for the big one: 8) I actually have to be an experienced enough user to be able to make all these corrections -- otherwise I could get quite confused in certain instances -- whereas if I used entomb, whether I had knowledge of how it worked or not, my daily operations would not be affected. if that is what you are telling me, then I say IT's STUPID! > > >-- >Jonathan Kamens USnail: >MIT Project Athena 11 Ashford Terrace >jik@Athena.MIT.EDU Allston, MA 02134 >Office: 617-253-8085 Home: 617-782-0710 -- From the Lab of the MaD ScIenTiST: navarra@casbah.acns.nwu.edu
asg@sage.cc.purdue.edu (The Grand Master) (05/13/91)
In article <1991May9.191652.26724@athena.mit.edu> jik@athena.mit.edu (Jonathan I. Kamens) writes: }In article <1991May9.025448.25243@casbah.acns.nwu.edu>, navarra@casbah.acns.nwu.edu (John 'tms' Navarra) writes: }|> 1) Rm .# does not support users naming files .# anything because they }|> would subsequently be deleted. } } The convention of files beginning with .# being temporary and purge-able by }the system is far older than Project Athena's "delete" package. Vendors have }been shipping systems that search for and delete old .# files by default for }many years, just as they search for and delete # files, ~ files, and in some }cases a.out and core files. Of the University systems to which I have had access one time or another, (well over 50) only one has a crontab entry which deletes .# files. Though it is not a new or unusual idea, it still is present on (my guess of course) << half of the UNIX machines in the world. While this does not make it an absurd idea, it does most certainly make it non-standard. } } } As I have pointed out in a previous posting, allowing users to delete files }into a repository without a quota, and then to restore them, allows users to }use the deleted-file space as a temporary file archive, unless it is }constantly watched by the admins to make sure that this does not happen. So what? So the user can use it as a temporary archive. If you read the description of entomb, however, you will note that this problem is dealt with if file space becomes important. The default is to allow the files to remain 2 days. But as the filesystem gets more full, this time limit gets smaller and smaller. } }|> 5) I thought of this one a little while ago. Say you have a directory }|> tmp with some files in it. Now I will take this example from the }|> viewpoint of a novice and not so novice user. Say I want to get rid }|> of this dir tmp so I do the following: } } You would do well to actually look at our software, which is available in }comp.sources.misc, before making up scenarios that might break it. } }% alias rm }delete }% alias rmdir }delete }% cd tmp }% ls }file1 file2 file3 }% rm * }% cd .. }% rmdir tmp }% To explain why this is absolutly horid, we must first examine the reason behind: % rmdir /tmp tmp not empty: not removed The purpose of this is to insure that you do not remove a directory before moving any important files out of it. Let's say I use Jon's method. If I have a directory project, and a file in that directory called important, I could rmdir project, thinking that I already moved important to my save directory. Say I now go away for a coupla days (to visit John Navarra at Northwestern or something). When I come back, my important file is gone, and I have no idea where it went. Using the normal method, this would not have occured. } }In other words, if delete is used as it is intended to be used, replacing both }rm and rmdir, it does the right thing in the scenario you described. In John's scenario yes, but not in mine. }-- }Jonathan Kamens USnail: Bruce --------- ### ## Courtesy of Bruce Varney ### # aka -> The Grand Master # asg@sage.cc.purdue.edu ### ##### # PUCC ### # ;-) # # ;'> # ##