Linux中的权限及一些重要目录件(day01)

Linux权限管理:
1.文件访问者的类:

文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—-Group
其他用户:o—-Other

2.文件访问基本权限:
i:读权限(r)
ii:写权限:(w)
iii:执行权限(x)
3.文件访问权限的相关设置方法:
a)chmod:
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
-R:递归修目录文件的权限

用户标识符:a为所有用户。
=:向权限范围赋予权限带好所表示的权限。
如:chmod a=x /home/abc.txt

b).chown:
功能:修改文件的拥有者。
格式:chown [参数] 用户名 文件名
c).chgrp:
功能:修改文件或目录的所属组
格式:chgrp [参数]用户组名 文件名
d).umask
功能:查看或修改文件掩码
格式:umask 权限值
新建文件夹默认权限=0666–权限掩码
新建目录默认权限=0777–权限掩码

file指令
功能说明:辨识文件类型
语法:file [选项] 文件或目录
-z:去解读压缩文件的内容
-c:详细显示指令执行过程,便于排错或分析程序执行的情形。

用sudo分配权限。
sudo可以针对单个命令授予临时权限,sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。sudo也可以用来以其他用户身份执行命令。此外,sudo可以记录用户执行的命令,以及失败的特权获取。
-u:以指定用户身份运行命令。
sudo -u 用户名 命令。
如:sudo -u dutian ls 即为用dutian用户来执行ls命令。

粘滞位:chmod+t
当一个目录被设置粘滞位,则该目录下的文件只能由:
1.超级管理员删除
2.该目录的所有者删除
3.该文件的所有者删除。

下面来看几个问题:

  1. 进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限.
  2. 查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
  3. 查找资料, 了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password
  4. 查找资料, 学习如何使用命令安装gcc/g++, gdb, vim

