UNIX教程五
5.1文件系统安全(访问权限)
在您的unixstuff目录中,键入
%ls -l(l为长列表!)
你会看到,现在你有很多关于你的目录的内容的细节,类似于下面的例子。
每个文件(和目录)都有相关的访问权限,可以通过键入ls -l找到。此外,ls -lg给出关于哪个组拥有文件(以下示例中为beng95)的其他信息:
-rwxrw-r - 1 ee51ab beng95 2450 Sept29 11:52 file1
在左边的列中是由符号d,r,w,x, - 和偶尔的s或S组成的10个符号串。如果d存在,则它将在串的左手端,并指示一个目录:否则将是字符串的起始符号。
其余9个符号表示权限或访问权限,并且被视为三个组3。
- 左侧组3给出了拥有文件(或目录)的用户的文件权限(上例中为ee51ab);
- 中间组给予文件(或目录)所属的人群(上述示例中的eebeng95)的权限;
- 最右边的组给出所有其他组的权限。
符号r,w等具有略微不同的含义,取决于它们是指简单文件还是目录。
文件的访问权限。
- r(或 - ),表示读取权限(或其他),也就是说,是否存在读取和复制文件的权限
- w(或 - ),表示写许可(或其他),即允许(或以其他方式)更改文件
- x(或 - )表示执行权限(或其他),也就是说,在适当的情况下执行文件的权限
目录的访问权限。
- r允许用户列出目录中的文件;
- w意味着用户可以从目录中删除文件或将文件移入其中;
- x表示访问目录中的文件的权限。这意味着您可以读取目录中的文件,前提是您对各个文件具有读取权限。
因此,为了读取文件,您必须对包含该文件的目录具有执行权限,因此必须对包含该目录作为子目录的任何目录具有执行权限,等等。
一些例子
-rwxrwxrwx | 每个人都可以读取,写入和执行(和删除)的文件。 |
-rw ------- | 一个只有所有者可以读写的文件 - 没有其他人 可以读写,没有人有执行权限(例如您的 邮箱文件)。 |
5.2更改访问权限
chmod(更改文件模式)
只有文件的所有者可以使用chmod更改文件的权限。chmod的选项如下
符号 | 含义 |
---|---|
u
| 用户 |
G
| 组 |
o
| 其他 |
一个
| 所有 |
r
| 读 |
w
| 写(和删除) |
X
| 执行(和访问目录) |
+
| 添加权限 |
- -
| 取走权限 |
例如,要删除 组和其他人的文件biglist的读写和执行权限,请键入
%chmod go-rwx biglist
这将使其他权限不受影响。
为了给所有的文件biglist赋予读写权限,
%chmod a + rw大列表
练习5a
尝试更改文件science.txt和目录备份的访问权限
使用ls -l检查权限是否已更改。
5.3过程和工作
进程是由唯一PID(进程标识符)标识的执行程序。要查看有关进程的信息及其相关的PID和状态,请键入
%ps
进程可以在前台,在后台或暂停。通常,在当前进程完成执行后,shell不返回UNIX提示。
一些进程需要很长时间才能运行和保持终端。后台长进程具有立即返回UNIX提示的作用,并且可以在原始进程继续执行的同时执行其他任务。
运行后台进程
要对进程进行后台处理,请在命令行末尾键入&。例如,命令sleep在继续之前等待给定的秒数。类型
%sleep 10
这将等待10秒钟,然后返回命令提示符%。在返回命令提示符之前,除了等待之外,您什么都不能做。
要在后台运行睡眠,请键入
%sleep 10 &
[1] 6259
&使此进程在后台运行,并返回提示直线距离。允许在等待时其他项目的运行。
向用户通知用方括号括起来的作业号(从1开始编号)以及PID,并且当后台处理完成时通知用户。后台运行对于需要很长时间才能完成的作业非常有用。
Backgrounding a current foreground process
在提示符下,键入
% sleep 1000
您可以通过键入^ Z暂停前台运行的进程,即按住[ Ctrl ]键并键入[ z ]。然后把它放在后台,键入
%bg
注意:不要求需要用户交互的后台程序,例如vi
5.4列出挂起和后台进程
当进程正在运行,后台或挂起时,它将与作业号一起输入到列表中。要检查此列表,请键入
% jobs
作业列表的示例可以是
[1] Suspended sleep 1000
[2] Running netscape
要重新启动(前台)挂起的进程,请键入
%fg %jobnumber
例如,要重新启动睡眠1000,请键入
%fg %1
键入没有作业号的fg可前台显示上次挂起的进程。
5.5终止进程
kill(终止或发送进程)
有时需要终止进程(例如,当执行程序处于无限循环中时)
要终止在前台运行的作业,请键入^ C(控件c)。例如,运行
%sleep 100
^ C
要杀死挂起或后台进程,请键入
%kill %jobnumber
例如,运行
%sleep 100 &
%jobs
如果是作业编号4,请键入
%kill %4
要检查这是否有效,请再次检查作业列表,以查看该过程是否已删除。
ps(进程状态)
或者,可以通过找到其进程号(PID)并使用kill PID_number来终止进程
%sleep 100 &
%ps
PID TT S时间命令
20077 pts / 5 S 0:05睡眠1000
21563 pts / 5 T 0:00 netscape
21873 pts / 5 S 0:25 nedit
要杀掉进程sleep 1000,键入
%kill 20077
然后再次键入ps以查看它是否已从列表中删除。
如果进程拒绝被杀死,使用-9选项,即类型
%kill -9 20077
注意:不可能杀死其他用户的进程!
概要
命令 | 含义 |
---|---|
ls -lag | 列出所有文件的访问权限 |
chmod [ options ] file | 更改命名文件的访问权限 |
command& | 运行命令在后台 |
^C | 杀死在前台运行的作业 |
^Z | 暂停在前台运行的作业 |
bg | 背景暂停的工作 |
jobs | 列出当前作业 |
fg %1 | 前台作业号1 |
kill %1 | kill job number 1 |
ps | 列出当前进程 |
kill26152 | 杀死进程号26152 |