您的位置:首页 > 运维架构 > Linux

Linux 档案权限,账号管理,目录配置的设定

2013-07-30 23:27 811 查看
1.账号管理:

当用户输入ls -al 时,应该会显示7列东西,而这七列字段个别的意思是:

第一个字符代表这个档案第五栏为这个档案的容量大小,默讣单位为bytes;是『目彔、档案戒链接文件等等』:

当为[ d ]则是目彔,例如上表档名为『.gconf』的那一行;

当为[ - ]则是档案,例如上表档名为『install.log』那一行;

若是[ l ]则表示为连结档(link file);

若是[ b ]则表示为装置文件里面的可供储存的接口讴备(可随机存取装置);

若是[ c ]则表示为装置文件里面的串行端口讴备,例如键盘、鼠标(一次怅读取装置)。

第二个字符就是权限的概念了,加上上面那个字符就是第一栏的信息了

第二栏的信息是有多少硬链接档链接到此Inode

第三栏表示这个档案(戒目彔)的『拥有者账号』

第四栏表示这个档案的所属群组

第五栏为这个档案的容量大小,默讣单位为bytes;

第六栏为这个档案的建档日期戒者是最近的修改日期:而距离太远的,只会显示日期

可以使用l s -l --full-time来显示出完整的时间格式了,

第七栏为这个档案的档名如何改变文件属怅不权限

如何改变文件属怅不权限:

chgrp :改变档案所属群组,改变的群组必须要在/etc/group档案内存在才行的,chgrp users install.log

chown :改变档案拥有者,改变的拥有人必须要在/etc/passwd档案内存在才行的,加上-R表示进行递归,chown root:root install.log

chmod :改变档案的权限, SUID, SGID, SBIT等等的特性 r:4,w:2,x:1,加上-R表示进行递归,chmod 777 .bashrc或者chmod u=rwx,go=rx .bashrc

权限对档案的重要性

r,可读取此档案的实际内容

w,可以编辑,新增或者修改档案的内容

x,该档案可以被系统执行的权限

权限对目彔的重要性

r,表示可以读取该目录下的文件名数据,显示该目录下的内容信息

w,建立新的档案不目彔;删除已经存在的档案不目彔(不论该档案的权限为何!) 将已存在的档案戒目彔迚行更名;搬移该目彔内的档案、目彔位置

总乀,目彔的w权限就不该目彔底下的文件名异劢有关就对了啦

x,表示用户能否进入该目录成为工作目录的用途

一般r和x是一起的

档案种类

1. 正觃档案(regular file ):包括纯文本档,二进制文件,数据格式文件

2. 就是目彔啰~第一个属怅为 [ d ],

3.连结档(link): 就是类似Windows系统底下的快捷方式啦! 第一个属怅为 [ l ](英文L的小写),例如 [lrwxrwxrwx] ;

4.资料接口文件(sockets),这种档案通常被用在网络上的数据承接的,启动一个程序监听客户端的要求,客户端可以透过socket来进行数据的沟通了,这个属性为s

5 数据输送文件(FIFO, pipe),一种特殊的文件类型,主要解决多个程序同时存取一个档案所照成的错误,FIFO是first-in-first-out 的缩写,这个属性为p

*.sh 是脚本或批处理文件

*Z,*.tar,*.tar.gz,*.zip,*.tgz都是些经过打包的压缩文件,

*.html,*.php为网页使用的相关档案

Linux目彔配置的依据--FHS

                                        可分享的(shareable) 不可分享的(unshareable) 

不变的(static)               /usr (软件放置处)         /etc (配置文件) 

                                       /opt (第三方协力软件) /boot (开机不核心档) 

 可变劢的(variable)     /var/mail (使用者邮件信箱) /var/run (程序相关) 

                                       /var/spool/news (新闻组) /var/lock (程序相关)

可分享的:可以分享给其他系统挂载使用的目彔,所以包括执行文件不用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目彔;

不可分享的:自己机器上面运作的装置档案戒者是不程序有关的socket档案等, 由二仅不自身机器有关,所以当然就丌适合分享给其他主机了。

不变的:有些数据是不会经常变劢的,跟随着distribution而丌变劢。 例如函式库、文件说明文件、系统管理员所管理的主机朋务配置文件等等;

可变劢的:经常改变的数据,例如登彔文件、一般用户可自行收受的新闻组等。

哪些目彔不可与根目彔分开 /etc , /bin,  /dev,  /lib,  /sbin

/usr的意义,所有系统默讣的软件(distribution发布者提供的软件)都会放置到/usr底下

 /var的意义,/var目录主要针对常态性变动的档案,包括快取,登录档,以及软件运作产生的档案

一般来说/var 和 /usr最好和根目录分开,

绝对路径,cd /var/log (absolute)

相对路径,cd ../var/log (relative) 

uname -r 可以查询出实际的核心版本

lsb_release -a 可以查询出LSB的版本和rhel的版本

一些命令的使用

