linux root组 不是管理员角色 root组并不是有root权限

useradd -r -m

r一般配合m使用

服务器让每个uid最好一样,统一标准化管理

token(uid ,gid,groups)

file uid =read write 先看uid再看权限

想看到最新 file uid =read write excute必须重新登录

r w x 二进制文件一般读取没有实际意义 ,不是随便一个权限赋予读都有意义 读和写一般给文本文件,读权限对二进制文件不受影响

file r看文件内容 w修改文件内容

reset 重置字符命令

chown wang f1 把f1文件所有者改wang

chgrp rpc f1 把f1文件所属组改为rpc

usermod -aG g2 wang 把王加入g2组 不带a的话g2容易丢

普通用户不能改变用户所有者,可以改变自己加进去过的所属组 rw 6 w 目录无x执行,对目录执行不了命令,对目录不能进行任何操作 目录无r权限,不能看到文件名,但可以不看文件名对其进行操作 不能进行删除,因为写权限对应目录的block块block块放的是文件的i节点和文件名 rm执行删除的是文件名和本目录保存的i节点纪录 可以被删除,可以执行删除命令对文件里的数据块进行操作

f1 文件访问三类人1个是所有者 2所属组 3是其他人 所有者可以赋予文件权限 chmod u=rxw

chmod 授予文件权限

方法1 mode 法

chmod who opt per file who:u g o a(all) opt: + - = per:r w x X

chmd -x f1 = chmod a-x f1

chmod u+x file chmod u+x,g-w,o= file

只有w权限 可以写可以追加 >f1 echo >> f1

dir f1 inode f2 inode

读写权限root不受控制 如果文件没有执行权限 文件不能运行包括root 读权限对二进制文件不受影响 如果文件没有读权限file 命令就判断不出来文件类型

用户对目录读权限可看文件列表 如果对目录没有执行权限 不能cd进去 不能查看文件内容不能看属性

用户获取文件的权限是按1所有者 ,2所属组 3是其他人 排列 rm .* 包括 ..

u盘中vfat文件系统不支持linux文件系统 只是兼容按linux系统显示

linux权限是针对linux文件系统使用

文件系统可以混用,但是linux使用linux文件系统

方法2 参考文件法 参考f1设 f2 f3

chmod --reference=f1 f2 f3

方法3 八进制授权 数字法

rwx rw r-- 111 110 100 rwx 7 6 4 r=4 w=2 x=1

---000 0
--x001 1 -w-010 2 -wx011 3 r--100 4
r-x101 5 rw-110 6 rwx111 7

file ;6rw ,4r ,0,1x 有执行权限是奇数肯定有x

dir :7rwx 5r-x ,0

chmod -R a+x dir1 给dir1 文件以下递归都给x权限

执行权限意味着危险性

chmod -R +X dir2 大X只针对目录加执行权限 如果文件有执行权限则加X

如果文件夹只有执行权限,则可以运行文件夹里的程序