常见的一些属性:
(r)读权限、(w)写权限、 (x)执行权(或对目录的访问权),(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性,(s)同时设定用户或组ID,(t)粘滞位(保存程序的文本到交换设备上),(u)目标文件属主,(g)目标文件属主所在的组,(o)其他用户。
## 1.进入目录需要哪些权限, 在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限. ##
目录中的权限有读(r)、写(w)、和执行权限(x)。
如下所示:
Linux中的权限及一些重要目录件(day01)
其中为目录文件的为:
Linux中的权限及一些重要目录件(day01)
Linux常见的文件类型有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件等,其中:
普通文件的文件权限第一个字符为“-”
目录文件的文件权限第一个字符为“d”
字符设备文件的文件权限第一个字符为“c”;
块设备文件的文件权限第一个字符为“b”
符号链接文件的文件权限第一个字符为“s”
文件访问权限的相关设置:
目前先来介绍chmod:
功能:设置文件的访问权限
格式:chmod[参数]权限 文件名
-R 改变目录及目录下的内容的访问权限.
(1)、我们来看看对test目录去掉可执行权限的进行访问。
Linux中的权限及一些重要目录件(day01)
可以看出如果将目录的可执行权限去掉,则用cd无法进入找到test目录。
(2)、我们来看看对Music目录去掉可读权限的进行访问。
Linux中的权限及一些重要目录件(day01)
可以看出如果将目录的可读权限去掉,则用ls无法读出Music目录。
(3)、我们来看看对Music目录去掉可写权限的进行访问。
Linux中的权限及一些重要目录件(day01)
可以看出如果将目录的可写权限去掉,无法进行ls与touch操作

删除命令rm 与rmdir
rm——-移除文件或目录(非空目录
rmdir——-删除空目录
touch命令——修改文件的时间。
ls命令——–ls [选项] [文件名…],
ls -a ———–列出所有文件,包括以 “.” 开头的隐含文件。
ls -l ————以单列格式输出文件模式( file mode ),文件的链接数,所有者名,组名,文件大小(以字节为单位),时间信息,及文件名。常写成“ll”。
ls - al=ls -a 与ll。
mv———移动或改名文件。
## 2.查找资料, 了解以下Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp ##
1./proc目录:Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。<font color=”Blue”>虚拟文件系统,此目录是kernel加载后,在内存里面建立的一个虚拟目录,有专属的文件系统,主要提供系统一些实时的信息,此目录下不能建立和删除文件;(某些文件可以修改).
2. /proc/sys目录:存放系统核心所使用的一些变量,根据不同性质的文件而存放在不同的子目录中,可以通过/etc/sysctl.conf文件设置和更改其默认值;变量时实时的变更,有很多设置很象是开关,设置后马上生效;Sys目录是可写的,可以通过它来访问或修改内核的参数.如下图所示。
Linux中的权限及一些重要目录件(day01)
3. /SElinux:DAC和CS的概念,它们是linux系统本身的安全机制。
DAC:自主访问控制
每一个用户为了能够实现和其他用户共享文件,在使用ACL之前,只能通过改变这个文件其他用户的权限,但是这中方法给系统安全带来了无穷的隐患。
CS:CS(安全上下文):取决于发起用户的权限和文本本身的权限
CS+DAC给系统的安全机制带来了漏洞,事想apache用户可以查看/etc/passwd,如果它有写权限,就可能被利用进而就修改passwd文件,危害系统安全。
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。.
4./bin 目录:又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、dmesg、kill、login、rm、ping、chomd、bash、cat、echo、ls、 mail、vi等。
Linux中的权限及一些重要目录件(day01)
5./usr/lib目录是系统级的,usr是unix system resource缩写存放必要的运行库,主要是编程语言的库。典型的 Linux 操作系统中包含了C、C++和 Fortran 的库文件。用这些语言开发的应用程序可以使用这些编程语言库文件。这使软件开发者能够利用那些预先写好并通过测试的函数。库文件包含了标准的C库/lib/libc.so.,数学库libm.so.,共享的动态链接库/lib/ld/so以及目录/bin和/sbin下用到的其他共享库。/lib/modules目录存放系统的核心模块,某些可被模块化的部分并不需要在编译系统核心时放入核心本体,避免本体过于庞大而导致效率降低。中含有更多用于用户程序的库文件。
6./lib目录::是内核级的,存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.
7./usr/local目录::是用户级的的,一般是用户自己安装软件的目录,这个目录就相当于在windows下的programefiles这个目录。 用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
8./var目录:variable(或不断改变的)的缩写,可变的,一般用来存放那些不断扩充的东西,为了保持usr的相对稳定,那些经常被修改的目录可以放在这个目录下,如/var/log日志文件。

## 3.了解以下重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password ##

  1. du命令:用来报告磁盘空间的使用情况。
    du -a:显示所有文件的统计。
    du -x :只输出指定参数的实际使用空间,而不包括其下的子目录。
    du -s :只统计指定参数的在同一设备上所使用的空间。
  2. df命令:报告文件系统磁盘空间的使用情况,显示目前在Linux系统上的文件系统的磁盘使用情况统计。默认情况下将以1KB为单位进行显示。格式:df [选项] [文件]

  3. top命令:top命令是Linux系常用的性能分析工具,能够显示系统中各个进程资源占用的情况(类似于windows中任务管理器)显示系统中各个进程资源占用的情况等信息。

  4. free命令:显示系统中已用和未用的内存空间总和. 即为系统中 已用和未用的 物理内存和交换内存, 共享内存和内核使用的 缓冲区的 总和.
    Linux中的权限及一些重要目录件(day01)
  5. pstack命令:显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。它只有一个参数就是pid。
  6. su命令:运行替换用户和组标识的shell ,修改有效用户标识和组标识为USER的。从普通用户切换至超级用户时使用该命令 su root,从超级用户切换至普通用户,使用命令su user。
  7. sudo(sudo -, sudo -s)命令:用来以其他身份来执行命令,预设的身份为root,用户使用sudo时,必须要先输入密码,然后有五分钟有效期,超过期限必须重新输入密码
    Linux中的权限及一些重要目录件(day01)
    Linux中的权限及一些重要目录件(day01)
  8. adduser命令:用于在Linux中创建新的系统用户,useradd可用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。。帐号建好之后,再用passwd设定帐号的密码,可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
    Linux中的权限及一些重要目录件(day01)

    9.passwd命令:Passwd 是个文本文件, 它包含了一个系统帐户列表, 给出每个帐户一些有用的信息,比如用户 ID,组 ID, 家目录, shell,等. 通常它也包含了每个用户经过加密的密码. 它通常应该是可读的(许多命令,工具程序,象 ls(1) 用它做用户 Id 到用户名称的映射),但是只允许超级用户有写方式权限. 密码文件)里每行一条记录,并且每行有这样的格式: account:password:UID:GID:GECOS:directory:shell (帐号:密码:用户ID:组ID:一般的信息:目录:shell) 。

    ## 4. 查找资料, 学习如何使用命令安装gcc/g++, gdb, vim ##
    Centos中使用yum来配置gcc和g++,若要安装gcc,则在命令行中输入:yum -y install gcc,按回车键就能够进行gcc的安装,若要安装g++,则需要在命令行中输入:yum -y install gcc-c++,就能够进行g++的安装。
    下图为安装gcc:
    Linux中的权限及一些重要目录件(day01)