发布于:,更新于:

Linux 权限操作

Linux 权限操作

1.用字母的方式改变权限 用u表示文件所有者,g表示同组用户,o表示其他用户 用r表示可读,用w表示可写,用x表示可执行,文件的权限就可以表示为字母等式的组合

1
[root@master ~]# touch a01.txt

使文件所有者具有可读可写可执行:

1
[root@master ~]# chmod u=rwx a01.txt

使同组用户和其他用户可读不可写可执行:

1
[root@master ~]# chmod go=rx a01.txt

在原来的基础上,为同组用户增加可写属性:

1
[root@master ~]# chmod g+w a01.txt

在原来的基础上,收回其他用户可执行的属性:

1
[root@master ~]# chmod o-x a01.txt

文件所有者可读不可写可执行,同组用户收回可写属性,其他用户增加可写属性:

1
[root@master ~]# chmod u=rx,g-w,o+w a01.txt

2.修改文件的所有者与所属组chown

增加用户aaa:

1
[root@master ~]# useradd aaa

将文件a01.txt的所有者改为aaa:

1
2
3
[root@master ~]# chown aaa a01.txt 
[root@master ~]# ll a01.txt
-r-xr-xrw-. 1 aaa root 0 11月 27 08:15 a01.txt

Linux权限数字表达

智谱清言 生成回答, 可能含有不正确的内容, 如有错误欢迎指正.

在Linux中,文件和目录的权限可以用数字来表示,这些数字对应于权限的读(r)、写(w)和执行(x)。以下是各个权限对应的数字:

  • 读(r):4
  • 写(w):2
  • 执行(x):1

无权限(-)对应的数字是0。权限的设置是通过组合这些数字来实现的。例如,读和执行权限的组合(r-x)对应的数字是5(4+1),读和写权限的组合(rw-)对应的数字是6(4+2)。

在Linux中,权限的设置通常遵循以下模式:

  • 第一位数字:文件所有者的权限
  • 第二位数字:文件所属组的权限
  • 第三位数字:其他用户的权限

例如,权限模式755表示:

  • 所有者(owner):7(读、写、执行权限)
  • 组(group):5(读、执行权限,无写权限)
  • 其他用户(others):5(读、执行权限,无写权限)

在Linux中,还有一些特殊的权限设置:

  • 600(rw-------):所有者有读写权限,组和其他用户无权限。
  • 644(rw-r--r--):所有者有读写权限,组和其他用户只有读权限。
  • 666(rw-rw-rw-):所有者有读写权限,组和其他用户也有读写权限(但通常不会同时给予)。
  • 700(rwx------):所有者有读写执行权限,组和其他用户无权限。
  • 744(rwxr--r--):所有者有读写执行权限,组和其他用户只有读权限。
  • 755(rwxr-xr-x):所有者有读写执行权限,组和其他用户有读和执行权限,但无写权限。
  • 777(rwxrwxrwx):所有者有读写执行权限,组和其他用户也有读写执行权限(但通常不会同时给予)。 在实际操作中,可以使用chmod命令来设置或修改文件和目录的权限。例如:
1
chmod 755 file.txt

这个命令会将文件file.txt的权限设置为所有者可读写执行,组和其他用户可读执行。

课堂练习:

将命令和结果粘贴在桌面的release目录下,模块A提交的结果文件中。要求命令参数文件路径使用绝对路径。

  1. 建立文件夹/aaa/a01
1
mkdir -p /aaa/a01
  1. 转移到/aaa/a01目录下,并显示当前路径
1
cd /aaa/a01 && pwd
  1. 在文件夹/aaa/a01下新建文件myHadoop01.txt,内容为: Hello Hadoop Hello HDFS Hello spark
1
2
3
4
5
cat >> /aaa/a01/myHadoop01.txt << EOF
Hello Hadoop
Hello HDFS
Hello spark
EOF
  1. 新建文件夹/bbb/b01
1
mkdir -p /bbb/b01
  1. 将文件/aaa/a01/myHadoop01.txt,复制到/bbb/b01目录下,并改名为myHadoop02.txt。
1
cp /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt
  1. 在/bbb/b01/myHadoop02.txt末尾,新增加一行内容: Hello Yarn
1
echo "Hello Yarn" >> /bbb/b01/myHadoop02.txt
  1. 比较/aaa/a01/myHadoop01.txt和/bbb/b01/myHadoop02.txt的不同之处。
1
diff /aaa/a01/myHadoop01.txt /bbb/b01/myHadoop02.txt
  1. 打印/aaa/a01/myHadoop01.txt的前两行内容。
1
head -n 2 /aaa/a01/myHadoop01.txt
  1. 打印/bbb/b01/myHadoop02.txt的最后1行内容。
1
tail -n 1 /bbb/b01/myHadoop02.txt
  1. 将文件夹/aaa,拷贝为/ccc
1
cp -r /aaa /ccc
  1. 删除/ccc/a01/myHadoop01.txt文件。
1
rm -rf /ccc/a01/myHadoop01.txt
  1. 分别删除文件夹/ccc/a01,/ccc
1
2
rmdir /ccc/a01
rmdir /ccc
  1. 为文件/aaa/a01/myHadoop01.txt,建立软连接/aaa/a01/myHadoop
1
ln -s /aaa/a01/myHadoop01.txt /aaa/a01/myHadoop
  1. 用tar命令将/bbb/b01/myHadoop02.txt压缩为/bbb/b01/myHadoop02.tar.tz
1
tar -C /bbb/b01/ -czvf /bbb/b01/myHadoop02.tar.tz myHadoop02.txt
  1. 查找电脑中所有以myHadoop字符开头的文件。
1
find / -name myHadoop*
  1. 查找/aaa/a01/myHadoop01.txt中所有包含Hadoop的行。
1
grep "Hadoop" /aaa/a01/myHadoop01.txt
  1. 显示/aaa/a01/myHadoop01.txt的属性,并用文字说明该文件的文件所有者、同组用户、其他用户分别具有什么权限。
1
2
[root@MySQL01 aaa]# ll /aaa/a01/myHadoop01.txt
-rw-r--r--. 1 root root 36 1月 1 12:48 /aaa/a01/myHadoop01.txt
  • 文件所有者: 读写权限
  • 同组用户,其他用户: 读权限
  1. 用数字的方式,将myHadoop01.txt的权限设置为文件所有者可读不可写可执行,同组用户只可读,其他用户只可执行。
1
chmod 541 /aaa/a01/myHadoop01.txt
  1. 用字母的方式,将myHadoop01.txt的权限设置为一切用户均可读可写可执行。
1
chmod a=rwx /aaa/a01/myHadoop01.txt
  1. 新建用户aaa
1
useradd aaa
  1. 将文件夹/aaa的所有者设置为aaa用户,并显示/aaa的属性
1
chown aaa /aaa && stat /aaa