购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 用户身份与文件权限

设计Linux系统的初衷之一就是为了满足多个用户同时工作的需求,因此Linux系统必须具备很好的安全性。管理者是所有类UNIX系统中的超级用户,拥有最高的系统权限,能够管理系统的各项功能,如添加/删除用户、启动/关闭服务进程、开启/禁用硬件设备等。

Linux系统的管理者是root用户,root用户的身份号码(User Identification,UID)的数值为0。在Linux系统中,UID就相当于我们的身份证号码一样具有唯一性,因此可通过用户的UID值来判断用户的身份。

为了方便管理属于同一组的用户,Linux系统还引入了用户组的概念。通过用户组号码(Group IDentification,GID),可以把多个用户加入同一个用户组中,方便对同一个用户组中的用户统一规定权限或指定任务。

1.8.1 passwd命令

passwd命令用于修改用户密码、过期时间、认证信息等,其格式为:

普通用户只能使用passwd命令修改自己的用户密码,root用户则可以修改其他用户的用户密码。

通过下面的命令,root用户可以修改自己的用户密码:

1.8.2 文件权限

Linux系统是通过不同的字符来区分文件类型的,例如,-表示普通文件、d表示目录文件、l表示链接文件、b表示块设备文件、c表示字符设备文件、p表示管道文件。

在Linux系统中,每个文件都有所属的所有者(用户)和所属组(用户组),并且规定了文件的所有者、所属组以及其他用户对该文件的权限,如可读(r)、可写(w)、可执行(x)等。对于普通文件来说,可读表示能够读取该文件的实际内容,可写表示能够编辑、新增、修改、删除该文件的实际内容,可执行表示能够运行该文件。但是,对于目录文件来说,理解其权限设置来就不那么容易了,很多用户其实都没有真正搞明白。对目录文件来说,可读表示能够读取目录内的文件列表,可写表示能够在目录内新增、删除、重命名文件,可执行表示能够进入该目录。

文件的读、写、执行权限既可以简写为r、w、x,也可以用数字4、2、1来表示,如表1.16所示,文件所有者、所属组,以及其他用户权限之间并无关联。

表1.16 文件权限的字符与数字表示

文件权限的数字法表示是基于字符表示的权限计算而来的,其目的是简化权限的表示。例如,若某个文件的权限为7,则代表可读、可写、可执行(4+2+1);若权限为6,则代表可读、可写(4+2)。

我们来看这样一个例子,现在一个文件,其所有者拥有可读、可写、可执行的权限,其所属组拥有可读、可写的权限,其他用户只有可读的权限,这个文件的权限就是rwxrw-r--,可用数字法表示为764。

通过ls命令查看的文件属性信息如图1.36所示。

图1.36 通过ls命令查看的文件属性信息

图1.36中包含了文件类型、权限、所有者(属主)、所属组(属组)、占用的磁盘大小、修改时间和文件名称等信息。通过分析可知,该文件的类型为普通文件(-),所有者的权限为可读、可写、可执行(rwx),所属组的权限为可读、可写(rw-),其他用户只有可读权限(r--),文件占用的磁盘大小是133 B(133),修改时间为12月7日14时36分(Dec 7 14:36),文件的名称为example.sh。

1.8.3 chmod命令

UNIX系统和Linux系统的文件调用权限分为三级:所有者、所属组、其他用户。通过chmod命令可以控制文件调用权限,其格式为:

其中,mode表示权限设定字串,格式如下:

其中,u表示该文件的所有者,g表示与该文件所有者属于同一个用户组的用户,o表示其他用户,a表示所有用户(包括前面三者),+表示增加权限,-表示取消权限,=表示唯一设定权限,r表示可读,w表示可写,x表示可执行,X表示只有当该文件是子目录或者该文件已经被设定为可执行时才可以被执行。

例如,将文件file1.txt设为所有用户皆可读,可通过下面的命令实现:

若将文件file1.txt和文件file2.txt的权限设为这两个文件的所有者、所属组可写,但其他用户不可写,可使用下面的命令实现:

此外,chmod命令也可以用数字来表示权限,如“chmod 777 file”,格式为:

其中,a、b、c表示3个数字,分别表示所有者、所属组和其他用户的权限,可读用数字4表示,可写用数字2表示,可执行用数字1表示。例如,权限rwx可用7表示(4+2+1=7),权限rw-可用6表示(4+2=6),权限r-x可用5表示(4+1=5)。下面两条命令的执行结果相同:

下面这两条命令的执行效果也相同:

通过命令“chmod 4755 filename”可以使当前用户具有和所有者相当的权限。4755与755的区别在于开头多了一位,4表示其他用户在执行文件时,具有与所有者相当的权限。

1.8.4 su命令与sudo命令

su命令用于用户的切换,通过该命令可以使当前用户在不退出登录的情况下切换到其他用户。例如,通过下面的命令可以从root用户切换至普通用户:

需要注意的是,从root用户切换到普通用户时不需要密码验证,从普通用户切换成root用户时需要进行密码验证,这是一个必要的安全检查。例如:

了解如何进行用户切换后,下面介绍如何使用sudo命令把特定命令的执行权限赋予指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root用户的密码。其格式为:

sudo命令中的常用参数及其作用如表1.17所示。

表1.17 sudo命令的常用参数及其作用

例如,普通用户是无法看到root用户的home目录(/root)中的文件信息的,但只要在执行的命令前面加上sudo命令就可以了,如下所示: 50cMwRrC+HP2EdE5RZTnUcS4Y1jHPY+XwPM3qOPhoGKxWaw4idK6ItLtsXHZJrER

点击中间区域
呼出菜单
上一章
目录
下一章
×