ZYNQ - 嵌入式Linux开发 -02- 用户权限管理和磁盘管理

简介: ZYNQ - 嵌入式Linux开发 -02- 用户权限管理和磁盘管理

Linux 用户权限管理


用户系统


Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性保护。

在安装 Ubuntu 系统的时候被要求创建一个账户,当我们创建好账号以后,系统会在目录/home下以该用户名创建一个文件夹,所有与该用户有关的文件都会被存储在这个文件文件夹中。 同样的,创建其它用户账号的时候也会在目录/home 下生成一个文件夹来存储该用户的文件。

用户


Ubuntu 下用户类型分为以下 3 类:

  • 初次创建的用户,此用户可以完成比普通用户更多的功能。
  • root 用户,系统管理员,系统中的最高级别的用户,可以进行很多普通用户和初创用户无法进行的操作。
  • 普通用户,安装完操作系统以后被创建的用户。

每个用户都有一个 ID 号,称为 UID,操作系统通过 UID 来识别是哪个用户,用户相关信息可以在文件/etc/passwd 中查看到,

image.png

每个用户名后面都有两个数字,第一个数字是用户的 ID,另一个是用户的 GID,也就是用户组 ID。 Ubuntu 里面每个用户都属于一个用户组里面,用户组就是一组有相同属性的用户集合。

Linux用户密码记录在/etc/shadow这个文件里,

image.png

用户组


为了方便管理,将用户进行分组。这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。用户和用户组的存在就是为了控制文件的访问权限的。每个用户组都有一个ID,叫做GID。用户组信息存储在/etc/group文件中。

image.png

创建用户和用户组


要使用图形化界面创建用户和用户组的话就需要安装gnome-system-tools这个工具:

sudo apt-get install gnome-system-tools

添加用户:adduser命令,adduser 用户名

用户查询:finger命令,finger 用户名

修改用户密码:passwd命令,passwd 用户名

删除用户:deluser命令,deluser 用户名

添加用户组:addgroup命令,addgroup 用户组名

显示组内用户名:groups命令,groups 用户组名

删除用户组:delgroup命令,delgroup用户组名

权限管理


Ubuntu 下我们会常跟用户权限打交道,权限就是用户对于系统资源的使用限制情况, root用户拥有最大的权限,可以为所欲为,装系统的时候创建的用户拥有 root 用户的部分权限,其它普通用户 的权限最低。对于我们做嵌入式开发的人一般不关注用户的权限问题,因为嵌入式基本是单用户,做嵌入式 开发重点关注的是文件的权限问题。

对于一个文件通常有三种权限:读®、写(w)和执行(x),使用命令“ls -l”可以查看某个目录下所有文件的权限信息。

image.png

文件的权限有三种:读®、写(w)和执行(x),除了用 r、 w 和 x 表示以外,我们也可以

使用二进制数表示,三种权限就可以使用 3 位二进制数来表示,一种权限对应一个二进制位,如果该位为 1

就表示具备此权限,如果该位为 0 就表示没不具备此权限,

字母 二进制 八进制
r 100 4
w 010 2
x 001 1

将三种权限 r、 w 和 x 进行不同的组合,即可得到不同的二进制数和八进制数, 3 位权限可以组出 8 种不同的权限组合,

image.png

开始使用 a、 u、 g 和 o 表示文件的归属关系,用=、 +和-表示文件权限的变化,

image.png

Linux权限修改


用 Shell 来操作文件的权限管理,主要用到“chmod”和“chown”这两个命令

权限修改命令 chmod


命令“chmod”用于修改文件或者文件夹的权限,权限可以使用前面讲的数字表示也可以使用字母表示,

命令格式如下:

chmod [参数] [文件名/目录名]

image.png

文件归属者修改命令 chown


命令 chown 用来修改某个文件或者目录的归属者用户或者用户组,命令格式如下:

chown [参数] [用户名.<组名>] [文件名/目录]

其中[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用“.”隔开,其中用户名和组名中的任何一个都可以省略,命令主要参数如下:

image.png

Linux磁盘管理


Linux 的磁盘管理体系和 Windows 有很大的区别,在 Windows 下经常会遇到“分区”这个概念,在 Linux中一般不叫“分区”而叫“挂载点”。“挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”,不管在哪个发行版的 Linux 中,用户是绝对看到不到 C 盘、D 盘这样的概念的,只能看到以文件夹形式存在的“挂载点” 。

文件/etc/fstab 详细的记录了 Ubuntu 中硬盘分区的情况,

image.png

/ was on /dev/sda1 during installation,意思是根目录“/”是在/dev/sda1 上的,其中“/”是挂载点,“/dev/sda1”就是我们装 Ubuntu 系统的硬盘。

如下命令查看当前系统中的磁盘:

ls /dev/sd*

image.png

上图是表示在U盘插和拔的情况下的磁盘情况,sd 表示是 SATA 硬盘或者其它外部设备,最后面的数字表示该硬盘上的第 n 个分区,比如/dev/sda1 就表示磁盘 sda 上的第一个分区。 U盘插上以后,会多出sdb,这代表u盘的磁盘,其中sdb1表示磁盘 sdb 上的第一个分区。

磁盘管理命令


磁盘分区命令 fdisk


如果要对某个磁盘进行分区,可以使用命令 fdisk,命令格如下:

disk [参数]

主要参数如下:

image.png

可以使用fdisk对U 盘进行分区,

image.png

常用的命令如下:

image.png

格式化命令 mkfs


使用命令 fdisk 创建好一个分区以后,我们需要对其格式化,也就是在这个分区上创建一个文件系统,Linux 下的格式化命令为 mkfs,命令格式如下:

mkfs [参数] [-t 文件系统类型] [分区名称]

image.png

挂载分区命令 mount


创建好分区并且格式化,进行访问磁盘前需要对分区进行挂载,分区挂载到一个文件夹中,然后通过这个文件访问 U 盘,磁盘挂载命令为 mount,命令格式如下:

mount [参数] -t [类型] [设备名称] [目的文件夹]

image.png

卸载命令 umount


当我们不在需要访问已经挂载的 U 盘,可以通过 umount 将其从卸载点卸除,命令格式如下:

umount [参数] -t [文件系统类型] [设备名称]

image.png

挂载exfat格式优盘


安装依赖库:

sudo apt install exfat-fuse exfat-utils

完成安装后在磁盘类型选择exfat即可。

reference


  1. 正点原子开发视频
  2. 正点原子开发手册
目录
相关文章
|
2月前
|
Ubuntu Linux Shell
Linux系统中如何查看磁盘情况
【9月更文挑战第3天】在Linux系统中,有多种方式查看磁盘情况。可通过命令行工具`df`查看文件系统磁盘使用情况,选项`-h`以人类可读格式显示,`-T`显示文件系统类型;`du`命令显示目录或文件磁盘使用情况,`-h`以人类可读格式显示,`-s`仅显示总计;`fdisk -l`列出磁盘和分区信息。此外,图形界面的磁盘管理工具和文件管理器也可用于查看磁盘使用情况。这些方法有助于更好地管理磁盘空间。
550 4
|
3月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
29天前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
81 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
|
Linux 数据安全/隐私保护
Linux中用户权限问题
【10月更文挑战第4天】
15 1
|
1月前
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
33 1
|
2月前
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
55 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
38 0
|
2月前
|
存储 Linux 开发工具
如何进行Linux内核开发【ChatGPT】
如何进行Linux内核开发【ChatGPT】
|
3月前
|
Java Linux API
Linux设备驱动开发详解2
Linux设备驱动开发详解
43 6