Acl、Suid、Sgid、Sbit权限
setfacl -m u:li:rx /team 给用户设置对目录的acl权限。setfacl -m g:hr:rx /team 给组设置acl权限
setfacl -m m:twx /team 设置mask权限,acl权限与mask相与才生效。
getfacl:查看目录文件acl权限
setfacl -x u:li /team 删除用户li的acl权限。
setfacl -x g:hr /team 删除组hr的acl权限。
setfacl -b /team 删除文件的acl权限。/usr/bin/chmod.改chmod的权限。
Setfacl -m u:lisi:rx -R /project/ 递归设置文件acl权限
Setfacl -m d:u:lisi:rx /project/ 默认acl权限,
父目录设置默认acl权限,新建的子目录也继承其权限、旧文件需递归设置。
suid:1、可执行的二进制程序(命令)2、命令执行者对该程序拥有x权限、3、命令在执行该程序时获得该程序的属主身份(包括root)4、suid权限只在该程序执行过程中有效。
passwd命令拥有suid权限,所以普能修改自己的密码。
chmod 4775 ABC 。vim。修改、etc/passwd酷
Sgid:给目录设置gid,目录所属组下的用户创建文件继承所属组。用户在此目录下具有w权限。2000
Sbit:对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。1000
Chattr文件属性
查看:lsattr 选项 文件名 -a:显示所有文件和目录,-d:显示目录自身属性。
命令格式:chattr [+-=][选项] 文件或目录名。
-i: 针对设置i属性,则文件不允许进行删、改、添、修等操作。只能看。Root也不行。
针对目录设置i属性,只能修改目录下文件的数据,但不允许建立和删除文件。
-a:文件>只能在文件中增加数据,不允许删除和修改数据。
目录>只允许在目录中建立和修改文件,不允许删除。
提权:
sudo:、suid、vim /etc/sudoers下面添加一行 alice ALL=(ALL) NOPASSWD:ALL.
修改shell umask值
[root@youngfit ~]# vim /etc/profile
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
[root@youngfit ~]# source /etc/profile //立即在当前shell中生效
通过umask决定新建用户HOME目录的权限
[root@youngfit ~]# vim /etc/login.defs
UMASK 077
[root@youngfit ~]# useradd gougou
[root@youngfit ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月 11 19:50 /home/gougou/
[root@youngfit ~]# vim /etc/login.defs
UMASK 000
[root@youngfit ~]# useradd yangyang
[root@youngfit ~]# ll -d /home/yangyang/
shdrwxrwxrwx. 4 yangyang yangyang 4096 3月 11 19:53 /home/yangyang/
进程:
ps -ef |grep - 列出需要进程 ps -axo pid,ppid,nice,command|grep sleep自定义
[root@nba ~]# ps -ef |grep sleep
root 2850 2581 0 20:36 pts/1 00:00:00 sleep 60000
root 2917 2581 0 20:48 pts/1 00:00:00 grep --color=auto sleep
UID :程序被该 UID 所拥有(用户)
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间。
CMD :所下达的是什么指令
ps -aux - 显示进程信息,包括无终端的(x)和针对用户(u)的进程:
如USER, PID, %CPU, %MEM等
USER:运行进程的用户、PID:进程ID、%CPU: CPU占用率、%MEM: 内存占用率
VSZ:占用虚拟内存、RSS: 占用实际内存驻留内存、TTY: 进程运行的终端
a显示现行终端机下的所有程序,包括其他用户的程序。-e显示所有程序。-u以用户为主的格式来显示程序状况。-x显示所有程序,不以终端机来区分。-f 用ASCII字符显示树状结构,表达程序间的相互关系。-o 自定义格式
pstree:进程树、-p:显示pid、-u:显示进程的所属用户。
STAT: 进程状态 man ps (/STATE)
R 运行、S 可中断睡眠 Sleep
D 不可中断睡眠 (usually IO) 、T 停止的进程 、 Z 僵尸进程、X 死掉的进程 【了解 】
Ss s进程的领导者,父进程 、
S< <优先级较高的进程 、SN N优先级较低的进程、R+ +表示是前台的进程组 Sl 以线程的方式运行
START:进程的启动时间、TIME:进程占用CPU的总时间、
COMMAND: 进程文件,进程名
top:动态查看
top可以监视系统中不同的进程所使用的资源。它提供实时的系统状态信息。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。
-d 1 一秒刷新。默认3、
M:按内存的使用排序、P:按CPU使用排序 、N:以PID的大小排序、R:对排序进行反转
T:根据时间/累计时间进行排序。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有以下不同的值:
D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
kill
1:SIGHUP重新加载配置 PID不变、2:SIGINT键盘中断^C、3:SIGQUIT 键盘退出、9:SIGKILL 强制终止、15:SIGTERM终止(正常结束),缺省信号、18:SIGCONT 继续、19:SIGSTOP停止、20:SIGTSTP暂停^Z
pkill -u 用户名、pkill -t pts/1:停止用户进程,但并不踢出用户。
pkill -9 -t tty1、-t:踢出(w查看用户登录信息)
nice -n -5 sleep 6000 & (&后台运行)。
nice值:
nice值越低、优先级越高、最低-20.优先级最高20.优先级越高调用CPU越优先处理、使用top更改nice级别 、r 调整进程的优先级(Nice Level) (-20高) ---0--- (19低)
1:renice -5 -p 5200
#PID为5200的进程nice设为-5
2:top
#进入top后按“r”–>输入进程PID–>输入nice值
UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的nice值
jobs
查看后台运行程序、fg:前台、bg:后台(ctrl+z停止后、可用于开始后台启动)、
kill %2 杀死job号为2的进程。&:放在最后才是后台符。screen :yum -y install screen、//第一次、、、恢复、?screen -s install_httpd
I/O重定向
echo $$:当前进程pid、
ll /proc/$$/fd :文件描述符
输出重定向:
1>正确输出(覆盖)、2>错误输出、&>混合输出(正确、错误一起输出、)/dev/null(垃圾桶)、/dev、null被删除,恢复:1、手动创建:mknod -m 666 /dev/null c 1 3。
echo $? =0正确输出、=2错误输出。-ep=、ne不等于、gt大于、lt小于、ge大于等于、le小于等于。
输入重定向:
<=0<、mail -s “hello” kobe < /etc/hostname、-s:标题
/dev/zero:可以从这里源源不断拿数据,
dd if=/dev/zero of=/file1.txt bs=1M count=20 一次1M,拿20次。等价于dd </dev/zero >/file2.txt bs=1M count=20(输入重定向、输出重定向。)
[root@ICan ~]# at now +5 min //
[root@ICan ~]# at> useradd KD
[root@ICan ~]# at> <EOT> 在五分钟后创建KD用户。
等价于:at now +2 min <a.txt .(编辑好文件a.txt。)
利用重定向建立多行文件:手动cat >file1 <<EOF 、:遇见EOF即结束。
脚本创建:写文件vim::cat >file1 <<@:遇见@结束。bash 文件:执行、或chmod+x。
管道
ps aux --sort -%cpu |head -6|grep -v USER、过滤CPU最高的五个进程、--sort排序、-降序、-v:grep中反方向、
sort -t":" -k3 -n /a.txt -r、分隔,将第三列按字数升序、-r逆序 、-k指定列、
awk -F: ‘{print $2}’ /etc/passwd、uniq:去重、-c:去重并记录种类的数量、-F::指定分隔符、NF:最后一列、(NF-1):倒数第二列、
t管道:IP a |grep init |tee a.txt 、-a追加。默认覆盖。
xargs :传递参数。cat files.txt |xargs -I {} cp -rvf {} /nba 、
[root@youngfitn ~]# top -d 1 -b -n 1 > top.txt
[root@youngfitn ~]# top -d 1 -b -n 1 |tee top.txt
磁盘分区
MBR <2TB fdisk 14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)
GPT >2TB gdisk(parted) 128个主分区 注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
转换分区格式 先备份、然后卸载。parted -s /dev/sda mklabel msdos:将GPT转换为MBR格式
parted -s /dev/sda mklabel gpt:将分区dev/sdb、MBR转换为GPT格式。
lsblk:查看磁盘设备。(都包括)
parted -l查看磁盘分区文件类型。
df:(不光从文件系统考虑还统计被命令或程序占用的空间,文件已经删除,但程序并没释放空间。)du:统计目录/文件的大小。du / 。-s 总占用量、-h人性化、-a子目录的大小。(du面向文件只统计文件或目录占用的空间。)常用:du -sh
fsck 文件系统修复,-a不显示、修复(默认)-y自动修复。dumpc2fs显示磁盘状态?。
mount:查看已经挂载的设备、分区、-a 自动挂载。(/etc/fstab 依据)
mount [-t :文件体统类型][-L卷标名}{-o特殊类型}+设备名+挂载点、remount重新挂载已挂载的文件系统、exec/noexec:执行/不执行、默认exec。
挂载光盘:
mkdir /mnt/cdrom:建立挂载点、
mount -t iso9660 /dev/cdrom /mnt/cdrom、mount /dev/cdrom /mnt/cdrom。卸载:umount +设备名或挂载点、umount /mnt/cdrom.-l:强行卸载,杀死进程。
fdisk -l:查看设备文件名、
分区:1:fdisk /dev/sdb 2:n、3:{l、p、s?}、4:w、5:partprobe(重新读取分区表信息)。
格式化:(扩展分区不可以格式化)
mkfs -t ext4 /dev/sdb1、-f:覆盖格式、(自动挂载目录:
1:vim etc/fstab :
/dev/sdb1 /disk1 ext4 defaults 1 2 )1:UUID(blkid+设备名)、2:挂载点、3:文件系统名、4:文件参数(一般默认)、5:备份(0不备份1每天备份2不定期)6:检测(0不检测1>2优先级)
完了最好mount -a (以防写错/etc/fstab文件)修复:mount -o remount, rw /(用于普通挂载写错)。
free 查看内存/swap。 -m兆显示。
2:挂载:vim /etc/rc.d/rc.local、mount /dev/sdb1、chmod +x rc.local、、reboot、完事。
mkswap /dev/sdb6 格式化swap分区、swapon /dev/sdb6加入swap分区、swapoff /dev/sdb6 取消swap分区
开机挂载:/dev/sdb6 swap swap defaults 0 0。mount -a。
逻辑卷LVM:扩容
pvdisplay:看pv信息。vgdisplay:看vg信息。lvdisplay:看lv信息。
[root@ICan ~]# pvcreate /dev/sdc1 //创建pv、pvscan/pvs查看。
Physical volume "/dev/sdc1" successfully created.
[root@ICan ~]# vgcreate vg2 /dev/sdc1 //创建vg、vgscan/vgs查看。
Volume group "vg2" successfully created
[root@ICan ~]# lvcreate -L500M -n lv2 /dev/vg2 //创建lv、lvscan/lvs查看。
Logical volume "lv2" created. // -l 个数、-L大小、-n自定义lv名称。
[root@ICan ~]# mkfs.xfs /dev/vg2/lv2 //格式化lv。
[root@ICan ~]# mkdir /mnt/lv2 //创建挂载点。
[root@ICan ~]# mount /dev/vg2/lv2 /mnt/lv2/ //挂载。
[root@ICan ~]# df -Th
[root@ICan ~]# lsblk
开机挂载:
[root@ICan ~]# blkid /dev/vg2/lv2 //查看uuid
/dev/vg2/lv2: UUID="b8129796-a8f3-442c-90ee-cf13f2c9d808" TYPE="xfs"
[root@ICan ~]# vim /etc/fstab 更改配置文件
umount /mnt/lv2 卸载
rm -rf /mnt/lv2
lsblk df -Th
扩大VG:
[root@ICan ~]# pvcreate /dev/sdc2 //创建pv。 (加入别的vg的pv,不可以加入其它的vg。)
[root@ICan ~]# vgextend vg2 /dev/sdc2 //直接vgextend扩容。
[root@ICan ~]# vgreduce vg2 /dev/sdc2 //减小vg。
pvmove 数据到其它 PV
[root@server0 ~]# pvmove /dev/vdd
/dev/vdd: Moved: 16.7%
/dev/vdd: Moved: 100.0%
扩容LV:
[root@ICan ~]# pvcreate /dev/sdc2 //创建pv (加入别的lv的vg,不可以加入其它的lv。)
[root@ICan ~]# vgextend vg2 /dev/sdc2 //加入vg2(vg扩容)
[root@ICan ~]# lvextend -L 1G /dev/vg2/lv2 //(lv扩容为1G) +1G在原有基础加1G。
[root@server0 ~]# lvextend -l +15 /dev/vg1/lv1 //在原有基础上加15个PE
[root@server0 ~]# df -Th
/dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
A. xfs(如果是xfs文件系统类型)
[root@server0 ~]# xfs_growfs /dev/vg1/lv1 //格式化lv
B. ext2/3/4(如果是ext文件系统类型)
[root@server0 ~]# resize2fs /dev/vg1/lv2
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg1-lv1 xfs
765M 67M 698M 9% /mnt/lv1 /dev/mapper/vg1-lv2 ext4 488M 32M 429M 7%
/mnt/lv2
[root@server0 ~]# lvremove /dev/vg1/lv1 :删除lv1
缩容:1:umount /dev/vg1/lv1、2: lvreduce -L -1G /dev/vg1/lv1、 3:vgreduce vg1 /dev/sdb2
扩: vgextend vg1 /dev/sdb2、 lvextend -L +1G /dev/vg1/lv1
交换分区swap:
free -m 、swapon -s、查看交换分区。swapon -a重新加载swap。 第一种:dd [root@ICan ~]# dd if=/dev/zero of=/a.txt bs=1M count=512 //(造空间,) [root@ICan ~]# mkswap /a.txt //初始化 Setting up swapspace version 1, size = 524284 KiB no label, UUID=6dd96431-a643-4b11-9968-6b9a1c75354a [root@ICan ~]# vim /etc/fstab //开机挂载(不挂不显示) [root@ICan ~]# swapon -a // 重新加载swap swapon: /a.txt: insecure permissions 0644, 0600 suggested. [root@ICan ~]# chmod 600 /a.txt //改权限 [root@ICan ~]# swapon -a // 第二种:(创建pv) [root@ICan ~]# pvcreate /dev/sdc3 //创建pv Physical volume "/dev/sdc3" successfully created. [root@ICan ~]# mkswap /dev/sdc3 //初始化 mkswap: /dev/sdc3: warning: wiping old LVM2_member signature. Setting up swapspace version 1, size = 102396 KiB no label, UUID=49f3399c-1036-498b-9c33-e4f8f2b4c6ae [root@ICan ~]# blkid /dev/sdc3 //查看/dev/sdc3的uuid /dev/sdc3: UUID="49f3399c-1036-498b-9c33-e4f8f2b4c6ae" TYPE="swap" [root@ICan ~]# vim /etc/fstab //配置开机挂载 [root@ICan ~]# swapon -a //重新加载swap [root@ICan ~]# free -m //查看swap分区 total used free shared buff/cache available Mem: 976 133 77 6 765 654 Swap: 2659 0 2659
交换分区扩容
[root@localhost ~]# free -m total used free shared buff/cache available Mem: 1984 163 1115 8 704 1641 Swap: 2047 0 2047 [root@localhost ~]# pvcreate /dev/sdc [root@localhost ~]# vgextend centos /dev/sdc [root@localhost ~]# lvextend -L +1.9G /dev/mapper/centos-swap /dev/sdc [root@localhost ~]# xfs_growfs /dev/mapper/centos-swap [root@localhost ~]# swapoff /dev/mapper/centos-swap [root@localhost ~]# mkswap /dev/mapper/centos-swap [root@localhost ~]# free -m total used free shared buff/cache available Mem: 1984 167 1113 8 704 1638 Swap: 3995 0 3995