上篇文章详细介绍了通过文件压缩程序和归档程序,从而掌握在linux系统中如何归档和备份数据。那么,今天,这篇文章还是回到linux的基础知识体系中,今天主要围绕linux系统中的权限展开描述。
综所周知,linux操作系统属于多用户、多任务系统。通俗的来讲,”多用户、多任务”的含义指的是多个用户可以在同一时间使用同一台计算机。Linux操作系统的多用户特性,深深地嵌入到了Linux 操作系统的设计中。
• id –显示用户身份id
• chmod –更改文件模式
• umask –设置默认文件权限
• su –以另一个用户的身份来运行shell
• sudo –以另一个用户的身份来执行命令
• chown –更改文件所有者
• chgrp –更改文件组所有权
• passwd –更改用户密码
id–显示用户身份id
在LINUX安全与权限结构中,一个用户可以拥有一个文件或目录的控制权限。与该用户同一用户组成员也可拥有这个文件或目录的控制权限,但前提是需要文件和目录的所有者授予相应的权限。
那么如何确定一个用户的权限呢?
用id 命令,来找到关于你自己身份的信息:
[test@linuxprobe ~]$ id
uid=500(test) gid=500(test) groups=500(test)
在用户创建帐户之后,系统会自动给用户分配一个用户ID或者uid,这个ID 对应一个用户名。同时,系统又会给这个用户分配一个原始的组ID 或者是gidD。
在linux操作系统中,用户帐户信息存放在/etc/passwd 文件里面,用户组信息存放在/etc/group 文件里面。值得注意的是, /etc/shadow文件包含了用户密码的相关信息。对于每个用户帐号, /etc/passwd文件包含了用户(登录)名、uid、gid、帐号的真实姓名、家目录和登录shell等。
读取、写入和执行
根据读取、写入和执行来定义文件或目录的访问权限。权限属性如下表:
属性 | 文件 | 目录 |
r | 允许打开并读取文件内容。 | 允许列出目录中的内容,但前提是目录必须设置了可执行属性(x) |
w | 允许写入文件内容或截断文件。但是不允许对文件进行重命名或删除,重命名或删除是由目录的属性决定的。 | 允许在目录下新建、删除或重命名文件,但前提是目录必须设置了可执行属性(x)。 |
x | 允许将文件作为程序来执行,使用脚本语言编写的程序必须设置为可读才能被执行。 | 允许进入目录,例如:cd directory 。 |
chmod -更改文件模式
chmod 命令用于更改文件或目录的模式(权限)。chmod 命令同时支持两种不同的方法来改变文件模式:八进制数字表示法或符号表示法。
注意:
只有文件的所有者或者超级用户才能更改文件或目录的模式。
通过查阅chmod 命令的手册,可以收获更详尽的信息和chmod 命令的各个参数选项。
umask -设置默认权限
umask 命令在创建一个文件时,默认赋予了文件控制的权限。大家看下面的例子:
[test@linuxprobe ~]$ rm -f test.txt
[test@linuxprobe ~]$ umask
0002
[test@linuxprobe ~]$ > test.txt
[test@linuxprobe ~]$ ls -l test.txt
-rw-rw-r-- 1 test test 0 2021-07-16 22:53 test.txt
su -以其他用户身份和组ID 运行一个shell
su 命令用来以另一个用户的身份来启动shell。
若使用选项“-l”,那么会为指定用户启动一个需要登录的shell,并加载此用户的shell 环境。若不指定用户,那么默认指定是是超级用户。
特别注意的是:选项“-l” 可以缩写为”-”。例如:启动超级用户的shell,我们可以这样做:
[test@linuxprobe ~]$ su -
Password:
[root@ linuxprobe ~]#
sudo -以另一个用户身份执行命令
sudo 命令与su 命令的用法非常相似!不过sudo 还有一些非常重要的特性或者功能:
- 管理员通过配置sudo 命令,允许一个普通用户以超级用户的身份通过一种非常可控的方式来执行命令。
- sudo 命令不要求超级用户的密码。使用sudo 命令时,用户需使用自己的密码来认证身份。
chown -更改文件所有者和用户组
chown 命令程序被用来更改文件或目录的所有者和用户组。使用这个命令需要超级用户权限。
命令语法如下所示:
chown [owner][:[group]] file...
chown 可以根据第一个参数或者选项去更改文件所有者或文件用户组。
chgrp --更改用户组所有权
关于chgrp命令程序,在这儿就不多描述了。因为,除了限制性参数多一点之外,chgrp 命令与chown 命令使用起来基本没有差别。
特别注意的是chown 命令程序只能变动文件所有权,而不是用户组所有权。
passwd--更改用户密码
passwd 命令用于设置或更改用户密码。不过它会强迫你使用“强”密码。命令语法如下所示:
passwd [user]
在命令行中输入passwd 命令,就能更改你的密码。shell 会提示您输入您的旧密码和您的新密码:
[test@linuxprobe ~]$ passwd
(current) UNIX password:
New UNIX password:
这篇文章所讨论的所有命令的手册都描述的非常详细,且附相应的实例。我们需要熟练掌握它们。在编写这篇文章过程中我还参考了《Linux就该这么学》这本书,内容很贴近实践,很有理论指导实践价值的一本书籍。