重点 chmod -R 777 dirl /* 非常危险不亚于重装系统 所有文件为777 chown -R wang /* 非常危险把所有 把所有文件为wang

递归很危险 chown root:root 文件=chown root.root 文件改所有者 所属组

运维每次执行命令都要有记录

umask+default =file666/dir 777 因为有安全风险所以才给666
文件基数加1 6+1 就是奇数加一
对目录公式正确 文件如果有基数加1 偶数不变

.bashrc 里放家目录umask 每个用户可以设置每个与自己不同的unmask

umask mask ;掩码 取消对应的权限 夺1

666 110110110 125 001010101 642 110100010

umask -p 下显示umask

umask -p >> .bashrc

umask u=rwx,g=r ,o= 直接写默认权限 0037

SUID ,SGID ,Sticky

当程序有SUID权限 继承二进制所有者的权限而运行文件 任何人都是以这个suid权限的所有者身份运行文件 变成文件的所有者root的权限对程序进行操作给s权限相当于给root 只适合二进制可执行程序文件,作用在目录没有意义

小s是有x+S 大S是大S chomd u+s chmod 4755 suid 为4 SUID权限非常危险 任何编辑的程序不能加SUID SUID只适合于二进制可执行程序上 ,SUID对文件夹没有效果,既不能继承所有者权限去做事 su unmount SGID 继承二进制程序所属组的权限而运行文件 SGID做用于目录,此目录新建的文件,和文件夹继承目录的所属组
chmod g+s chomd 2755 sgid 为 2

sticky1 粘滞位 只针对作用于目录,此文件只能被所有者删除

生产中有一个项目和项目文档,目录有写权限,如果加粘滞位只能删自己的 chmod o+t
chmod 1755 sticky1 为1

groupadd opts usermod -aG opts wang usermod -aG opts mage chgrp opts *

SGID做用于目录,此目录新建的文件继承目录的所属组

chattr 对特定文件加以保护避免root账户修改,删除 ,只能读

lsattr 看文件锁定情况

chattr +i file1 锁定文件 ,不能修改文件内容

chattr -i file1 去锁

chattr +a file1 锁定文件 ,可以追加 文件>> chattr -a file1 解锁文件

重点 chattr +A file1 atime锁定读时间

ACL权限 ext系列支持acl centos6后来挂载的分区不支持acl tune2fs -o acl /dev/sdb1 mount -o acl /dev/sdb1 /mnt/test

一单启用acl 组权限变成mask权限 group=mask权限 除了其他人和user其他的在这个组的启动权限mask权限是限高组权限 一旦acl权限开启则group就是mask限高线 acl执行判断顺序也是getfacl从上到下匹配 ,先看是不是user如果是其他权限不生效

如果用户有多个组权限则累计权限, 如果都不是则other 自定义用户,和组 不能都不能超过mask ,默认权限不能 acl权限如果用户mage 的文件f1 属g1 g2多个组的话可以累加权限 setfacl -m u:wang:0 f1 set file acl 让王账户不能读不能写

setfacl -m u:mage:rw f1 让mage可以读写

setfacl -M acl.txt f1 通过acl.txt文件来设置 f1 文件类型 cat >acl.txt u:wang:rx g:g1:rx g:g2:rx setfacl -M acl.txt f1

setfacl -x g:g2 f1 删除组

setfacl -X acl.txt f1 通过acl.txt文件来删除 f1 文件类型

setfacl -b f1 删除所有acl 权限

getfacl f1 看f1 里的权限

getfacl file1 |setfacl --set-file=- file2 根据file1设置file2 cp -a cp -p复制可以保留acl权限,如果新建的分区支持acl权限则保留不住 备份还原acl权限 getfacl -R /tmp/dir > acl.txt setfacl -R -b /tmp/dir setfacl -R --set-file=acl.txt /tmp/dir

group:g1:rw- group:g2:--x

mage属于 g1 g2 则 马哥可以rwx

mask 定义除了user 和other 的最高权限

setfacl -m mask::r f1 除了除了user 和other 其他人都是r

一旦设了acl 权限 则chmod g=rw 改的是 mask::rw

centos7以前 默认ext文件系统支持acl 默认手工创建的文件下午acl需手动添加

centos 7都支持

cat用来看文本文件 脚本出错,多了空格用cat -A 可以看到 cat -n 加行号 所有行号 cat -b 加行号 只加有文字的

cat -s 压缩空行 将多余空行压缩一个

cat -A 显示回车显示空格所有控制符

tac f1.txt 反向显示文件

rev f1.txt 反向显示文件 按一行反向显示 reverse

more 可以和管道配合 more 空格往下翻 b往上翻 ls -R /etc | more 如果列表特别多可以用分页显示就用more 长

less less less可以分页显示 man用的就是less

head -n 2 /etc/passwd 显示2行 head -c 12 显示12个字节 openssl rand -base64 100 |tr -dc ‘[:alnum:]’|head -c 12 tail 用来查看日志 tail -f /data/f2.log 跟踪文件内容如果变化自然显示 如果删除文件则tail -f 跟踪还存在tailf 类似 tail -f

tail -F /data/f1 跟踪文件名 -F跟中文件名如果把文件删了则F成功

[root@centos7 etc]# echo {1..10}|tail -c4 10 [root@centos7 etc]# echo {1..10}|tail -c5 9 10

ifconfig ens33 |head -n2 |tail -n1

cut 剪切的意思 取出文件的一部分加以显示cut以列为单位取 取文本文件按列来取必须给分隔符 属性字段列域 -f #,# #-#

cut -d: -f 1,3 /etc/passwd

who |cut -c 1-9

cut -c1-9 --output-delimiter=

df |cut -c44-46

取ip地址

ifconfig eth0 |head -n2|tail -n1|tr -s " " ":" |cut -d: -f4

rpm -ivh systemctl restart sshd 重启sshd

同一执行2个命令关闭防火墙 centos6 service iptables stop 关闭防火墙 chkconfig iptables off 让防火墙开机不启动 service network retart centos7 systemctl stop firwalld systemctl disable firewalld systemctl restart network

echo djs > /var/www/html/index.html 网页文件

/var/log/httpd/access_log 网页访问日志里的 访问ip地址

cat /var/log/httpd/access_log | cut -d" " -f1 看访问ip地址

/var/log/httpd/access_log

172.22.x.y x:学号 y:

paste f1 f2 文件合并 把两个文件合并进同一个行 1 11 2 12 3 13 4 14 cat f1 f2 纵向合并 1 2 3 4 11 12 13 14 paste -s f1 f2 放1行 1 2 3 4 10 11 12 13

paste -d":" f1 f2 用冒号作文分隔行

wc wordcount简写 行 单词 字节 空格隔开就是单词

wc 和管道配合

ls |wc wc -l 多少行 wc -w 单词 空格后就是单词 word wc -c 字节 bytes wc -m 字符数 有汉字则字节不一样 chars wc -L 显示行最长的

/var/log/httpd/access_log 网站访问量pv 就是这个日志 pv page view 访问页面数量 有多少行有多少pv

sort -t: -k3 /etc/passwd 给:分隔符 第三列排序 sort 默认按第一行单词排序 sort -t: -k3 /etc/passwd -n 是数字排序

sort -r 是倒叙

netstat -nt 查询ip pid 看进程号

tasklist 进程编号 pid 4508 window编号 findstr过滤
netstat -no |findstr 4508

sort -u 把重复的删掉 sort -f忽略大小写 sort -R 随机排序 [root@centos7 ~]#cut -d":" -f"1,3" /etc/passwd |sort -t":" -k2 -nr

uniq 支持管道 uniq 把相邻的重复行合并成一个

uniq -c 显每行重复出现次数

uniq -u 显示不曾重复的行 也就是没有被合并过的行 [root@centos7 ~]#cat /var/log/httpd/access_log | cut -d" " -f1|sort |uniq -c|sort -t" " -k1 -nr

rpm -ivh /misc/cd/Packages/lrzsz-0.12.20-27.1.e16.x86_64.rpm

last 显示日志 看重新登录的信息 空地址为本地登录 root pts/2 172.18.140.77 Sat Mar 9 11:00 still logged in
root pts/1 172.18.140.77 Sat Mar 9 10:23 still logged in
root pts/1 172.18.140.77 Sat Mar 9 09:47 - 10:23 (00:36)
root pts/0 :0 Sat Mar 9 09:46 still logged in
root :0 :0 Sat Mar 9 09:46 still logged in
reboot system boot 3.10.0-957.el7.x Sat Mar 9 09:45 - 14:09 (04:23)
root pts/4 192.168.209.1 Sat Mar 9 09:15 - down (00:30)
root pts/4 192.168.209.1 Fri Mar 8 23:08 - 23:59 (00:51)
mage pts/3 :0 Fri Mar 8 23:06 - 09:45 (10:38)
root pts/2 192.168.209.1 Fri Mar 8 22:46 - down (10:59)
root pts/0 192.168.209.1 Fri Mar 8 22:01 - down (11:44)
root pts/1 192.168.209.1 Fri Mar 8 19:44 - down (14:00)
mage :0 :0 Fri Mar 8 19:30 - down (14:14)
mage tty3 Fri Mar 8 18:36 - 09:45 (15:09)
mage tty3 Fri Mar 8 18:35 - 18:35 (00:00)
root pts/0 192.168.209.1 Fri Mar 8 18:29 - 22:00 (03:31)
root tty2 Fri Mar 8 18:29 - 09:45 (15:16)
reboot system boot 3.10.0-957.el7.x Fri Mar 8 18:28 - 09:45 (15:17)
root pts/2 192.168.209.1 Fri Mar 8 18:24 - crash (00:03)

统计远程主机登录次数前三个ip [root@centos7 ~]#last |tr -s " "|cut -d" " -f3|sort|uniq -c|sort -nr|head -n3

diff fstab2 fstab 比较2个文件 区别 diff -u fstab2 fstab 比较2个文件 显示格式信息 如时间适合用于补丁文件 diff -u 显示格式信息 如时间 diff只能比较两个文件 ,如果把其中一个文件删了另一个文件需要用其文件名并且命令备份 备份操作 diff -u fstab2 fstab >diff.log rm -f fstab2 patch -b fstab diff.log 新文件是fstab=fstab2 fstab.org

stat /tmp | head -n4 |tail -n1|cut -d" " -f2|cut -c2-5 查看文件权限