从0开始学linux(1)

本文详细介绍了Linux系统的用户权限管理机制,包括用户、组群和其他用户的定义及其相关信息的存储位置。文章还深入探讨了如何利用chmod命令来修改文件权限,以及如何使用chown命令来更改文件的属主和属组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux用户分为:拥有者(User)、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

linux文件的用户权限的分析图

linux文件的用户权限的分析图

语法
chmod(选项)(参数)

选项

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录
的所属群组相同;
<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;
<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;
<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;

例:
rwx rw- r–
r=读取属性  //值=4
w=写入属性  //值=2
x=执行属性  //值=1

chmod u+x,g+w f01  //为文件f01设置自己可以执行,组员可以写入的权限
chmod u=rwx,g=rw,o=r f01
chmod 764 f01    //7表示r+w+x,即4+2+1,即文件所有者可读可写可执行,后面的6和4以此
                 //类推
chmod a+x f01  //对文件f01的u,g,o都设置可执行属性 

这里写图片描述

文件的属主和属组属性设置

chown user:market f01  //把文件f01给uesr,添加到market组
ll -d f1  查看目录f1的属性

查看文件:ls
ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

语法

ls(选项)(参数)

选项

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
--file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--full-time:列出完整的日期与时间;
--color[=WHEN]:使用不同的颜色高亮显示不同类型的。

参数
目录:指定要显示列表的目录,也可以是具体的文件。

实例
显示当前目录下非影藏文件与目录

[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  satools

以列表形式显示当前目录下以bash为首以及以.bash为首的文件
此处的*代表从0到无穷多个字符

xian@virtual:/tmp$ ls -l bash* .bash*
-rw------- 1 xian xian  854 98 10:19 .bash_history
-rw-r--r-- 2 xian xian 3771 98 09:51 bashrc
-rw-r--r-- 1 xian xian 3771 98 10:19 .bashrc
-rw-r--r-- 2 xian xian 3771 98 09:51 bashrc_hlink
lrwxrwxrwx 1 xian xian    6 98 10:04 bashrc_slink -> bashrc
-rw-r--r-- 1 xian xian 3771 98 10:12 bashrc_slink_1
lrwxrwxrwx 1 xian xian    6 98 10:13 bashrc_slink_2 -> bashrc

ll命令:ls -l的别名

对于从零开始Linux驱动开发,以下是一些建议的步骤: 1. 了解基本概念:首先,要对Linux内核和设备驱动有基本的了解。Linux内核的基本结构、设备模型、驱动框架等内容,这可以通过阅读相关的书籍、教程和在线资源来进行习。 2. 习C语言和操作系统概念:Linux驱动开发主要使用C语言编写,因此你需要掌握C语言的基本语法和编程技巧。此外,了解操作系统的基本概念,如进程管理、内存管理等,对于理解驱动开发也很有帮助。 3. 阅读Linux内核源代码:阅读Linux内核源代码是习驱动开发的重要步骤。你可以从简单的驱动开始,如字符设备驱动,然后逐渐深入研究其他类型的驱动,如块设备驱动、网络设备驱动等。通过阅读内核源代码,你可以习到内核中驱动的实现方式和相关API的使用。 4. 习设备驱动框架和API:Linux内核提供了一些设备驱动框架和API,用于简化驱动开发。例如,字符设备驱动可以使用字符设备框架,网络设备驱动可以使用网络设备框架。了解和习这些框架和API的使用方法,可以帮助你更高效地编写驱动。 5. 实践和调试:通过实践来巩固所的知识。尝试编写简单的驱动程序,并进行调试和测试。可以使用虚拟机或者开发板进行实践,这样可以更好地理解驱动开发的过程和问题。 6. 参考和交流:在习过程中,可以参考一些经典的Linux驱动开发书籍,如《Linux设备驱动程序》、《Linux设备驱动开发详解》等。同时,积极参与Linux社区和论坛,与其他开发者交流经验和问题。 需要注意的是,Linux驱动开发是一个庞大而复杂的领域,需要时间和耐心来习和掌握。建议从简单的驱动开始,逐步深入习和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值