Linux 的一些知识(3)
Linux 的一些知识(3)
文章目录
- Linux 的一些知识(3)
1. chmod、chown、chgrp
Linux 系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
文件或目录的访问权限分为只读,可写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。
chmod 命令
chmod命令是非常重要的,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
1. 文字设定法
chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为: 操作对象who可以是下述字母中的任意一个或者它们的组合: u 表示“用户(user)”,即文件或目录的所有者。 g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户 o 表示“其他(other)用户” a 表示“所有(all)用户”。它是系统默认值 操作符号可以是: + 添加某个权限 - 取消某个权限 = 赋予给定权限并取消其他所有权限(如果有的话)。 设置mode 所表示的权限可用下述字母的任意组合: r 可读 w 可写 x 可执行 X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加X属性 s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式”u+s“设置文件的用户ID位,”g+s“设置组ID位 t 保护程序的文本到交换设备上。 u 与文件属主拥有一样的权限。 g 与和文件属主同组的用户拥有一样的权限 o 与其他用户拥有一样的权限 文件名:以空格分开的要改变权限的文件列表,支持通配符。 在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example 使同组和其他用户对文件example 有读权限。
2.数字设定法
数字设定法中: 0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
chgrp 命令
功能:改变文件或目录所属的组。语法:chgrp [选项] group filename 该命令改变指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group 文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。该命令的选项含义为:- R 递归式地改变指定目录及其下的所有子目录和文件的属组。eg1:$ chgrp - R book /opt/local /book改变/opt/local /book及其子目录下的所有我呢见的属组为book。
chown 命令
功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户bai,为了让用户bai能够存取这个文件,root用户应该把这个文件的属主设为bai,否则,用户bai无法存取这个文件。语法:chown [选项] 用户或组 文件说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。 该命令的各选项含义如下: - c 若该档案拥有着确实已经更改,才显示其更改动作 - f 若该档案拥有者无法被更改也不要显示错误讯息 - h 只对于连结(link)进行变更,而非该link真正指向的档案 - R 递归式地改变指定目录及其下的所有子目录和文件的拥有着。 - V 显示chown命令所做的工作 - help 显示辅助说明 - version 显示版eg1:把文件test.c 的所有者改为bai。 $ chown bai test.ceg2:把目录/tmp及其下的所有文件和子目录的属主改成bai,属组改成users $ chown - R bai.users /tmp
2.rcp命令
rcp
命令用于复制远程文件或目录,如同时指定两个以上的文件或目录,且最后的目标位置是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中,执行rcp
命令以后不会有返回信息,仅需要在目标目录下查看文件或目录是否复制成功即可,rcp
不提示输入密码,其通过rsh
执行远程执行,并且需要相同的授权。
语法
rcp [options] [origin] [target]
参数
-r
:递归地把源目录中的所有内容拷贝到目标目录中,要使用这个选项,目标位置必须是一个目录。-p
:保留源文件的修改时间和模式,包括拥有者、所属群组、权限与时间,忽略umask
。-k
:请求rcp
获得在指定区域内的远程主机的Kerberos
许可,而不是获得由krb_relmofhost
确定的远程主机区域内的远程主机的Kerberos
许可。-x
:为传送的所有数据打开DES
加密,这会影响响应时间和CPU
使用率,但是可以提高安全性。-D
:指定远程服务器的端口号。
示例
远程复制 test.txt 文件
rcp root@192.168.10.10:/test.txt /tmp
3.scp命令传文件
1. 基本语法
Linux scp
命令用于Linux 之间复制文件和目录。
scp
是secure copy 的缩写,scp
是linux 系统下基于 ssh 登录进行安全的远程文件拷贝命令。
scp 是 加密的,rcp 是不加密的,scp 是rcp的加强版。
scp [本地或远程文件的路径] [服务器用户名]@[服务器地址]:[远程或本地文件的路径]-1:强制scp命令使用协议ssh1-2:强制scp命令使用协议ssh2-4:强制scp命令只使用IPv4寻址-6:强制scp命令只使用IPv6寻址-B:使用批处理模式(传输过程中不询问传输口令或短语)-C:允许压缩。(将 -C 标志传递给ssh,从而打开压缩功能)-p:保留原文件的修改时间,访问时间和访问权限。-q:不显示传输进度条。-r:递归复制整个目录。-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。-l limit:限定用户所能使用的带宽,以Kbit/s 为单位。-o ssh_option:如果习惯于使用ssh_config(5)中的参数传递方式-P port:注意是大写的P,port是指定数据传输用到的端口号-S program:指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
2.具体用法
1、从本地将文件传输到服务器
格式:scp [本地文件的路径] [服务器用户名]@[服务器地址]:[服务器上存放文件的路径]eg:scp /tmp/test.txt root@192.168.10.10:/data
2、从本地将文件夹传输到服务器
格式:scp -r [本地文件的路径] [服务器用户名]@[服务器地址]:[服务器上存放文件的路径]eg:scp -r /tmp/test root@192.168.10.10:/data
3、将服务器上的文件传输到本地
格式:scp [服务器用户名]@[服务器地址]:[服务器上存放文件的路径] [本地文件的路径]eg:scp root@192.168.10.10:/data/test.txt /tmp
4、将服务器上的文件夹传输到本地
格式:scp -r [服务器用户名]@[服务器地址]:[服务器上存放文件的路径] [本地文件的路径]eg:scp -r root@192.168.10.10:/data/test /tmp