有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户.所有者一般是文件的创建者.所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户.在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录.
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限.当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限.例如:
$ ls?-l sobsrc.?tgz
横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型.在通常意义上,一个目录也是一个文件.如果第一个字符是横线,表示是一个非目录的文件.如果是d,表示是一个目录.例如:
– rw- r– r–
普通文件 文件主 组用户 其他用户
是文件sobsrc.tgz 的访问权限,表示sobsrc.tgz是一个普通文件;sobsrc.tgz的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限.
确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限.也可以利用chown命令来更改某个文件或目录的所有者.利用chgrp命令来更改某个文件或目录的用户组.
下面分别对这些命令加以介绍.
chmod 命令
chmod命令是非常重要的,用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限.
以主文件夹下的一个名为"cc"的文件夹为例.下面一步一步介绍如何修改权限:
①打开终端.输入"su"(没有引号)
其中每一位的权限用数字来表示.具体有这些权限:
x(eXecute,执行,权限值为1):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限.
一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则用1表示,没有则有0表示,那么rwx则可以表示成为:111
一般都是最高位表示文件所有者权限值,第二位表示群组用户权限,最低位表示其他用户权限.
下面来举些例子熟悉下.
权限 ? ?数值 ?
该命令有两种用法.一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法.
① 文字设定法
chmod [who] [+ | – | =] [mode] 文件名?
命令中各选项的含义为:
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示"用户(user)",即文件或目录的所有者.
g 表示"同组(group)用户",即与文件属主有相同组ID的所有用户.
o 表示"其他(others)用户".
a 表示"所有(all)用户".它是系统默认值.
操作符号可以是:
+ 添加某个权限.
– 取消某个权限.
= 赋予给定权限并取消其他所有权限(如果有的话).
设置mode所表示的权限可用下述字母的任意组合:
r 可读.
w 可写.
x 可执行.
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性.
s 在文件执行时把进程的属主或组ID置为该文件的文件属主.方式"u+s"设置文件的用户ID位,"g+s"设置组ID位.
t 保存程序的文本到交换设备上.
u 与文件属主拥有一样的权限.
g 与和文件属主同组的用户拥有一样的权限.
o 与其他用户拥有一样的权限.
-c?:?若该档案权限确实已经更改,才显示其更改动作
-f?:?若该档案权限无法被更改也不要显示错误讯息
-v?:?显示权限变更的详细资料
-R?:?对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help?:?显示辅助说明
–version?:?显示版本
文件名:以空格分开的要改变权限的文件列表,支持通配符.在一个命令行中可给出多个权限方式,其间用逗号隔开.例如:chmod g+r,o+r example使同组和其他用户对文件example 有读权限.
例1:
$ chmod a+x sort
即设定文件sort的属性为:
文件属主(u) 增加执行权限
与文件属主同组用户(g) 增加执行权限
其他用户(o) 增加执行权限
$ chmod ug+w,o-x text
即设定文件text的属性为:
文件属主(u) 增加写权限
与文件属主同组用户(g) 增加写权限
其他用户(o) 删除执行权限
$ chmod u+s a.out
假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):
并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为"–rw——-",即该文件只有其属主具有读写权限.
当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能.
所以呢,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵.
$ chmod a–x mm.txt
$ chmod?–x mm.txt
$ chmod ugo–x mm.txt
以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者.
数字设定法的一般形式为:chmod [mode] 文件名?
$ ls?–l
即设定文件mm.txt的属性为:
文件属主(u)inin 拥有读、写权限
与文件属主同组人用户(g) 拥有读权限
其他人(o) 拥有读权限
即设定wchtxt这个文件的属性为:
文件主本人(u)inin 可读/可写/可执行权
与文件主同组人(g) 可读/可执行权
其他人(o) 没有任何权限
chgrp命令
功能:改变文件或目录所属的组.
语法:chgrp?[选项] group filename?
参数:
-c或–changes 效果类似"-v"参数,但仅回报更改的部分.
-f或–quiet或–silent 不显示错误信息.
-h或–no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件.
-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理.
-v或–verbose 显示指令执行过程.
–help 在线帮助.
–reference=lt;参考文件或目录gt; 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同.
–version 显示版本信息.
该命令改变指定指定文件所属的用户组.其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名.文件名是以空格分开的要改变属组的文件列表,支持通配符.如果用户不是该文件的属主或超级用户,则不能改变该文件的组.
该命令的各选项含义为:
– R 递归式地改变指定目录及其下的所有子目录和文件的属组.
$?chgrp?-?R book?/opt/local?/book
改变/opt/local /book/及其子目录下的所有文件的属组为book.
chown?命令
功能:更改某个文件或目录的属主和属组.这个命令也很常用.例如root用户把自己的一个文件拷贝给用户yusi,为了让用户yusi能够存取这个文件,root用户应该把这个文件的属主设为yusi,否则,用户yusi无法存取这个文件.
语法:chown?[选项] 用户或组 文件
说明:chown将指定文件的拥有者改为指定的用户或组.用户可以是用户名或用户ID.组可以是组名或组ID.文件是以空格分开的要改变权限的文件列表,支持通配符.
参数说明:
user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
$ chown?-?R yusi.users?/demo
例如:chown qq /home/qq ?(把home目录下的qq目录的拥有者改为qq用户)
例如:chown -R qq /home/qq ?(把home目录下的qq目录下的所有子文件的拥有者改为qq用户)
①.、调整文件的权限命令:chmod
Linux的每个文件都定义了文件的拥有者:u(user)、拥有组:g(group)、其他人:o(others)权限,对应的权限用rwx的组合来定义.使用chmod命令,增加权限用+,删除权限用-,某个文件详细的权限用=号.
比如:
chmod u+r filename? #给某文件增加读的权限
chmod u-r filename? #给某文件删除读的权限
chmod u+w filename? #给某文件增加写的权限
chmod u-w filename? #给某文件删除写的权限
chmod u+x filename? #给某文件增可执行的权限
chmod u-x filename? #给某文件删除可执行的权限
chmod u+rwx filename? #给某文件增加读写可执行的权限
chmod u=rwx filename? #给某文件设定读写可执行的权限
比如:chown user1 hello.txt?
#将hello.txt 文件拥有者修改为 user1, 前提user1 为系统中拥有的用户
chown :user1 hello.txt?
#将hello.txt 文件拥有者修改为 user1组, 前提user1 为系统中拥有的用户组
chown user1:user1 hello.txt?
#相当于执行了上面两条命令
chown user1:user1 dirname?
#修改目录的文件拥有者和用户组 需要加 -R参数
chgrp user1 hello.txt?
#将hello.txt 文件用户组修改为 user1
chgrp user1 dirname?
#将dirname 目录用户组修改为 user1,需要加 -R参数
权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限
示例:在随意某个目录下ls -l
第一列的内容的信息解释如下:
第一段(第1位)表示是目录还是文件,-表示是文件,d表示是目录;
注:
②r–可读,w–可写,x–可执行.
③每一段的三位顺序不可变,如果没有对应的权限,则使用-表示
案例:
-rwxrwxrwx
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
上述示例还可以使用数字表示:
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
df? df -h 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
补充:
关机命令
reboot? 重新启动操作系统
shutdown -h now 立刻关机,其中now相当于时间为0的状态
shutdown -h +10? 系统再过十分钟后自动关机
总结
Linux命令
? 目录操作
? ? ? cd usr/? ? ? ? ? ? ? ? ? ? ? ? ? ? 切换到该目录下usr目录
? ? ? cd ..? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 切换到上一层目录
? ? ? cd /? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 切换到系统根目录
? ? ? mkdir 目录名称? ? ? ? ? ? ? 创建目录
? ? ? ls? ? ? 目录名称? ? ? ? ? ? ? ? 查询该目录下所有的目录和文件
? ? ? ls [-a]? 目录名称? ? ? ? ? ? ? 查询该目录下所有的目录和文件,包含隐藏文件
? ? ? ls [-l]? 目录名称? ? ? ? ? ? ? 查询该目录下所有的目录和文件的详细信息
? ? ? find / -name 目录名称? ? 查找/root下的目录(文件)
? ? ? mv 目录名称 新目录名称? 修改目录名称
? ? ? mv 目录名称 目录的新位置? ? ? 剪切
? ? ? cp -r 目录名称 目录的目标位置? 拷贝
? ? ? rm -rf? 目录? ? ? ? ? ? ? ? ? 强制删除目录
? 文件操作
? ? ? touch 文件名称? ? ? ? ? ? 创建空文件
? ? ? cat/more/less/tail 文件? 查看文件内容
? ? ? tail -f 文件? ? ? ? ? ? ? ? ? 动态查看/实时查看文件(日志)
? ? ? grep 要搜索的字符串 要搜索的文件? ? ? ? ? ? ? ? 关键字搜索
? ? ? vi/vim? 文件? ? ? ? ? ? ? ? 修改文件内容
? ? ? rm -rf 文件? ? ? ? ? ? ? ? 强制删除文件
? 文件的打包
? ? ? tar -zcvf 文件名.tar? 要打包的文件
? 文件的解压?
? ? ? tar -xvf 文件名.tar
? 扩充:将文件解压到固定位置
? ? ? tar -xvf 文件名.tar -C 指定解压的位置
? 查询当前所在位置
? ? ? pwd? ? ?
? 查看进程
? ? ? ps -ef | grep 进程名称(tomcat/mysql)
? 杀死进程
? 查看端口号
? 查看服务器ip
? ? ? ifconfig
? 查看网络是否能正常使用
? ? ? ping 外网地址? ? ? ? ? ? 查看是否能访问外网
? ? ? ping 内网ip? ? ? ? ? ? ? ? 查看是否能访问内网
? 权限命令
? 查看cpu
? ? ? top
? 查看磁盘信息
? ? ? df -h
? 查看内存信息
? ? ? free? ?
? 关机命令
? ? ? shutdown -h now? 立刻关机,其中now相当于时间为0的状态
? ? ? shutdown -h +10? ? 系统再过十分钟后自动关机
? 重新启动
? ? ? reboot? ? 重新启动操作系统
+++-