这是一篇对Linux中的“用户”和“文件”的简介。
服务器的管理员可以为不同的使用者创建用户,分配不同的权限,保障系统的正常运行;也可以为网络服务创建用户,通过权限限制来减小服务被攻击时对系统安全的破坏。
现代操作系统一般区分使用者的“用户”与“系统用户”,并划分权限,以保证系统的完整性不会因为用户的误操作或恶意程序而遭到破坏。
Linux 中的用户
在 /etc/passwd
里可以看到各种用户信息。
根用户
根用户 /root
用户在 Linux 操作系统中拥有最高的权限,可以对系统做任何操作(包括删除所有系统文件这种极端危险的操作)。root
用户的数据存储在 /root
下。
谨慎使用 root
权限执行命令(如 sudo
),不要执行以下命令:
rm -rf /
mkfs.ext4 /dev/sda
dd if=/dev/urandom of=/dev/sda
:(){ :|: & };:
系统用户
系统用户由系统或相关程序创建,用于执行服务等系统任务,如 nobody
, www-data
等。不要随意删除这些用户。
普通用户
普通用户位于 /home/username/
,username
是用户名。普通用户可以登录系统,对自己的家目录下的文件进行操作;不可以直接修改系统配置,也不可以为系统环境安装或卸载软件。
切换用户
sudo
sudo
用于以另一个用户的身份执行指定的命令。
1 | $ sudo + 命令 # 以 root 用户执行命令 |
su
su
用于直接切换用户。
注意,如 Ubuntu 等 Linux 发行版默认禁止了 root
用户的密码登录,所以不能直接使用su
,要通过 sudo
提高权限。
1 | $ sudo su # 切换到 root |
用户组
用户组是用户的集合。用户组可以为一批用户设置权限。 用户组也有编号GID (Group ID)。
1 | $ group # 查看自己所属的用户组 |
文件权限
1 | $ ls -l # 查看当前目录中文件的详细信息 |
执行权限
对于文件来说,执行权限意味着它可以被操作系统作为程序代码执行。如果某个程序文件没有执行权限,你仍然可以查看这个程序文件本身,修改它的内容,但是无法执行它。
对于目录来说,执行权限意味着你可以访问这个目录下的文件的内容。可以把目录视为一个“文件”,它包含了目录中下一层的文件列表,“读取”对应读取文件列表的权限,“写入”对应修改文件列表(添加、删除、重命名文件)的权限,“执行”对应实际去访问列表中文件、以及使用 cd
切换当前目录到此目录的权限。
1 | $ chmod # change file mode bits 修改权限 |
文件系统层次结构
UNIX 系列整个系统的文件都从 /
(根目录)开始,像一棵树一样;其它分区以挂载 (mount) 的形式”挂“在这棵树上。
文件系统层次结构标准 (FHS, Filesystem Hierarchy Standard) 定义了 Linux 发行版的标准目录结构,可以查看Filesystem Hierarchy Standard。也可以使用 man hier
和 man file-hierarchy
查看系统中关于文件系统层次结构的文档。
评论