my blog my blog

Tag: Linux-note
Linux 很有用

 

先讲述上次Linux-note中没有涉及的磁盘配额的概念和基础操作,然后斑驳要稍微跟大家说一下成为小黑客必须知道的几个小知识点哦,Linux真的很有用哦~

 

磁盘配额

限制普通用户使用的磁盘空间和创建文件的个数,不至于因为个别人的浪费影响所有人的使用。像是博客空间、数据空间等等

 

只有ext2以上的文件系统被支持,并需要quota软件包的支持( rpm -qa | grep quota||sudo apt-get install quota)

mount -o usrquota[, grpquota] /dev/somewhere /mnt/SW
用于激活内核对配额的支持

quotacheck [option]

-c 创建
-v 显示详细信息
-u 用户 -g 组
-a 全部,不使用这个选项就需要在后面指定挂载点

quotaon -a 全部激活,或者指定挂载点
edquota -u UserName [-t(用来修改以后添加的限制天数)]
为个别用户编写磁盘配额  block单位是KB; inode指文件个数。超过软限制会有七天强制恢复期
repquota -a 给root来查看所有用户的配额情况
quotaoff -a或者挂载点,用来取消配额

学点好玩点的东西吧

/etc/fstab 用来添加启动挂载点,最后两个分别是类型和自检
      rw,usrquota,grpquota, 0 0 (是否自检及自检顺序)
dd if=/dev/zero of=file1 bs=1k count=1024 (用户磁盘对拷,指定输入和输出设备,单个块大小,次数)
du -shk file1 来显示file1 这个文件的具体大小

学习首先都是要了解一个东西的前因后果,对于一个落后的东西,花了很多时间搞它未必会有价值
历史方面的东西就不在废话了
那几个例子来看看

在管理Linux服务器的最好地方就是自动化做所有的事情,比如脚本

/bin/date > mail.cron
echo "online users:" >> mail.cron
/usr/bin/who | grep -v root >> mail.cron
echo "memory information" >> mail.cron
/usr/bin/free -m >> mail.cron
echo "partition information" >> mail.cron
/bin/dh -h >> mail.cron

 

等等,使用 sh ScriptFileName运行即可
而如果追加内容

/bin/mail -s Morning.info < mail.cron
/bin/rm mail.cron

 

之前还可以使用 crontab -e 来编辑周期计划任务
添加记录为 0 9 * * 1-5 sh ScrptFileName 就可以了

之前至少需要 /etc/init.d/sendmail start 来支持发邮件
这样子的网管应该就很爽了吧

对于注释符的问题
.vimrc 里面使用 "
途径 which command -> rpm -qf path -> rpm -ql packages
rpm -qa | grep command -> example 呵呵
如果使用 man的话,注意一下FILE字段,里面也有相关的介绍哦

权限的问题

普通用户可删除777目录下面没有写权限的文件
权限     文件                         目录
r          查看文件内容         列出目录
w        修改文件内容          可创建、删除文件
x           可执行文件           可进入目录
普通用户的代理写权限

groudadd webadmin
gpasswd -a UserName webadmin
grep webadmin /etc/group

chgrp webadmin /path
chmod g+w /path

缺省的文件为啥没有可执行权限,估计我就不用废话了吧

pwunconv
grep root /etc/passwd /etc/shadow
 

这样子在shadow里面就没有关于root的信息了
当正常添加用户的时候,会自动执行pwconv
这个跟批量添加多用户有什么联系呢

有没有想过普通用户可以使用passwd命令么
可执行文件的特殊权限: SetUID,如果注意一下umask是四位的,高位就是s
普通用户执行这个命令的时候,将以这个命令的所有者身份去执行
举个例子,让touch有s权限,使用普通用户touch文件之后,嘿嘿,看看文件所属主~如果是黑客进入你公司的服务器,他给vi一个s权限,后果如何你自己想吧~想搞点小破坏的话/etc/inittab里面把默认数修改成6或者0,呵呵,别说我很邪恶哦;再比如是/etc/passwd,把你的小用户的UID的修改成0,你就是超级管理员喽~别太坏哦,因为内核只认识数字,不认识字母
再如 kill 有了u+s, 没事就干掉apache吓唬管理员,你想,那还得了

粘着位,t
为了777的公共文件区分不同用户的权限,比如/tmp
删除管理员正在编辑的文档可不是很爽的事情
o+t 必须在 777 的目录上才会生效

fstab 里面的选项中 default,共七个不同的类型
在mount文件系统的时候,也可以添加一些选项
ro read only file system
noexec none of executive, design for backup partation
mount -o remount[,ro] /mntpoin
t

chattr +i FileName 连管理员也搞不了的东东
lsattr FileName
来查看这个文件的权限
chattr +a FileName
只能追加


visudo
授予普通用户有管理员权限操作 追加
$UserName || %GroupName = /path of command

使用的时候 sudo /path of command 就可以了
如果感觉每次输入路径比较麻烦可以使用 PATH=$PATH: /path
想看看已经授权的命令么 sudo -l
不要出现只授权 /bin/vi, 这样子跟SetUID没啥区别了,而且其危险程度斑驳就说明了
应该是 /bin/vi /path of the very file

案例,给普通用户管理Apache,当然,直接设置文件的权限的方法很简单,在这里只是举个使用sudo的例子而已,而且这里的系统指代的是Red Hat系列的发行版,Ubuntu下不太一致哦
要使用的操作,启动关闭Apache、修改配置文件、对资源有写权限
现在确定一下资源文件路径 grep DocumentRoot ./httpd.conf
chown UserName /path of DocumentRoot

ACL(Access Control List) 负责权限分配管理实例
mount -o remount,acl /path
setfacl -m u:UserName:rwx -g:GroupName:rwx FileName
之后ll可以看出权限后面有了一个 +
getfacl FileName 来查看相信的权限设置