关于Debian的一些简记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Debian的一些简记相关的知识,希望对你有一定的参考价值。

参考技术A 通过capabilities可以不用setuid,让普通用户运行一个需要root权限才能运行的程序,而且不会用到他/她不需要的root权限。

比如 /bin/ping ,它需要使用raw-socket,这是需要root权限的。

传统意义下,需要使用 #chmod +s /bin/ping 将 /bin/ping 设置为setuid程序才行,但是现在我们可以 #setcap cap_net_raw+ep /bin/ping 即可,其中 cap_net_raw 对应raw-socket权限,ep是effective/permission权限。

若配合 pam_cap 与执行程序的 +ei 权限,可为单独某个用户设置某个程序是否可执行某些特权功能,将非常灵活。

由于root用户对所有文件都有rw权限,因此 chmod -w somefile 操作somefile后root仍然能改写此文件,但是可以通过 chattr +i somefile 将somefile设置为immutable(不可变),这样root也就无法改写此文件了。

ifconfig已经有十多年没有维护了(最近又有人要开始维护了...),而且对infiniband、输出信息的编码、CIDR格式的地址处理都有问题。

总地来说,ifconfig/arp/route/iptunnel需要使用ip命令代替,netstat可以使用ss代替,iwconfig使用iw代替。

sudo vim /etc/network/interfaces

实际上,也可以不用设置源码仓库地址与使用 yumdownloader ,直接 wget http://vault.centos.org/6.6/os/Source/SPackages/shadow-utils-4.1.4.2-19.el6.src.rpm 就可以了。

如果需要加上额外的功能,例如加上对审计的支持,可以:

其它的步骤类似。

使用modprobe载入内核模块:

接着就可以通过 modprobe my_mod 来载入 my_mod.ko 了,也可以通过 modinfo my_mod 来查询信息

将内核模块在init运行后载入,可以修改 /etc/modules 加入 my_mod 这一行即可

在initrd.img里面载入:

获取内核模块依赖的内核函数:

readelf -s abc.ko | awk '(NF == 8) if ($7 == "UND") print $8 '

现在的cgroups文件系统都是挂载到 /sys/fs/cgroup 目录下的。

在Debian下,缺省有 blkio 、 cpu,cpuacct 、 cpuset 、 devices 、 freezer 、 net_cls,net_prio 等,如果需要加上memory的cgroups,则需要修改 /etc/default/grub ,为 GRUB_CMDLINE_LINUX 与 GRUB_CMDLINE_LINUX_DEFAULT 加上 cgroup_enable=memory ,然后 sudo update-grub2 后,重启即可生效。

可以通过手工来控制,例如:

也可以通过 cgroup-tools 包提供的工具来使用,在启动程序的时候更方便些,下面是等效命令:

此外,可以通过 libcgroup ( cgroup-tools 自动安装)的 /etc/cgconfig.conf 定义控制组,通过 /etc/cgrules.conf 定义进程与用户所应属的控制组。

值得注意的是:

开发可以基于 libcgroup 开发,当然其实也都挺简单的。可以使用的工具还有 systemd.resource-control 与 cgmanager ,不过后者已经于2016.6被Canonical放弃了。对于用户控制,还可以使用 pam-cgroup 。

上述使用是基于cgroup v1的,v2的另有用法。

对于磁盘IO来说,可以使用 blkio 来限制进程的IO速度,主要可以通过 blkio.throttle.read_bps_device 与 blkio.throttle.write_bps_device 来限制。

假设 /dev/sda 的主设备号与从设备号分别是8和0(可以通过 ls -l /dev/sda 看到),则可以通过 echo "8:0 1048576" > /sys/fs/cgroup/blkio/myblkio/blkio.throttle.read_bps_device 将进程从 /dev/sda (含其下的各分区,如 /dev/sda1 等)设备读取数据的速率限制到1M bps。

除此之外,也可以通过配置文件来做,步骤如下:

以上是关于关于Debian的一些简记的主要内容,如果未能解决你的问题,请参考以下文章

关于debian的一些国赛资料服务配置

简记恢复误删的/etc/profile,以Debian为例

机试常见问题 关于平年闰年的判断问题

关于Debian的小结

关于debian 4.0命令行拨号上网问题?

puppet知识简记