Linux权限360度赤裸裸华丽丽大曝光连载之三:查缺补漏

阅读: 评论:0

Linux权限360度赤裸裸华丽丽大曝光连载之三:查缺补漏

Linux权限360度赤裸裸华丽丽大曝光连载之三:查缺补漏

文章来源:.php?uid=20168535&do=blog&id=334318
一、 权限之粘着位   Linux 中有一个存放临时文件的目录 /tmp (类似于 Windows 中的 temp 目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对 /tmp 目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,高洛峰在 /tmp 目录下创建了一个文件,张沫看着不爽就可以删掉,这如何控制? 其实,这种情况永远都不会发生,因为 /tmp 目录有一个特殊的权限标记: ls -ld /tmp drwxrwxrwt 5 root root 4096 May 24 13:55 /tmp 瞧见那个 rwx 权限最后的“ t ”了没,那个神奇的“ t ”就是粘着位 t (有的资料中文也称为粘滞位),是 Linux 特殊权限中的第三个(另外两个是 SetUIDSetGID ),定义为:权限为 777 的目录设置粘着位 t 以后,具有写权限每个用户都可以在目录下创建文件,不同的是每个用户只能删除自己是所有者的文件,也就是说只能删除自己创建的文件。 读者可以做一下试验,重复一下系列文章一 “从 ls 命令开始”中的案例一操作(给目录 /test 授予 777 权限用一个普通用户登录删除另一个普通用户创建的文件),不过这次创建的目录 /test 多授予它一个粘着位权限: chmod o+t /test   # chmod 1777 /test 此时普通用户尝试删除其他用户的文件时,会给出提示“ Operation not permitted ”(中文翻译:你丫没事吧,瞎得瑟啥,哥的文件你删不了)。   二、 文件系统权限   每个操作系统都要有一种组织管理数据的方式,我们可以理解为就是文件系统,比如 WindowsNTFSFAT LinuxEXT ,而在 Linux 加载分区时可以针对文件系统进行权限设定。 配置文件 /etc/fstab 保存了 Linux 启动时自动加载的分区信息, /etc/fstab 文件中第四项定义了加载时的设置,默认为 defaults ,包括 rwsuiddevexecautonouserasync ,如果想改变整个分区的限定,可以利用这些选项。本文举两例说明,证明基于文件系统的权限那是相当霸道。   案例一:只读分区   默认加载分区是可读写 rw 的,但是如果特殊应用希望分区加载后是只读的,可以做一下设置: vi /etc/fstab   # 编辑 /etc/fstab 文件在 defaults 后加入 ro 选项(逗号分隔) LABEL=/soft    /soft    ext3    defaults,ro    1 2 mount -o remount /soft   # 重新加载 /soft 分区,使设置生效 如果你不嫌麻烦也可以重启系统,设置同样会生效。 此时整个 /soft 分区都是只读的,用 root 登录后执行: touch /soft/testfile touch: cannot touch `testfile': Read-only file system 会提示 /soft 分区是只读的,即便牛 X 到是 root 也不可以创建文件,这是凌驾于 rwx 权限之上的文件系统权限,相当的牛 A 与牛 C 之间。像本例是笔者公司的软件共享目录,一般半个月才更新一次软件,平时不想任何人增加或删除(包括不希望 root 用户误删除),所以设置为 ro ,更新软件时,可以临时更改会 rw 来设置: mount -o remount,rw /soft 在命令行上也可以设置分区权限,但是只是当前会话有效,而写入 /etc/fstab 文件后则会一直有效。   案例二:安全分区   数据存储的分区,如用做备份的分区,我们可以增加下安全设置选项: vi /etc/fstab   # 编辑 /etc/fstab 文件在 defaults 后加入 noexec 选项 LABEL=/backup    /backup    ext3    defaults,noexec    1 2 mount -o remount /backup   # 重新加载 /backup 分区 , 使设置生效 此时做个试验,我们使用普通用户拷贝一个命令文件 pwd/backup 目录下 cp /bin/pwd /backup /backup/pwd -bash: pwd: Permission denied ls -l pwd -rwxr-xr-x 1 liming liming 93560 Sep 25 10:13 pwd 命令拷贝到 /backup 下虽然具有可执行权限,但是也无法执行,在 /backup 分区下,任何可执行文件都将不能执行,这么做的意义在哪里?如果***程序、***、病毒不能够执行,那么就相当于没有意义。   其他选项不做更多演示,这里只抛砖引玉,其他选项设置读者可 man mount 查看,查看 -o 选项中的详细介绍,更多设置读者可自行尝试,所谓授之以鱼不如授之以渔读万卷书不如行×××路万恶淫为首窗前明月光啊。   三、 权限之 chattr   chatrr 只有超人 root 用户可以使用,用来修改文件的权限属性,建立凌驾于 rwx 基础权限之上的授权。 在此介绍两个常用选项: 只允许在文件后追加数据,如果目录具有此属性,系统将只允许在目录下建立和修 改文件,而不允许删除任何文件。 不允许对文件进行任何修改,如果目录具有此属性,那么只能修改目录下的文件, 不允许建立和删除文件。   案例一:无法删除和更改的文件   如果要建立一个公共访问的目录,大家都可以删除和创建、拷贝文件,但是有一个基本的使用此目录的规则,要建立一个说明文件 README ,这个文件不允许大家删除和修改,则可以如下设置: chattr +i README 这时, README 文件所在目录所有用户都有读写权限,但是任何用户都无法删除 README 文件(包括 root ),尝试删除会提示: rm README rm: remove write-protected regular empty file `README'? y rm: cannot remove `README': Operation not permitted 同样也不可以改变文件的内容,可以查看到 README 文件被增加了一个不可更改的属性: lsattr README ----i-------- README 此时, README 变成了一个非常牛 XX 的文件,即便你是 SuperUser 也无法删除和修改它,想对它干嘛都不成。 若要更改或删除文件也必须先去掉 i 属性才可以: chattr -i README   案例二:备份目录应用   假设有这样一种应用,我们每天自动化实现把上海服务器的日志通过 scprsync 远程备份到北京的备份服务器上,备份服务器的存储目录可设置为只可创建文件而不可删除。 chattr +a /backup/log 设置后,可在本机测试: cp /var/log/messages /backup/log   # 可以拷贝文件 rm /backup/log/messages   # 删除文件则被禁止 rm: remove regular file `messages'? y rm: cannot remove `messages': Operation not permitted   chattr 命令不宜对目录 //dev/tmp/var 等设置,严重者甚至容易导致系统无法启动,比如根目录如果设置了 i 属性,谨慎设置,看过此文试验后造成系统问题者,笔者概不负责……   权限之 ACL   Linux 中默认的权限管理比较菜,难以实现复杂的权限控制,如针对一个文件设置几个用户或用户组具有不同权限,这就需要依靠 ACLAccess Control List )访问控制列表实现,可以针对任意指定的用户 / 用户组分配权限。 开启分区的 ACL 功能 ,需要在 /etc/fstab 文件中加入 acl 选项,如: LABEL=/backup            /backup          ext3        defaults,acl            1 2 然后重新加载分区即可生效: mount -o remount /backup 如果想临时生效可不修改 /etc/fstab 文件,直接执行命令“ mount -o remount,acl /backup ”即可。   案例:设定复杂权限控制目录   设定目录 /backup/log 用户 zhangsan 有读写执行权限,用户 lisi 有读权限,用户 wangwu 有读写权限,而用户组 bakgroup 有读和执行权限,则可做如下设置: setfacl -m u:zhangsan:rwx,u:lisi:r,u:wangwu:rw,g:bakgroup:rx /backup/log setfacl -m 可以设置文件 / 目录的访问权限,至于权限设定的写法包括三个组成部分,第一部分列出设定对象是用户 u 或用户组 g ;第二部分指定用户名或用户组名;第三部分指定访问权限 rwx ,设定多组权限中间用逗号分隔。如“ u:lisi:r ”表示设定用户 lisi 为只读权限。 查看目录属性: ls -ld /backup/log drwxrwxr-x+ 2 root root 4096 May 25 07:16 /backup/log 会发现文件权限位后增加了一个加号,这说明 /backup/log 设置了 ACL ,同时可以查看其详细的权限设置: getfacl /backup/log # file: backup/log # owner: root # group: root user::rwx user:zhangsan:rwx user:lisi:r-- user:wangwu:rw- group::r-x group:bakgroup:r-x mask::rwx other::r-x 这样即可实现 Linux 中文件 / 目录的复杂权限控制,要注意的是 ACL 优先于基本权限设置,也就是说如果默认所属组为 rx 权限,但是 ACL 若指定了所属组中某个成员为 rwx 权限,则此成员拥有 rwx 权限。   权限之管理员授权   管理员做为特权用户,很容易误操作造成不必要的损失,再者都是 root 管理也怪累的,管理员也是人,也需要留点时间去约约会看看电影装装傻发发呆啥的不是……所以健康的管理方法是 Linux 服务架构好后,可授权普通用户协助完成日常管理,现在最流行的工具是 Sudo ,几乎所有 Linux 都已缺省安装。 Sudo 使用简单,管理员 root 使用 visudo 命令即可编辑其配置文件 /etc/sudoers 进行授权,具体格式为: 用户名 / 用户组名          主机地址 = 授权命令(绝对路径) 如,授权用户 zhaoliu 可以关机和重启,则添加如下行: zhaoliu           Helen=/sbin/shutdown,/sbin/reboot 指定组名用百分号标记,如 %admgroup ,多个授权命令之间用逗号分隔。 用户 zhaoliu 可以使用 sudo 查看授权的命令列表: sudo -l Password: User zhaoliu may run the following commands on this host:     (root) /sbin/shutdown     (root) /sbin/reboot 提示输入密码为 zhaoliu 的密码,验证其是否为管理员通过 sudo 授权的用户,执行命令: sudo /sbin/shutdown -h now zhaoliu 即可关机,注意命令写绝对路径,或者把 /sbin 路径导入到用户缺省路径中,否则无法执行。   案例:授权用户管理Apache       授权一个用户管理你的 Web 服务器,不用自己插手是不是很爽,以后修改设置更新网页什么都不用管,一定 Happy 死了, LOOK —— 首先要分析授权用户管理 Apache 至少要实现哪些基本授权: 1 、可以使用 Apache 管理脚本 2 、可以修改 Apache 配置文件 3 、可以更新网页内容 假设 Aapche 管理脚本为 /etc/rc.d/init.d/httpd ,满足条件一,用 visudo 进行授权: zhaoliu           Helen=/etc/rc.d/init.d/httpd reload,/etc/rc.d/init.d/httpd configtest 授权用户 zhaoliu 可以通过 Apache 管理脚本重新读取配置文件让更改的设置生效( reload )和可以检测 Apache 配置文件语法错误( configtest ),但不允许其执行关闭( stop )、重启( restart )等操作。 满足条件二,同样使用 visudo 授权: zhaoliu           Helen=/bin/vi /etc/httpd/f 授权用户可以 root 身份使用 vi 编辑 Apache 配置文件。 以上两种 sudo 的设置,要特别注意,很多朋友使用 sudo 会犯两个错误:第一,授权命令没有细化到选项和参数;第二,认为只能授权管理员执行的命令。 条件三则比较简单,假设网页存放目录为 /var/www/html ,则只需要授权 zhaoliu 对此目录具有写权限或者索性更改目录所有者为 zhaoliu 即可,如果需要还可以设置 zhaoliu 可以通过 FTP 等文件共享服务更新网页。   至此,本系列权限管理文章基本涵盖 Linux 的所有权限管理方式,虽不细致但足以让读者对其有一个整体的了解。最后请切记系统安全的基本原则:授权用户最小的权限。 蜘蛛侠说“能力越大责任越大”, Linux 管理员说“能力越大出错几率越大”,阿门。

转载于:

本文发布于:2024-01-31 13:22:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667857628838.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:之三   大曝光   权限   Linux   华丽丽
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23