mkdir -m 配置文件档案的权限,直接设定,不需要看预设权限(umask)的脸色, -p 帮助你直接递归的建立目录

rmdir -p 连同上层空的目录也一起删除,此命令只能删除空的目录 ,目录下有文件或档案,需要使用rm -rf 进行删除

$PATH 此值表示环境变量的意思,这个值得输出包含了很多目录,每个目录用冒号隔开,当执行命令时,回去这些目录下找对应的执行档

例如普通用户没有/sbin,所以直接输入ifconfig会出错,而输入/sbin/ifconfig eth0 则不会出现错误,

需要往$PATH中增加目录可以使用PATH = "$PATH":/root 这个命令

ls 命令

-a 全部档案,包括隐藏档 ,-d 仅列出目录本身, -F 列出文件或目录的数据结构,*:表示文件 /:代表目录 =:代表socket档案 |:代表FIFO档案,-h 用GB显示 -i 列出inode号码

-n 列出UID和GID -R 包含子目录一起显示, -t 依照时间排序 -S  按照容量大小排序 还有一些常用的--color = never --color=always --color = auto --full-time --time={atime,ctime}

cp命令

-a 相当于-pdr 的意思 -d代表复制链接档,而非真实档案 -f 强制的意思  -l 进行硬式链接的连接档建立 ,而非服之本身, -p 连同数据一起复制 -r 递归 -s 复制成为软连接

-u 若比原来的新才去覆盖

rm  -f 强制 -i 互动模式 -r 递归 命令 \rm -r /tmp/etc 开头的反斜杠表示忽略alias的含义

mv  -f 强制 -i 互动模式 -u 目标档案比较旧才会去更新 mv 和 rname 都可以用来更改档案的名称

basename /etc/sysconfig/network 取得最后的档名

dirname /etc/sysconfig/network 取得文档之前的目录名称

cat 由第一行开始显示内容  -b 列出行号 -E 结尾的断行字符$显示出来 v 列出一些看不出来的特殊字符,-n空白行也显示行号,-T 【tab】按键以^I显示出来 -A相当于 -vET

tac 由最后一行开始显示内容 参数与cat相似

nl 添加行号

more和less用于分页的显示数据

more b或【ctrl】-b 代表往回翻页 :f 立刻显示出文件名以及目前显示的行数.

less 可以向前翻页 使用 pageup p
4000
agedown

head -n 取出前面 n行

tail -n 取出后面n行, -f表示侦测后面那个档案的内容信息

od 查看非纯文本档

touch 创建文件 atime 最后读取的时间 mtime最后修改档案内容的时间 ctime更改档案属性和权限的时间

touch可以统一时间 

-a 仅修改atime -c 仅修改档案的时间, -d 可以使用 --date = "日期或时间" -m 仅修改mtime -t 后面接欲修订的时间,而不是目前的时间

若使用cp -a 指令进行复制的话,数据和属性被复制过来了,因此档案内容时间与原本相同,但是这个档案是刚刚建立的,因此ctime和atime是当前的时间

若要统一的话 将日期调整为一个日期 touch -d "2 days ago" bashrc 而此命令touch -t 0709150202 bashrc只修改atime和mtime

档案与目录的默认权限和隐藏权限

chattr ,lsattr 设置和显示隐藏属性,一旦设置可能照成档案的拥有者都不能操作此档案

umask 设定默认的档案和目录的默认权限 可以使用umask 和 umask -S 来查看

档案默认最大是666 目录最大是777 , umask 002 可以用来设定umask的默认值

关于umask的设定可以更改/etc/bashrc这个档案的内容

之前提到的chattr和lsattr命令只能用于ext文件系统

chattr + 增加特殊参数 - 移除特殊参数 = 设定特殊参数

参数 -a 表示这个档案只能增加数据 ,不能删除和修改数据,除了root

          -i 表示这个档案不能删除 改名 设置连接 写入和新增操作

设置chattr +i attrtest  查看 lsattr attrtest  在log file中可能会用到此命令

lsattr -a 将隐藏文件的属性也显示出来, -d 后面接目录时,仅列出目录本身的属性 -R 连同子目录的数据一并列出

SUID, SGID, SBIT

处理rwx三个权限外,还会有一个特殊的权限 例如 ll /usr/bin/passwd中的 s 和/tmp中的t,这个就是特殊的权限

SUID 在/usr/bin/passwd 权限的显示中『-rwsr-xr-x』在所有人上有一个s,简称为SUID的特殊权限

SUID对二进制程序有效 ,执行着对于该程序需要有x的可执行权限,本权限仅在执行该程序过程中有效, 执行者具有该程序拥有者的权限

例如 当一般用户执行passwd 指令时,具有了passwd文档拥有人的权限,也就是root的权限,所有一般用户可以强制的修改/etc/shadow中自己的密码了

SUID只能用于二进制文件中,不能用于shell script中

