linux初学之9——权限(1)基本权限

来源:互联网 发布:美工对电商的意义 编辑:程序博客网 时间:2024/05/16 08:05

一、文件的基本权限

在windows系统中,也是有权限管理的,不过一般用户很少会去修改这个权限,因为大多电脑为个人电脑,个人即是电脑的主人,也很少会一个电脑多个用户去使用,因此用户进入时就是administrator身份。而在linux系统,由于作为服务器的特殊身份,使得linux系统的权限显得日益重要。开发者和服务器管理员的权限是不能相同的,否则服务器出现了问题,可不是小事情,你懂得~~

1、文件的属性

那么在linux中的权限,我们从linux的属性讲起,说明文件的基本权限有哪些构成。

以root身份登录(作为学习者,以root身份登录系统,可以获取最大的权限,有很多学习的必要性)系统,执行 ll(或者 ls -al)  命令得到类似如下的结果:

-rw-r--r--. 1 root root  558 3月   8 16:05 abc-rw-r--r--. 1 root root  581 3月   8 16:13 abcd-rw-------. 1 root root 1007 2月  23 18:26 anaconda-ks.cfg-rwxrwxrwx. 1 root root   83 3月   1 10:11 hello.shdrwxr-xr-x. 5 root root   39 2月  29 11:04 mytest-rw-r--r--. 1 root root   62 3月   3 17:57 student.txt[  1      ][2][3 ][4  ] [5] [6        ]  [7           ]

ll,显示出文件的完整属性,分为七列,分别说一下每一列的含义

【1】代表这个文件的类与权限

总共有十位,

其中第一位表示文件类型(共有七种):- 文件、 d 目录、 l 软连接文件 ;块设备文件、字符设备文件、套接字文件和管道文件

后面每三位为一组,均为rwx的三个参数的组合。代表:所有者、所属组、其他人的权限。其中r读, w写, x执行。需要注意的是三个参数的位置不会改变,如果没有权限,则会出现-

 .代表“ACL”权限

【2】表示文件的连接数

【3】文件的所有者

【4】文件的所属组,注意,文件的所有者不一定会在文件的所属组中

【5】文件大小,默认单位为B,可以在ls 命令后加 -h,显示MB、GB等详细单位

【6】文件最近修改日期

【7】文名称


2、权限的意义


(1)权限对目录的作用

r:可以查询目录下的文件名(ls)

w:具有修改目录结构的权限,如新建目录和文件、删除此目录下的文件和目录,重命名此目录下的文件和目录等(touch rm mv cp)

x:可以进入目录(cd)

(2)权限对文件的作用

r:可以读取文件内容(cat more head tail)

w:可以编辑、新增、修改文件内容(vi echo)--但不包含删除文件

x:可以执行

对文件来讲,最高的权限是x,对目录来讲,最高的权限是w

下面我们用root用户、user1用户(group为use1)、user2(group为use1)三个用户进行几个命令的演示,说明权限的作用。

①首先用root用户登录,创建目录testauth:mkdir testauth(此时在root用户的家目录下面,也就是/root目录下面)

②查看testauth的权限:ll ,得到结果,drwxr-xr-x. 2 root root    6 3月  31 20:18 testauth

drwxr-xr-x,这个说明该目录的权限为,root用户为读写执行,root组用户其他用户的权限为读和执行

③下面我们用user1用户登录,查看root的家目录,提示我们权限不够。

[user1@localhost ~]$ ls /root/
ls: 无法打开目录/root/: 权限不够

④下面我们用root用户查看/root权限:ll /(查看的是根目录,因为/root 在根目录下面。)

[root@localhost ~]# ll /dr-xr-xr-x. 369 root root    0 3月  31 19:29 procdr-xr-x---.   4 root root 4096 3月  31 20:18 root
我们看到在根目录下有两个文件,即使是root用户,也没有w的权限,当我们 cd proc,mkdir aaa的时候,提示不允许的操作

[root@localhost ~]# cd /proc[root@localhost proc]# mkdir aaamkdir: 无法创建目录"aaa": 不允许的操作

而同样的操作在root目录下则可以进行,那是因为/root是root用户的家目录,而且也可以进行rm操作,但是这些操作都是不安全的,因此根据权限约定,我们对root目录一般不进行操作。

但root的最后三项是---,也就是说其他用户是不能rwx /root目录的。因此当我们用user1 ll /root的时候,会提示权限不足。

⑤我们用root用户登录,创建目录/testauth ,注意,这次创建的目录是在根目录下面创建的,

然后查看testauth的权限,ll : drwxr-xr-x.   2 root root    6 3月  31 20:35 testauth

⑥并且在/testauth目录下面添加文件aaa

[root@localhost /]# cd testauth/[root@localhost testauth]# touch aaa[root@localhost testauth]# ll总用量 0-rw-r--r--. 1 root root 0 3月  31 20:38 aaa[root@localhost testauth]# 
⑦我们用user1登录,查看/testauth

[user1@localhost ~]$ ll /testauth/总用量 0-rw-r--r--. 1 root root 0 3月  31 20:38 aaa[user1@localhost ~]$ 

/testauth的权限为drwxr-xr-x.:所有者是读写执行,所属组权限是读和执行,其他用户是读和执行

aaa文件的权限为-rw-r--r--. :所有者是读写,所属组和其他用户都只有只读权限

在当前权限条件下,我们用user1进入/testauth目录下是不能对该目录下的文件进行增删改重命名的操作的。

同样也是不能对文件aaa进行修改和重命名的操作

⑨我们将文件aaa的权限修改为读写,然后查看选项

[root@localhost testauth]# chmod 646 aaa[root@localhost testauth]# ll总用量 4-rw-r--rw-. 1 root root 5 3月  31 20:42 aaa
好了现在aaa的其他用户权限为读写了。

10 我们用user1进入系统,我们已经拥有了文件aaa的写权限了。

对文件aaa vi 之后可以进行编辑,:wq也可以进行保存了。

但是,当我们想要将aaa文件删除、重命名的操作却是要提示权限不足。

这是因为aaa文件名是保存在它父文件也就是/testauth 目录中的,我们对/testauth目录没有写权限,因此也不能对该目录下的文件进行删除移动重命名等操作。

这也是权限意义的重点。


3、默认权限

 当我们新建一个文件或者目录时,生成的目录或者文件有默认权限,那么这些权限为什么是这样呢?
这就与默认权限umask有关。查看默认权限需要使用umask命令。root的默认权限 umask 为 022,一般身份用户为 002,关于默认 umask 的设置可以参考/etc/bashrc 这个文件

另外,默认权限与文件、目录的关系如下






0 0