Linux的用户与权限管理

Published at 2020-05-11 19:24

Author:zhixy

View:493


用户

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。 用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的家目录。

用户组

每个用户都至少隶属一个用户组,即与用户名同名的用户组(在创建用户时同时创建),系统可以对一个用户组中的所有用户进行集中管理。

文件夹/文件的权限

Linux系统中不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

[user@server ~]# ls -l /
total 60
lrwxrwxrwx.  1 root root     7 Jul 11  2019 bin -> usr/bin
dr-xr-xr-x.  5 root root  4096 Jul 11  2019 boot
drwxr-xr-x  19 root root  2960 May  9 21:26 dev
drwxr-xr-x. 79 root root  4096 May  2 13:39 etc
drwxr-xr-x.  2 root root  4096 Apr 11  2018 home
lrwxrwxrwx.  1 root root     7 Jul 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root     9 Jul 11  2019 lib64 -> usr/lib64
drwx------.  2 root root 16384 Jul 11  2019 lostfound
drwxr-xr-x.  2 root root  4096 Apr 11  2018 media
drwxr-xr-x.  2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root  4096 May  5 08:37 opt
dr-xr-xr-x  88 root root     0 May  2 13:36 proc
dr-xr-x---.  7 root root  4096 May 11 17:49 root
drwxr-xr-x  25 root root   680 May  2 15:22 run
lrwxrwxrwx.  1 root root     8 Jul 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root  4096 Apr 11  2018 srv
dr-xr-xr-x  13 root root     0 May  2 21:36 sys
drwxrwxrwt. 10 root root  4096 May 11 16:39 tmp
drwxr-xr-x. 13 root root  4096 Jul 11  2019 usr
drwxr-xr-x. 19 root root  4096 Jul 11  2019 var

上例中,bin的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。详细解释如下:

  • [ d ],目录
  • [ - ],文件;
  • [ l ],链接文件(link file);
  • [ b ],装置文件里面的可供储存的接口设备(可随机存取装置);
  • [ c ],装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

表示文件类型的属性后,由一个三组3个字符,共9个字符组成的字符串,用于表示文件的权限属性。

rwx 3个字符,分别表示可读(read)、可写(write)、可执行(execute)。

且这三个权限的位置不会改变,如果没有权限,则会出现 [ - ] 号。

permission

每组rwx自左向右,分别针对文件所属用户同组其他用户其他用户的权限设置(如上图所示)。

如一个文件的权限属性为:-rwxr-x---,意味着其他用户无任何权限,而同组其他用户可读、可执行。

而相关文件属于哪个用户和哪个用户组,由ls –l命令输出结果的第3、4列指明。

权限修改

修改文件权限属性,需要借助命令chmod

[user@server ~]# chmod uw file # 对file,为所属用户添加可写权限。
[user@server ~]# chmod u-w file # 对file,为所属用户去除可写权限。
[user@server ~]# chmod gr file # 对file,为同组其他用户添加可读权限。
[user@server ~]# chmod g-r file # 对file,为同组其他用户去除可读权限。
[user@server ~]# chmod ox file # 对file,为其他用户添加可执行权限。
[user@server ~]# chmod o-x file # 对file,为其他用户去除可执行权限。
[user@server ~]# chmod ax file # 对file,为所有用户添加可执行权限。
[user@server ~]# chmod a-x file # 对file,为所有用户去除可执行权限。

上述字符的形式修改权限,是一种比较容易理解的方式。但实际操作中,常用的是数字形式。

r 对应数字4;w 对应数字4;2 对应数字1。数字形式的权限修改,见以下示例:

[user@server ~]# chmod 755 file # 对file,为所属用户可读可写可执行、同属其他用户可读可执行、其他用户可读可执行。
[user@server ~]# chmod 644 file # 对file,为所属用户可读可写、同属其他用户可读、其他用户可读。
[user@server ~]# chmod 700 file # 对file,为所属用户可读可写可执行、同属其他用户无权限、其他用户无权限。

文件所属用户与所属组的修改,需用chown

[user@server ~]# chown user:group file # 将file的所属用户改为user,所属组修改为group。
[user@server ~]# chown user file # 仅将file的所属用户改为user。