linux权限操作---小白入门知识汇总1

举报
红鱼波波 发表于 2022/04/19 01:28:16 2022/04/19
【摘要】 对昇腾学习中涉及的linux文件权限和用户操作相关知识进行了汇总。

linux是一个强权限系统,登录需要使用用户名和密码,在实际操作中,每一个文件都有自己的所有者,所有组(归属组),文件会被分配一系列权限,典型如读、写和执行,只有具有相应权限的用户才能执行操作。需要注意的是,linux有一条信仰,叫

“万物皆文件”

对,万物皆文件,因此文件夹、驱动、乃至一些管理用的奇奇怪怪的东西都是按照文件一样操作的,自然也有对应的属性。

我们可以用这样的命令来看当前文件夹的属性:

ls  -lh

ls是查看当前目录,减号“-”表示跟随选项,l是详细列出所有内容,h是选择合适的体积单位(比如比较大的文件用MB表示,小的用kB表示)

比如在HwHiAiUser下,显示内容是这样的:
root@ecs-e537:/home/HwHiAiUser# ls -lh
total 48K
drwxr-x---  3 HwHiAiUser HwHiAiUser 4.0K Nov 25 14:44 ascend
drwxr-x---  4 HwHiAiUser HwHiAiUser 4.0K Feb 21 11:24 Ascend
drwxr-x---  2 HwHiAiUser HwHiAiUser 4.0K Mar 29  2021 AscendProjects
drwx------ 18 HwHiAiUser HwHiAiUser 4.0K Feb 21 11:40 ffmpeg-4.1.3
d-wxr-x---  2 root       root       4.0K Nov  6  2020 hdc_ppc
drwx------  3 HwHiAiUser HwHiAiUser 4.0K Jan 30  2021 ide_daemon
drwxrwxr-x  2 HwHiAiUser HwHiAiUser 4.0K Mar 30 00:33 jpeg_project
drwxrwxr-x  4 HwHiAiUser HwHiAiUser 4.0K Feb 21 14:02 models
drwxrwxr-x 23 HwHiAiUser HwHiAiUser 4.0K Feb 21 11:42 protobuf
drwxrwxr-x  7 HwHiAiUser HwHiAiUser 4.0K Feb 21 11:24 samples
drwxrwxr-x 21 HwHiAiUser HwHiAiUser 4.0K Sep 28  2021 tools
drwxrwxr-x  3 HwHiAiUser HwHiAiUser 4.0K Jan 30  2021 var

我们可以看到,整个显示分成几列,我们看到最右边是文件/文件夹名字,文件夹名字前面是修改时间,在4.0K的前面有两个HwHiAiUser ,当然不全是,比如hdc_ppc前面就是两个root,这就是所属的用户名和组,前面的是用户名,后面的是组。干啥用的呢,看最左边的一排,看到那10个字符了么?我贴在下面

d(rwx)(rwx)(rwx)

括号是我后加的,d代表这是一个目录,如果是文件就是“-”,后面三个括号 分别代表“所有者权限”“所属组权限”“其他人的权限”,规则是这样的:拥有w权限的可以写这个文件,拥有r权限可以读这个文件,拥有x能够执行这个文件。

打比方一个文件叫做bashrc,他的权限是:

-rw-r-----  1 HwHiAiUser users 5.7K Feb 21 14:02 bashrc

可以看到,他属于HwHiAiUser 用户,用户权限是rw-,就是可以读写这个文件,他属于users组,权限是r--,这组的人可以去读这个文件,但是没有办法写,对于除了这个用户之外的其他人,权限是“---”,无法访问这个文件。所有人都没有x权限,所以这个文件谁都不能执行。

有点类似于一个老师出了个课件,所有本班同学都能看,但是不能编辑,其他班的同学就连看的权利都没有了。

这个权限能不能改呢?必须能,比如我们有个文件test,原始权限全部清掉了,就是“----------”,修改权限的命令是这样的:

# 准许所有用户,读权限

chmod +r test 

执行完之后:
-r--r--r-- 1 root root 0 Apr 19 01:02 test

也可以加w和x,或者-r -w -x

我们也可以直接指定一个文件的权限,常见是rwxr-x---,本人读写执行,所属组可读可执行,其他人不可访问,设置语句如下:
chmod 750 test

750这三个数字是8进制的,分别是111   101  000   ,和上面的rwx对应,我们可以自主的控制任何一个范围的权限。很多教程对于没有权限,都会教授:chmod 777 *

就是把所有权限向所有人开放,于是本来没有权限操作的账户也就有权限了。

但是这样有个很大的隐患,本来这个机制是防止别人改我的文件的,我现在变成了777,机制废掉了啊。

别着急,还有另一种方式,可以抢过来文件,但是保留这种权限控制,那就是,修改文件所属人,语法如下:

chown   HwHiAiUser:users  test

chown是命令,HwHiAiUser是新的所有人,users是新的组,test是你要改的文件,如果文件夹,也可以,这个命令只改变这层文件(文件夹),文件夹里的文件是不变的,如果想改变文件夹所有文件,加一个-R参数,

chown   HwHiAiUser:users  test -R

这个文件夹下的所有文件就都改掉所属人了。

好了,权限操作就是三个操作:ls可以看权限和所属人,chmod可以修改读写执行,chown可以修改所属人。如果想了解一个命令的更详尽内容,可以使用man命令后面跟想查询的命令名,比如:
man  chmod

会有一个很详细的说明手册,手册按q退出。

好了,内容说完了,作为小白教程,必须还要带着坑讲,这可是看大神教程看不到的:)

1. 没有写权限,就意味着当前用户不能在该文件夹下创建文件或者文件夹,而编译过程中编译器会自动创建临时文件和文件夹,这就要求对当前文件夹和一些特殊文件夹(比如build子文件夹)有读写权限,如果编译不过可用ls -lh观察一下是否该用户能读写。

2.root用户拥有很高的权限,可以操作普通用户如HwHiAIUser的文件夹,而HwHiAIUser用户无法操作root用户的750权限文件

3.sudo 可以将用户临时提升到root权限,提升后创建的文件归root所有。

对,这就是一套的连环坑,比较典型的就是在root下下载了sample,然后拷贝到了HwHiAIUser,解压,切到HwHiAiUser,发现无法编译,因为解压出来的文件夹归root,于是只能sudo编译,编出来的东西还是root所有,执行的时候发现文件创建不出来,因为输出文件夹的权限是root的。

解决方式:

第一种:使用chmod 777 * -R  粗暴放开所有权

第二种:对下载包使用chown 获得所有权后,所有操作在HwHiAiUser下执行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。