Linux系统记录1

(注:本人使用的发型版为Ubuntu,文中涉及的一些常用命令,即pwd,cd,mkdir…等不予解释,可以百度,也可以用man和help命令查看相关命令说明。)
关于文件管理
Linux文件系统采用带链接的树形目录结构,即只有一个根目录。当注册进入系统时,用户工作的当前目录就是主目录(所以你所看到的文件是主目录下的),主目录通常位于/home或/user目录下且与用户注册名相同(例如本人的:/home/lfr502)。主目录包含子目录,数据文件及注册环境的配置文件等。其中每个文件都是有所属的,即系统会为每个文件分配一个文件主,并赋予他和超级用户文件的控制权。
(1):关于文件的权限
Linux文件类型分为六类:
1. 普通文件(-)
2. 目录文件(d)
3. Socket文件(s)
4. 设备文件(分为块设备文件,用 b 表示;字符设备文件,用 c 表示。)
5. 管道文件(p)
6. 链接文件(l)

1.1普通文件与目录文件的权限的查询
Linux系统规定了4种不同类型的用户:
1, 文件主(owner)
2, 同组用户(group)
3, 可以访问系统的其他用户(other)
4, 超级用户(root),具有管理系统的特权
而关于文件的访问方式又分为:读(r),写(w),可执行或查询(x)。
要显示某目标列表在Linux下我们用ls(Linux系统区分大小写),类似winds下的dir。而普通文件的权限查看用ls -l
例:#ls -l myfile
-rwxr-x— 1 foo staff 7734 Apr 05 17:07 myfile

上例命令结果各字段含义:
文件类型与权限 链接数 文件主 文件主所属组 文件大小 建立或上次修改时间 文件名
而关于文件类型与权限字段的解释如下:
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - -
解释:第9位代表文件类型,6到8为文件所有者权限,3到5为同组用户权限,
0到2为其他用户权限。
上例白话文解释:
普通文件,创建者可读,写,执行。同组用户可读,可执行。其它用户仅可读。
该文件共一个硬连接,用户foo创建,该用户位于staff组,文件大小7734字节,最后
修改时间为4月5号,文件名myfile。

同理目录文件的查权命令ls -ld [指定文件名] 可查看目录文件权限。

1.2 普通文件与目录文件的权限修改
使用chmod (000~777) 指定文件名 来更改文件权限。(想下,我们自己把某些文件加权后,是不是就自己才能打开了呢。-_-)
当然我们也可以在目录文件创建时直接设置权限,
例:#touch -m=777 testDemo (注意:设置权限时用三位的八进制来表示,所以范围是000~777,超过范围执行会报错。)

1.3 改变文件的文件主和用户组
除了改变文件权限外,我们还可以改变文件的文件主和用户组,常用chown [参数] 用户或组 文件名
(注:在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。若是将用户指定到其它组中,这被指定到的那个组成为扩展组。而该命令是向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。)
例:#chown -R liu /home/mengpc
解释:将目录/home/mengpc及其下的所有文件,子目录的文件主改成liu。
(补充:chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录文件进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。)

(二)文件的特殊权限位:SUID位,SGID位,Sticky位与umask掩码
在复杂多变的生产环境中,单纯设置文件的rwx权限无法满足我们对安全和灵活性的需求,因此便有了SUID、SGID与Sticky的特殊权限位。这是一种对文件权限进行设置的特殊功能,可以与一般权限同时使用,以弥补一般权限不能实现的功能。
1. SUID: 文件的执行进程将具有文件所有者(Owner)的权限; 打比方说你需要钱买衣服,然后你爸爸丢了张黑卡给你去买的过程就是如此,你需要用钱所以把卡给你用了,但是卡还是你爸爸的。
2. SGID:文件的执行过程将具有文件所属组(Group)的权限;除了让执行者临时拥有属组的权限外,还具有在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)的功能。
3. Sticky(粘贴位):被设置了粘贴位的目录里面的文件,只有文件的拥有者才能删除。如果不设置,其它用户如果对这个目录有写入权限,就可以删除其用户文件。打比方说,我生气了想砸东西,但是你只能砸你拥有主权的东西,换而言之就是你不能咋别人的东西,同样别人也不能咋你的东西。
(SUID和SGID位是程序在执行过程中时起作用,故而它们的设置只对普通文件和目录文件有意义,对其他类型的文件无意义。它们的设置体现在用户权限和用户同组权限位上。)

2.1 设置SUID和SGID位的意义
UNIX的内核是根据进程的运行用户有效ID(user id(所属主ID),group id(所属主的组ID))来确定进程对资源的访问权限。如过一个进程没有设置SUID或SGID位,它的有效user id=当前执行该文件的用户ID,有效group id=当前执行该文件的用户所属组ID;而一个程序设置了SUID,则有效user id和有效group id变成被运行的程序的所有者的用户id和所属组id。
用户可以用id命令来查到自己的或其他用户的user id和group id。
例:查看当前用户的id
#id
uid=1000(lfr502) gid=1000(lfr502) 组=1000(lfr502),4(admin),24(cdrom)……………
(一般而言系统管理员的uid为0,而普通用户的uid从1000开始!)
所以依个人的理解:SUID和SGID位的设置是为了系统运行进程访问资源时确定访问者权限来进行有效的访问控制。

2.2 设置SUID,SGID以及Sticky位
前面提到过默认未设置SUID和SGID位时,进程的SUID和SGID位默认为执行该文件的用户ID和该用户所属组的组ID,所以这里的命令是在文件执行时把进程的属主或组ID置为该文件的文件属主。
给文件加上和去掉SUID和SUID的命令如下:
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
chmod g+s filename 设置SGID位
chmod g-s filename 去掉SGID设置
chmod o+t filename 设置sticky位

2.3 umask掩码
Umask是指新创建的文件和目录应该关闭的权限位的位掩码,umask只影响文件的权限位(rwx),不能改变修饰位(suid、sgid、sticky)和文件类型。。对于文件来说,系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限,所以各个数字的最大值分别是6。而目录则允许设置执行权限,这样针对目录来说,umask中各个数字最大可以到7。所以对于目录来说最大权限为777,而文件的最大权限为 666。

水平有限,文笔也差,博文目的也仅为巩固课堂所学,所以文中有些地方也没能很好的说清或者说错。望高手得见可以多指点。欢迎提错,欢迎交流!
本文参考:
Liunx教程 第4版
Linux就该这么学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值