目录
1.用户权限管理
1.1.用户系统
Ubuntu是多用户系统,使用用户账号的目的一是方便系统管理员(root)管理,控制不同用户对系统的访问权限,另一方面是为用户提供安全性保护。创建好用户后,系统会在目录“/home”下以该用户名创建一个文件夹,所有与其有关的文件都会被存储在该文件夹中。
Ubuntu下用户类型分为3类:
- 初次创建的用户,此用户可以完成比普通用户更多的功能。
- root 用户,系统管理员,使用sudo su切换到root用户。
- 普通用户,安装完操作系统以后被创建的用户。
以上三种每个用户都有一个ID号,称为 UID,操作系统通过 UID 来识别用户。用户相关信息可以在文件/etc/passwd(etc中保存系统管理所需的配置文件)中查看到。从配置文件passwd中可以看到用户名wjq后面有两个数字,第一个是用户ID,另一个是用户GID,即用户组ID。Ubuntu每个用户都属于一个用户组,用户组是一组有相同属性的用户集合。
1.2.创建用户和用户组命令
- 添加用户:adduser 用户名
- 用户查询:finger 用户名
- 修改用户密码:passwd 用户名
- 添加用户组:addgroup 用户组名
- 显示组内用户名:groups 用户组名
- 删除用户组:delgroup用户组名
1.3.权限管理
Ubuntu的权限就是用户对于系统资源的使用限制情况,root用户拥有最大的权限,可以为所欲为,装系统的时候创建的用户拥有root用户的部分权限,其它普通用户的权限最低。对于嵌入式开发一般不关注用户的权限问题,而是文件的权限问题。
使用命令 “ls -l” 可以查看某个目录下所有文件的权限信息,文件通常有三种权限:读®、写(w)和执行(x),三种权限就可以用3位二进制数来表示,如果该位为1就表示具备此权限。
上图中第一位表示文件类型:d是目录文件,l是链接文件,-是普通文件,p是管道。
可以使用a、u、g和o表示文件的归属关系,用=、+和-表示文件权限的变化,如下表所示:
对于某个test.c,如果想修改其归属用户(wjq)对其拥有可执行权限,可以使用:u+x。如果想设置归属用户及其所在的用户组都对其拥有可执行权限,可以使用:gu+x。
1.4.权限管理命令
- chmod:权限修改命令,用于修改文件或者文件夹的权限,权限可以使用前面讲的数字表示也可以使用字母表示。chmod [参数] [文件名/目录名]。
下图中,分别使用chmod 766 xxx和chmod u+x xxx修改文件权限,u是归属用户(wjq),x是可执行权限(r)。
下图中,使用-R参数(递归)对文件夹wjq进行操作,将其中所有文件的权限改为“777”:所有用户和用户组均可读可写可执行。
- chown:文件归属者修改命令,用来修改某个文件或者目录的归属者用户或者用户组。chown [参数] [用户名.<组名>] [文件名/目录],[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名用“.”隔开,其中用户名和组名中的任何一个都可以省略。
举例:sudo chown root.root xxx
将文件归属用户改为 root 用户,所属的用户组也改为 root
2.磁盘管理
2.1.磁盘管理基本概念
在Linux磁盘的分区叫“挂载点”, “挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”。文件/etc/fstab详细的记录了Ubuntu中硬盘分区的情况。
下图中“/was on /dev/sda1 during installation”,意思是根目录“/”是在/dev/sda1上的,“/”是挂载点,“/dev/sda1”就是装Ubuntu系统的硬盘。
下图打印出所有以/dev/sd开头的设备文件(dev文件夹),sd表示是SATA硬盘或者其它外部设备,最后面的数字表示该硬盘上的第n个分区;如果再插上U盘就可能会出现/dev/sdb,/dev/sdc等。
2.2.磁盘管理命令
- fdisk:磁盘分区命令,fdisk [参数] /dev/sdx。
- mkfs:格式化命令,使用fdisk创建好一个分区以后,需要对其格式化,也就是在这个分区上创建一个文件系统,mkfs [参数] [-t 文件系统类型] [分区名称]。
- mount:挂载分区命令,假如U盘就一个分区为/dev/sdb1,需要将/dev/sdb1这个分区挂载到一个文件夹中,然后通过这个文件访问U盘,mount [参数] -t [类型] [设备名称] [目的文件夹]。
在挂载之前先要创建一个文件夹,一般我们把挂载点放到“/mnt”目录下,在“/mnt”下创建一个tmp文件夹,然后将U盘的/dev/sdb1分区挂载到/mnt/tmp文件夹里面,就可以通过访问/mnt/tmp来访问U盘了。
- umount:卸载命令,umount [参数] -t [文件系统类型] [设备名称]。
3.连接文件
Linux的两种连接文件: 硬连接和符号连接(软连接),硬连接是通过文件系统的inode连接来产生信文件名,而不是产生新文件;符号链接相当于windows下的快捷方式。
inode: 记录文件属性,相当于文件ID,查找文件要先找到inode,才能读出文件内容。
In命令: 用于创建连接文件,ln [选项] 源文件 目标文件。
-s:创建符号连接(软连接)。
不加选项:创建硬连接。
-f:强制创建连接文件。
3.1.硬连接
- 硬连接指多个文件指向一个Inode。
- 具有相同Inode的多个文件互为连接文件,创建硬连接相当于文件实体多了入口。
- 不管修改源文件还是连接文件,另一文件的数据都会被改变。
- 给文件创建硬连接可以防止其被误删除。
- 硬连接不能跨文件系统,不能连接到目录。
下图中我们对可执行文件创建了两个硬连接文件(使用ln命令),然后使用“ls -li xxx*”查看它们的Inode,发现是相同的;删除源文件后,硬连接文件也能正常执行。
3.2.符号连接(软连接)
- 软连接相当于快捷方式,在嵌入式linux中用的比较多;软连接文件会让数据读取指向它连接的的那个文件的文件名。
- 可以连接到目录,可以跨文件系统。
- 删除源文件后,软连接文件将无法打开。
- 软连接文件可以通过->来指示具体的连接文件。
- 软连接最好使用绝对路径,否则移动到其它目录后将不再是快捷方式。
下图中,使用“ln -s”命令使用绝对路径对可执行文件创建了软连接,使用“ls -li”指令查看文件Inode,发现它指向了源文件;使用“cp -d”拷贝快捷方式指令将软连接文件拷贝到其它目录,查看文件还是蓝色,说明软连接文件拷贝成功。
参考正点原子嵌入式Linux开发指南