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. 正点原子开发手册
目录
相关文章
|
4天前
|
Linux 编译器 Android开发
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
在Linux环境下,本文指导如何交叉编译x265的so库以适应Android。首先,需安装cmake和下载android-ndk-r21e。接着,下载x265源码,修改crosscompile.cmake的编译器设置。配置x265源码,使用指定的NDK路径,并在配置界面修改相关选项。随后,修改编译规则,编译并安装x265,调整pc描述文件并更新PKG_CONFIG_PATH。最后,修改FFmpeg配置脚本启用x265支持,编译安装FFmpeg,将生成的so文件导入Android工程,调整gradle配置以确保顺利运行。
24 1
FFmpeg开发笔记(九)Linux交叉编译Android的x265库
|
22天前
|
JSON 机器人 Linux
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
推荐一款嵌入式Linux开源框架与封装-cpp-tbox
52 3
|
4天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
15天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
16天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
9天前
|
Linux 编译器 测试技术
嵌入式 Linux 下的 LVGL 移植
嵌入式 Linux 下的 LVGL 移植
|
10天前
|
Linux 内存技术 Perl
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件
|
10天前
|
Ubuntu Linux 测试技术
【ZYNQ】简单几步,教你使用 Petalinux 定制 Linux
【ZYNQ】简单几步,教你使用 Petalinux 定制 Linux
|
10天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
102 2
|
16天前
|
存储 缓存 监控
Linux内存和硬盘空间管理技巧
了解Linux内存和硬盘管理技巧,提升系统性能和稳定性。使用`free`, `top`, `vmstat`监控内存,通过`sync`, `echo 1 &gt; /proc/sys/vm/drop_caches`清理缓存。利用Swap分区释放内存。借助`df`, `du`检查硬盘空间,清理无用文件,使用`clean-old`, `gzip`, `tar`压缩归档。查找大文件用`find`和`du`,确保
33 0