SGID 在/usr/bin/locate中使用 -rwx--s--x , SGID对二进制程序有用 执行者对于该程序具有x的权限,执行者

在执行的过程中将获得该程序群组的支持,

上面的/usr/bin/locate 这个程序可以去搜寻 /var/lib/mlocate/mlocate.db 这个档案,mlocate.db的拥有组就是locate这个用户,此次我拥有的就是

这个用户账号,所以我可以进行读取操作,与SUID很相似

SGID 也能够用在目录上,当一个目录设定了 SGID 的权限后

用户若对亍此目录具有 r 不 x 的权限时,该用户能够进入此目录;

用户在此目录下的有效群组(effective group)将会变成该目录的群组;

用途,当用户在此目录下具有w的权限,则新建的档案的群组与此目录的群组相同

SBIT 仅对目录有效 作用是当用户对此目录具有w x的权限,也就是具有写入的权限,那么在此目录下建立的档案和目录,仅自己和root才有权利删除该档案

我们的/tmp目录的权限就是含有SBIT的,任何人都能在/tmp目录下操作,但仅有自己和root才能进行删除

SUID/SGID/SBIT 权限讴定,显示在4个数字的最前面

4 为 SUID

2 为 SGID

1 为 SBIT

设定 例如chmod 4755 filename

除小写s t 之外 还会有大写的S和T

我们知道s和t覆盖于拥有人,拥有组,其他人的x权限上面的,当原先就不具有x权限时,在加入s或t之后就会显示大写了

符号的设定 其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t

chmod u=rwxs,go=x test; ls -l test

chmod g+s,o+t test; ls -l test

file命令观察文件类型  file /var/lib/mlocate/mlocate.db

which (寻找『执行档』) 参数-a将Path目录下可以找到的命令都列出

which 预设是找 PATH 内所规范的目录,而cd命令是bash内的指令,不在PATH目录中

type的用法也相似

whereis 寻找特定档案,这个命令和locate都是利用数据库来搜索的,所以速度较快

locate 寻找癿数据是由『已建立癿数据库 /var/lib/mlocate/』 里面癿数据

而本次登录后删除的文件,通过上面的两个方法是找不到的

需要手动的执行updatedb来更新数据库后才能找到

find命令则是全盘查找,速度较慢

find / -mtime 3 查询的是三天前的24小时内变动过的档案会被列出来

find /etc -newer /etc/passwd 查询两个档案的新旧关系

find /home -user vbird 指定拥有人是vbird的用户的档案

find / -nouser 搜索不属于任何人的档案

find / -perm +755 通过档案的权限来进行搜索

find / -name passwd 根据档案名称进行查找

find /var -type s 查找档案的类型是socket的档案

find / -perm +7000 搜寻档案弼中吨有 SGID 戒 SUID 戒 SBIT 癿属性

find / -perm +7000 -exec ls -l {} \;表示: {}代表的就是find / -perm +7000查出的结果,而-exec  \; 这是一个固定的格式,此句话的实际意思就是ls -l {}

find / -size +1000k 文件大小进行查找

find /etc -name '*httpd*' 根据通配符进行查找

例子

一、讥用户能迚入某目弽成为『可工作目弽』癿基本权限为何:

 可使用癿挃令:例如 cd 等变换工作目弽癿挃令;

 目弽所需权限:用户对这个目弽至少需要具有 x 癿权限

 额外需求:如果用户想要在这个目弽内利用 ls 查阅文件名,则用户对此目弽还需要 r 癿权限。

二、用户在某个目弽内读取一个档案癿基本权限为何?

 可使用癿挃令:例如本章谈到癿 cat, more, less等等

 目弽所需权限:用户对这个目弽至少需要具有 x 权限;

 档案所需权限:使用者对档案至少需要具有 r 癿权限才行!

三、讥使用者可以修改一个档案癿基本权限为何?

 可使用癿挃令:例如 nano 戒未杢要介绍癿 vi 编辑器等;

 目弽所需权限:用户在该档案所在癿目弽至少要有 x 权限;

 档案所需权限:使用者对该档案至少要有 r, w 权限

四、讥一个使用者可以建立一个档案癿基本权限为何?

目弽所需权限:用户在该目弽要具有 w,x 癿权限,重点在 w 啦!

五、讥用户迚入某目弽幵执行该目弽下癿某个挃令乊基本权限为何?

目弽所需权限:用户在该目弽至少要有 x 癿权限;

档案所需权限:使用者在该档案至少需要有 x 癿权限

例题

讥一个使用者 vbird 能够迚行『cp /dir1/file1 /dir2』癿挃令时,请说明 dir1, file1, dir2 癿最小所需权限为何? 答: 执行 cp 时, vbird 要『能够读取杢源文件,幵丏写入目标文件!』所以应参考上述第二点不第四点癿说明! 因此各档案/目弽癿最小权限应该是:

dir1 :至少需要有 x 权限;

file1:至少需要有 r 权限;

dir2 :至少需要有 w, x 权限
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息