声明
本博客所记录的关于正点原子i.MX6ULL开发板的学习笔记,(内容参照正点原子I.MX6U嵌入式linux驱动开发指南,可在正点原子官方获取正点原子Linux开发板 — 正点原子资料下载中心 1.0.0 文档),旨在如实记录我在学校学习该开发板过程中所遭遇的各类问题以及详细的解决办法。其初衷纯粹是为了个人知识梳理、学习总结以及日后回顾查阅方便,同时也期望能为同样在学习这款开发板的同学或爱好者提供一些解决问题的思路和参考。我尽力保证内容的准确性和可靠性,但由于个人知识水平和实践经验有限,若存在错误或不严谨之处,恳请各位读者批评指正。
责任声明:虽然我力求提供有效的问题解决办法,但由于开发板使用环境、硬件差异、软件版本等多种因素的影响,我的笔记内容不一定适用于所有情况。对于因参考本笔记而导致的任何直接或间接损失,我不承担任何法律责任。使用本笔记内容的读者应自行承担相关风险,并在必要时寻求专业技术支持。
1. Ubuntu用户系统
在安装 Ubuntu 系统的时候被要求创建一个账户,当我们创建好账号以后,系统会在目录/home 下以该用户名创建一个文件夹,所有与该用户有关的文件都会被存储在这个文件文件夹中。创建其它用户账号的时候也会在目录/home 下生成一个文件夹来存储该用户的文件。
装系统的时候创建的用户其权限比后面创建的用户大一点,但是没有 root 用户权限大, Ubuntu 下用户类型分为以下 3 类:
1. 初次创建的用户,此用户可以完成比普通用户更多的功能。
2. root 用户,系统管理员,拥有最高的权利。
3. 普通用户,安装完操作系统以后被创建的用户。
每个用户都有一个 ID 号,称为 UID,操作系统通过 UID 来识别是哪个用户,用户相关信息可以在文件/etc/passwd 中查看到
从配置文件 passwd 中可以看到,每个用户名后面都有两个数字,root后面“0:0”,第一个数字是用户的 ID,另一个是用户的 GID,也就是用户组 ID。 Ubuntu里面每个用户都属于一个用户组里面,用户组就是一组有相同属性的用户集合。
2. 权限管理
权限就是用户对于系统资源的使用限制情况, root 用户拥有最大的权限,装系统的时候创建的用户拥有root 用户的部分权限,其它普通用户的权限最低。
对于一个文件通常有三种权限:读(r)、写(w)和执行(x),使用命令“ls -l”可以查看某个目录下所有文件的权限信息
以 3 位为一组,分别表示文件拥有者的权限,文件拥有者所在用户组的权限以及其它用户权限,后面的“mayachao mayachao”分别代表文件拥有者(用户)和该用户所在的用户组。
以test.sh为例
1.文件 test.sh的拥有者是用户 mayachao,其对文件 的权限是“rw-”,也就是对该文件拥有读和写两种权限。
2.用户 mayachao 所在的用户组也叫做mayachao,其组内用户对于文件 test.sh 的权限是“rw-”,也是拥有读和写这两种权限
3.它用户对于文件 test.sh 的权限是“r--”,也就是只读权限
对于文件,可读权限表示可以打开查看文件内容,可写权限表示可以对文件进行修改,可执行权限就是可以运行此文件(如果是软件的话)。对于文件夹,拥有可读权限才可以使用命令 ls查看文件夹中的内容,拥有可执行权限才能进入到文件夹内部。
如果某个用户对某个文件不具有相应的权限的话就不能进行相应的操作,比如根目录“/”下的文件只有 root 用户才有权限进行修改,如果以普通用户去修改的话就会提示没有权限。需要使用sudo命令暂时切换到root用户
文件的权限有三种:读(r)、写(w)和执行(x),除了用 r、 w 和 x 表示以外,我们也可以使用二进制数表示,三种权限就可以使用 3 位二进制数来表示,一种权限对应一个二进制位,如果该位为 1 就表示具备此权限,如果该位为 0 就表示不具备此权限
将三种权限 r、 w 和 x进行不同的组合,即可得到不同的二进制数和八进制数, 3 位权限可以组出 8 种不同的权限组合
权限所对应的八进制数字就是每个权限对应的位相加,比如权限 rwx 就是4+2+1=7。前面的文件 test.sh 其权限为“rw-rw-r--”,因此其十进制表示就是: 664。
使用 a、 u、 g 和 o 表示文件的归属关系,用=、 +和-表示文件权限的变化
对于文件 test.sh,我们想要修改其归属用户(mayachao)对其拥有可执行权限,那么就可以使用: u+x。如果希望设置归属用户及其所在的用户组都对其拥有可执行权限就可以使用: gu+x。
3.权限管理命令
1、权限修改命令 chmod
命令“chmod”用于修改文件或者文件夹的权限,权限可以使用前面讲的数字表示也可以使用字母表示,命令格式如下:
chmod [参数] [文件名/目录名]
主要参数:
-c 效果类似“-v”参数,但仅回显更改的部分。
-f 不显示错误信息。
-R 递归处理,指定目录下的所有文件及其子文件目录一起处理。
-v 显示指令的执行过程。
修改test.sh的权限,现在是rw-rw-r(664),将其改为rwxrwxrwx(777)
如果要设置一个文件夹里面的所有文件权限,需要采用 -R参数
2、文件归属者修改命令 chown
命令 chown 用来修改某个文件或者目录的归属者用户或者用户组,命令格式如下:
chown [参数] [用户名.<组名>] [文件名/目录]
[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用
“.”隔开,其中用户名和组名中的任何一个都可以省略,命令主要参数如下:
-c 效果同-v 类似,但仅显示更改的部分。
-f 不显示错误信息。
-h 只对符号连接的文件做修改,不改动其它任何相关的文件。
-R 递归处理,将指定的目录下的所有文件和子目录一起处理。
-v 显示处理过程。
将test.sh文件的归属用户和用户组修改为root用户和root组
如要递归设置也是加上-R选项