首页
About Me
推荐
weibo
github
Search
1
linuxea:gitlab-ci之docker镜像质量品质报告
49,451 阅读
2
linuxea:如何复现查看docker run参数命令
23,044 阅读
3
Graylog收集文件日志实例
18,580 阅读
4
linuxea:jenkins+pipeline+gitlab+ansible快速安装配置(1)
18,275 阅读
5
git+jenkins发布和回滚示例
18,181 阅读
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
登录
Search
标签搜索
kubernetes
docker
zabbix
Golang
mariadb
持续集成工具
白话容器
elk
linux基础
nginx
dockerfile
Gitlab-ci/cd
最后的净土
基础命令
gitops
jenkins
docker-compose
Istio
haproxy
saltstack
marksugar
累计撰写
690
篇文章
累计收到
139
条评论
首页
栏目
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
页面
About Me
推荐
weibo
github
搜索到
16
篇与
的结果
2020-11-25
linuxea:firewall简单使用笔记
FirewallD使用服务和区域的概念,而不是iptables规则和链。使用它,您可以配置应该允许或禁止与系统之间的通信。FirewallD使用firewall-cmd实用程序来管理防火墙配置。LinuxEA # firewall-cmd --list-all FirewallD is not running启动并启用LinuxEA # systemctl start firewalld LinuxEA # systemctl enable firewalld Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service. Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.状态已经运行LinuxEA # firewall-cmd --state running以下是FirewallD中包含的预定义区域:这些可以使用firewall-cmd --get-zones来获取drop –丢弃所有传入连接,不作任何答复,只允许传出连接。block –与区域删除相同,但所有传入连接均使用icmp-host- prohibited或icmp6-adm-prohibited消息阻止。public -它代表不可靠的公共区域。external -防火墙用作网关的外部网络。因为它是为NAT伪装而配置的,所以内部网络将保持私有但可访问。internal –仅接受选定的传入连接,用于内部网络。dmz –非军事区,内部网络可公开访问,访问受限,并且仅接受选定的传入连接。work –用于工作机。home -使用的家用机。trusted -接受所有网络连接。使用FirewallD配置防火墙默认情况下,public域是启用防火墙服务后的默认区域。LinuxEA # firewall-cmd --get-default-zone public使用--get-zones可以看到所有区域LinuxEA # firewall-cmd --get-zones block dmz drop external home internal public trusted work--get-active-zones 查看网络接口使用了哪些区域LinuxEA # firewall-cmd --get-active-zones public interfaces: eth0可以使用--set-default-zone=""和--get-default-zone来设置和查看# firewall-cmd --set-default-zone=drop 比如更改为home域或者drop域 # firewall-cmd --get-default-zone对外开放服务打开http和https临时打开对外开放http和httpsLinuxEA # firewall-cmd --zone=drop --add-service=http success LinuxEA # firewall-cmd --zone=drop --add-service=https success永久写入: --permanentLinuxEA # firewall-cmd --zone=drop --permanent --add-service=http success LinuxEA # firewall-cmd --zone=drop --permanent --add-service=https success或者这样LinuxEA # firewall-cmd --zone=drop --permanent --add-port 80/tcp success LinuxEA # firewall-cmd --zone=drop --permanent --add-port 443/tcp success如果有多个端口,比如开启:80到100端口LinuxEA # firewall-cmd --zone=drop --permanent --add-port 80-100/tcpORLinuxEA # firewall-cmd --zone=drop --permanent --add-port={80/tcp,443/tcp,8080/tcp,9000-9086/tcp} success如果有多个服务LinuxEA # firewall-cmd --zone=drop --permanent --add-service={http,https,dns,jenkins} success如果要查看这些端口,则可以使用--info-service=NAME,这些信息预置在/usr/lib/firewalld/services目录下。如下:LinuxEA # firewall-cmd --info-service=jenkins jenkins ports: 8080/tcp protocols: source-ports: modules: destination: includes: helpers: 而后重新加载LinuxEA # firewall-cmd --reload success使用--list-all查看LinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns http https jenkins ports: 80/tcp 443/tcp 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 删除规则LinuxEA # firewall-cmd --zone=drop --permanent --remove-service=http success LinuxEA # firewall-cmd --zone=drop --permanent --remove-service=https success或者LinuxEA # firewall-cmd --zone=drop --permanent --remove-port 80/tcp success LinuxEA # firewall-cmd --zone=drop --permanent --remove-port 443/tcp successLinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns jenkins ports: 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 源ip地址管理可以将区域绑定到网络接口和地址: 对于drop区域,放行172.16.100.0/24网段LinuxEA # firewall-cmd --permanent --zone=drop --add-source=172.16.100.0/24 success LinuxEA # firewall-cmd --reload success移除--remove-sourceLinuxEA # firewall-cmd --permanent --zone=drop --remove-source=172.16.100.0/24 success LinuxEA # firewall-cmd --reload success LinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:还有修改-change-source可以对Mac地址进行管理 firewall-cmd --permanent --zone=drop --add-source=80-FA-5B-25-3B-1A丰富的Rich Rules由于rich规则所使用的语法很难记住,因此请记住man firewalld.richlanguage命令和最后的“示例”部分。格式如下:firewall-cmd --add-rich-rule 'rule ...'允许172.16.100.107所有的连接请求。--add-rich-rulefirewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" log 可以使用log选项记录日志到 /var/log/messagesfirewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" log accept" 使用--list-allLinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns jenkins ports: 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="172.16.100.107" accept rule family="ipv4" source address="172.16.100.107" log accept或者这样添加ip段 172.16.100.0/24LinuxEA # firewall-cmd --permanent --zone=drop --add-rich-rule='rule family="ipv4" source address="172.16.100.0/24" port port="22-23" protocol="tcp" accept' success LinuxEA # firewall-cmd --reload success删除允许172.16.100.107所有的连接请求。 --remove-rich-rulefirewall-cmd --permanent --zone=drop --remove-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" 允许ip和拒绝ip# 根据ip接受所有端口 firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" # 根据ip拒绝所有端口 firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" drop" 禁用pingfirewall-cmd --permanent --zone=drop --add-rich-rule='rule protocol value=icmp drop'删除zone删除/etc/firewalld/zones下的zone命名的xml文件而后重新加载即可Direct rulesfirewall-cmd工具中的--direct选项可以在运行时添加和删除链。直接接口模式可以让服务或者程序在运行时候添加特定的防火墙。作用于文件 /etc/firewalld/direct.xml将规则添加到INPUT链,放行8090端口LinuxEA # firewall-cmd --direct --permanent --zone=drop --add-rule ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT success查看iptablesLinuxEA # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090用firewall查看LinuxEA # firewall-cmd --direct --get-all-rules ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT请注意,此命令(该--get-rules选项)仅列出以前使用该--add-rule选项添加的规则。它没有列出通过其他方式添加的现有iptables规则。删除LinuxEA # firewall-cmd --direct --permanent --zone=drop --remove-rule ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT如果你在初始化系统这条命令可以放行sshfirewall-offline-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPTip set管理firewall有ipset的功能。 ipset是一组IP地址或网络。不同的区域类别,属于hash:ip或hash:net。配置黑名单ip创建ip组:blacklist1LinuxEA # firewall-cmd --permanent --zone=drop --new-ipset=blacklist1 --type=hash:ip success LinuxEA # firewall-cmd --reload success添加ip成员注意:添加--option=family=inet6以创建IPv6 ipset。LinuxEA # firewall-cmd --permanent --ipset=blacklist1 --add-entry=172.16.100.101 success LinuxEA # firewall-cmd --permanent --ipset=blacklist1 --add-entry=172.16.100.3 success添加拒绝规则LinuxEA # firewall-cmd --permanent --add-rich-rule='rule source ipset=blacklist1 drop' success获取blacklist1成员LinuxEA # firewall-cmd --info-ipset=blacklist1 blacklist1 type: hash:ip options: entries: 172.16.100.101 172.16.100.3删除组内ip成员LinuxEA # firewall-cmd --ipset=blacklist1 --remove-entry=172.16.100.101 success LinuxEA # firewall-cmd --ipset=blacklist1 --get-entries 172.16.100.3配置黑名单ip段创建新的黑名单netblacklist,类型hash:netLinuxEA # firewall-cmd --permanent --new-ipset=netblacklist --type=hash:net --option=family=inet --option=hashsize=4096 --option=maxelem=200000 successLinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 添加两个网段LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=172.16.100.0/24 successLinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=192.168.2.0/24 successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24或者添加一个ip文件列表LinuxEA # cat > iplist.txt <<EOL > 10.10.1.0/23 > 192.168.0.3 > 172.16.100.0/24 > 172.16.90.0/24 > EOL--add-entries-from-file添加,改成--remove-entries-from-file就删除LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entries-from-file=iplist.txt successfirewall-cmd --permanent --ipset=netblacklist --remove-entries-from-file=iplist.txt单个添加和单个删除LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=172.16.100.118 successfirewall-cmd --permanent --ipset=netblacklist --remove-entry=172.16.100.118LinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24 10.10.1.0/23 192.168.0.3 172.16.90.0/24没有丢弃参数,没有iptables命令,也没有与IP数据包相关的内容。这是因为使用的是firewalld的源功能,当一个IP地址与源(源接口,源IP甚至源MAC地址)匹配时,上述规则会将IP地址重定向到特定区域,在这种情况下为“阻止”。作用到某个区域firewall-cmd --permanent --zone=drop --add-source=ipset:netblacklist从区域内删除firewall-cmd --permanent --zone=drop --remove-source=ipset:netblacklist管理命令查看ipsetLinuxEA # firewall-cmd --permanent --get-ipsets blacklist1 netblacklist查看ipset表LinuxEA # firewall-cmd --permanent --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24 10.10.1.0/23 192.168.0.3 172.16.90.0/24LinuxEA # firewall-cmd --permanent --info-ipset=blacklist1 blacklist1 type: hash:ip options: entries: 端口转发sysctl -w net.ipv4.ip_forward=1如果防火墙是您的网络网关,并且不希望所有人都知道您的内部地址,则可以设置两个区域,一个称为内部区域,另一个称为外部区域,并在外部区域上配置伪装。 这样,所有数据包都将获取您的防火墙IP地址作为源地址。端口转发是一种将特定端口的入站网络流量转发到另一个内部地址或备用端口的方法端口转发需要masquerading ,因此创建LinuxEA # firewall-cmd --zone=external --add-masquerade success如果希望暂时将所有要发送给端口22的数据包转发到端口tcp 3753LinuxEA # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753 success把80端口转发到后端的172.25.100.2 8080firewall-cmd --permanent --add-forward port=80:proto=tcp:toaddr=172.25.100.2:toport=8080要删除端口转发,使用-remove-forward-port选项firewall-cmd --zone=external --remove-forward-port=port=22:proto=tcp:toport=3753如果要定义目标IP地址:LinuxEA # firewall-cmd --permanent --zone=external --add-forward-port=port=22:proto=tcp:toport=3753:toaddr=172.16.100.101 success LinuxEA # firewall-cmd --reload success--permanent永久生效示例:假如现在希望通过SSH从public (10.10.1.0/24)访问dmz网络(10.8.8.0/24)上的服务器。为此,我们需要放置一些端口转发规则。以下规则配置端口转发,以便将与10.10.1.79:2271的连接转发到10.8.8.71:22,并进行SSH日志记录# firewall-cmd --permanent --zone=public --add-forward-port='port=2271:proto=tcp:toport=22:toaddr=10.8.8.71' # firewall-cmd --permanent --zone=public --add-rich-rule='rule service name=ssh log prefix="SSH_" level="debug" limit value=1/m reject' # firewall-cmd --reload普通配置示例# 创建linuxea区域 firewall-cmd --permanent --new-zone=linuxea firewall-cmd --reload删除zone只需要删除/etc/firewalld/zones下的zone命名的xml文件而后重新加载即可# 修改默认域为linuxea firewall-cmd --set-default-zone=linuxea # 放行https,http firewall-cmd --permanent --zone=linuxea --add-service={http,https} # 运行172.16.100.101登录ssh firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="172.16.100.101" port port="22" protocol="tcp" accept' # 允许10.100.10.0/24网段访问8080端口 firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="10.100.10.0/24" port port="8080" protocol="tcp" accept' # 拒绝10.100.100.4访问80端口 firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="10.100.100.4" port port="80" protocol="tcp" drop'# 重载 LinuxEA # firewall-cmd --reload success # 查看规则 LinuxEA # firewall-cmd --list-all linuxea (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="172.16.100.101" port port="22" protocol="tcp" accept rule family="ipv4" source address="10.100.100.4" port port="80" protocol="tcp" drop rule family="ipv4" source address="10.100.10.0/24" port port="8080" protocol="tcp" accept紧急模式firewall-cmd --panic-on 执行端口所有连接 firewall-cmd --panic-off 关闭 firewall-cmd --query-panic 查询
2020年11月25日
2,925 阅读
0 评论
0 点赞
2017-08-30
PV unknown device VG处理
如:WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter PV unknown device VG MKVG lvm2 [100.00 GiB / 100.00 GiB free][root@linuxea-Node49 ~]# vgscan -P PARTIAL MODE. Incomplete logical volumes will be processed. Reading all physical volumes. This may take a while... WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. Found volume group "MKVG" using metadata type lvm2查看[root@linuxea-Node49 ~]# pvscan -P PARTIAL MODE. Incomplete logical volumes will be processed. WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. PV /dev/xvda2 VG MKVG lvm2 [14.50 GiB / 0 free] PV unknown device VG MKVG lvm2 [100.00 GiB / 100.00 GiB free] PV unknown device VG MKVG lvm2 [20.01 GiB / 20.01 GiB free] PV unknown device VG MKVG lvm2 [20.01 GiB / 20.01 GiB free] Total: 4 [154.51 GiB] / in use: 4 [154.51 GiB] / in no VG: 0 [0 ]直接--removemissing[root@linuxea-Node49 ~]# vgreduce --removemissing -v MKVG Finding volume group "MKVG" WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. There are 3 physical volumes missing. There are 3 physical volumes missing. Trying to open VG MKVG for recovery... Found same device /dev/xvda2 with same pvid jIyyxh6U9R3ev3PcOApJognXuKPlWkWQ WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. There are 3 physical volumes missing. There are 3 physical volumes missing. Archiving volume group "MKVG" metadata (seqno 8). Removing PV with UUID ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi from VG MKVG Removing PV with UUID L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld from VG MKVG Removing PV with UUID W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE from VG MKVG Creating volume group backup "/etc/lvm/backup/MKVG" (seqno 9). Wrote out consistent volume group MKVG在查看[root@linuxea-Node49 ~]# vgscan -P PARTIAL MODE. Incomplete logical volumes will be processed. Reading all physical volumes. This may take a while... Found volume group "MKVG" using metadata type lvm2
2017年08月30日
11,834 阅读
0 评论
0 点赞
2016-12-29
shell中/dev/null 2>&1是什么
高级用法重定向绑定好了,在有了以上知识的基础上,我们再来看开头提到的>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。/dev/null这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。2>&1这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。/dev/null 2>&1 VS 2>&1 >/dev/null弄反了>/dev/null和2>&1拼装的顺序,导致出了一点小问题。乍眼看这两条命令貌似是等同的,但其实大为不同。刚才提到了,linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令。那么我们同样从左到右地来分析2>&1 >/dev/null:2>&1,将错误输出绑定到标准输出上。由于此时的标准输出是默认值,也就是输出到屏幕,所以错误输出会输出到屏幕。/dev/null,将标准输出1重定向到/dev/null中。我们用一个表格来更好地说明这两条命令的区别:命令 标准输出 错误输出/dev/null 2>&1 丢弃 丢弃2>&1 >/dev/null 丢弃 屏幕/dev/null 2>&1 VS >/dev/null 2>/dev/null那么可能会有些同学会疑问,为什么要用重定向绑定,而不是像>/dev/null 2>/dev/null这样子重复一遍呢。为了回答这个问题,我们回到刚才介绍输出重定向的场景。我们尝试将标准输出和错误输出都定向到out文件中:# ls a.txt b.txt >out 2>out # cat out a.txt�法访问b.txt: 没有那个文件或目录WTF?竟然出现了乱码,这是为啥呢?这是因为采用这种写法,标准输出和错误输出会抢占往out文件的管道,所以可能会导致输出内容的时候出现缺失、覆盖等情况。现在是出现了乱码,有时候也有可能出现只有error信息或者只有正常信息的情况。不管怎么说,采用这种写法,最后的情况是无法预估的。而且,由于out文件被打开了两次,两个文件描述符会抢占性的往文件中输出内容,所以整体IO效率不如>/dev/null 2>&1来得高。nohup结合我们经常使用nohup command &命令形式来启动一些后台程序,比如一些java服务:# nohup java -jar xxxx.jar &为了不让一些执行信息输出到前台(控制台),我们还会加上刚才提到的>/dev/null 2>&1命令来丢弃所有的输出:# nohup java -jar xxxx.jar >/dev/null 2>&1 &总结本文主要介绍了linux重定向的原理以及一些基本命令,并且详细地分析了>/dev/null 2>&1这个命令以及一些注意点。总而言之,在工作中用到最多的就是nohup command >/dev/null 2>&1 &命令,希望大家能够好好掌握。
2016年12月29日
3,359 阅读
0 评论
0 点赞
2016-12-28
ssh链接报Read from socket failed: Connection reset by peer
chown www.www /*后出现链接不上Read from socket failed: Connection reset by peer[root@linuxea-com ~]# tail -f /var/log/auth.log 日志中报错type=USER_LOGIN msg=audit(1482840012.303:122122): pid=12106 uid=0 auid=4294967295 ses=4294967295 msg='op=login acct="(unknown)"添加参数 -v 获得更详细的连接信息 ssh user@computerB -v 如果是 rsa and dsa keys 丢失产生的问题, 可以通过下面的方式进行修复:[root@linuxea-com ~]# ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_rsa_key [root@linuxea-com ~]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key如果还提示Read from socket failed: Connection reset by peer,查看权限是否匹配.ssh的权限位644[root@linuxea-com ~]# ll /root/.ssh/ 总用量 8 -rw-r--r--. 1 root root 1176 12月 27 17:05 authorized_keys -rw-r--r-- 1 root root 174 12月 28 09:46 known_hosts/etc/ssh的权限如下[root@linuxea-com ~]# ll /etc/ssh 总用量 276 -rw-r--r-- 1 root root 242153 3月 22 2016 moduli -rw-r--r-- 1 root root 2208 3月 22 2016 ssh_config -rw-------. 1 root root 4327 4月 15 2016 sshd_config -rw-r-----. 1 root ssh_keys 227 4月 15 2016 ssh_host_ecdsa_key -rw-r--r--. 1 root root 162 4月 15 2016 ssh_host_ecdsa_key.pub -rw-r-----. 1 root ssh_keys 387 4月 15 2016 ssh_host_ed25519_key -rw-r--r--. 1 root root 82 4月 15 2016 ssh_host_ed25519_key.pub -rw-r-----. 1 root ssh_keys 1675 4月 15 2016 ssh_host_rsa_key -rw-r--r--. 1 root root 382 4月 15 2016 ssh_host_rsa_key.pub [root@linuxea-com ~]# 如果出现找不到匹配的host key算法,我们将/et/ssh目录下的ssh_host_*的所有文件移走,重启sshd即可其他服务,则需要修改目录的权限,和一些pid以及日志的权限
2016年12月28日
6,966 阅读
0 评论
0 点赞
2016-07-29
linux基础之useradd
命令:useradd 添加用户adduser 添加用户passwd 添加密码usermode 修改用户信息chsh 修改用户shellchage 修改账号日期chfn 修改用户信息userdel 删除用户groupadd 添加组groupmde 修改组groupdel 删除组newgrp 切换基本组systemd-network:!!:16982::::::用户名:密码占位符:UID:基本组ID:用户备注信息:用户家目录:默认shell当一个用户创建完成后会将/etc/skel/下的文件全部复制一份到/home/用户目录/下[root@docker-node1 ~]# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 用户创建非活动状态 EXPIRE= 用户过期期限 SHELL=/bin/bash 用户bash SKEL=/etc/skel 创建家目录 CREATE_MAIL_SPOOL=yes 创建邮件缓存池。(/var/mail会有相应用户的缓冲池) adduser:在centos中adduser是链接到useradd的[root@docker-node1 ~]# which adduser /usr/sbin/adduser [root@docker-node1 ~]# [root@docker-node1 ~]# ll /usr/sbin/adduser lrwxrwxrwx. 1 root root 7 Jun 30 13:17 /usr/sbin/adduser -> useradd [root@docker-node1 ~]# 指定UID: 前提是未重复使用的UIDuseradd -u 1010 mark [root@docker-node1 ~]# tail -1 /etc/passwd mark:x:1010:1010::/home/mark:/bin/bash [root@docker-node1 ~]# 如果指定了UID,且在下个用户创建是,默认UID加1-u:指定UID-g:指定GID,既指定用户的基本组,担GID要事先存在指定GID:前提是组ID必须创建或者存在-g :创建并为其指定GID -G :指定用户附加组,组需事先存在首先创建组,才能添加到组groupadd linuxea[root@docker-node1 ~]# groupadd linuxea [root@docker-node1 ~]# tail -2 /etc/group mark:x:1010: linuxea:x:1011: 指定用户到组[root@docker-node1 ~]# useradd -g linuxea linuxea1 [root@docker-node1 ~]# tail -1 /etc/passwd linuxea1:x:1012:1011::/home/linuxea1:/bin/bash [root@docker-node1 ~]# tail -2 /etc/group mark:x:1010: linuxea:x:1011: [root@docker-node1 ~]# [root@docker-node1 ~]# id linuxea uid=1011(linuxea) gid=1011(linuxea) groups=1011(linuxea) [root@docker-node1 ~]# id linuxea1 uid=1012(linuxea1) gid=1011(linuxea) groups=1011(linuxea) [root@docker-node1 ~]# 用户类型分为管理员和普通用户,在普通用户中分为系统用户和登录用户,管理员为0,普通用户从1-65535,而系统用户:1-499,登录用户500+组:基本组:显示在/etc/passwd中的GID字段组,为用户的基本组额外组:附加组:/etc/group[root@docker-node1 ~]# useradd -G linuxea linuxea2 [root@docker-node1 ~]# tail -1 /etc/passwd linuxea2:x:1013:1013::/home/linuxea2:/bin/bash [root@docker-node1 ~]# tail -1 /etc/group linuxea2:x:1013: [root@docker-node1 ~]# 使用id则可以看出[root@docker-node1 ~]# id linuxea2 uid=1013(linuxea2) gid=1013(linuxea2) groups=1013(linuxea2),1011(linuxea) [root@docker-node1 ~]# group中也可以看出附加组,当然,你也可以直接在文件中添加附加组[root@docker-node1 ~]# tail -3 /etc/group linuxea:x:1011:linuxea2 linuxea2:x:1013: [root@docker-node1 ~]# -d:用户目录用户指定的目录不能事先存在指定家目录和用户名不一样[root@docker-node1 ~]# useradd -d /home/xiaoming xiaohong [root@docker-node1 ~]# tail -1 /etc/passwd xiaohong:x:1015:1015::/home/xiaoming:/bin/bash [root@docker-node1 ~]# 指定家目录位置通常在home下,当然你也可自定义[root@docker-node1 ~]# useradd -d /tmp/daxiong xiaoxiong [root@docker-node1 ~]# tail -1 /etc/passwd xiaoxiong:x:1016:1016::/tmp/daxiong:/bin/bash [root@docker-node1 ~]# -c指定备注信息[root@docker-node1 ~]# useradd -c "linuxea" -d /tmp/user1 user1 [root@docker-node1 ~]# tail -1 /etc/passwd user1:x:1017:1017:linuxea:/tmp/user1:/bin/bash [root@docker-node1 ~]# -s指定shell[root@docker-node1 ~]# useradd -c "linuxea1" -d /tmp/user2 user2 -s /sbin/nologin [root@docker-node1 ~]# tail -1 /etc/passwd user2:x:1018:1018:linuxea1:/tmp/user2:/sbin/nologin [root@docker-node1 ~]# 如果是nologin是无法登陆的,不会创建家目录,系统用户通常会使用-g指定组[root@docker-node1 ~]# useradd -g linuxea -d /home/user8 -s /sbin/nologin user8 [root@docker-node1 ~]# id user8 uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea) 创建用户并指定附加组[root@docker-node1 ~]# useradd -G 1018 -d /home/user4 -s /sbin/nologin user4 [root@docker-node1 ~]# tail -2 /etc/group user2:x:1018:user4 user4:x:1019: [root@docker-node1 ~]# 创建用户指定Uid,shell,家目录[root@docker-node1 ~]# useradd -u 1021 -d /home/user5 -s /sbin/nologin user5 [root@docker-node1 ~]# tail -1 /etc/passwd user5:x:1021:1021::/home/user5:/sbin/nologin [root@docker-node1 ~]# -m:创建用户时强制给用户创建家目录-M:创建用户是仅创建用户不创建家目录[root@docker-node1 ~]# useradd user7 -M -s /sbin/nologin [root@docker-node1 ~]# tail -1 /etc/passwd user7:x:1023:1023::/home/user7:/sbin/nologin -D:改变默认值,为useradd命令创建的用户指定新的默认值删除用户:删除用户默认保留家目录,如果需要删除家目录-r即可:userdel -r user8文件格式:/etc/passwd: username:x:UID:GID:comment:home:shell /etc/group: groupname:x:gid:user: list家目录复制文件链接:/etc/skel 默认配置:/etc/default/useradd在没有密码的情况下,是不能登录的,只能使用管理员su切换设定密码:passwd其中,只有管理root才能修改自己的密码,使用passwd即可,如果修改其他用户则passwd 用户名即可而普通用户修改密码需要密码复杂度如果不符合则会提示[root@docker-node1 ~]# passwd linuxea Changing password for user linuxea. New password: BAD PASSWORD: The password is shorter than 8 characters Retype new password: passwd: all authentication tokens updated successfully. [root@docker-node1 ~]# su - linuxea [linuxea@docker-node1 ~]$ passwd Changing password for user linuxea. Changing password for linuxea. (current) UNIX password: 输入当前密码 New password: 输入新密码,如果新密码复杂度不够则会提示如下: BAD PASSWORD: The password is the same as the old one New password: BAD PASSWORD: The password is the same as the old one New password: BAD PASSWORD: The password is the same as the old one passwd: Have exhausted maximum number of retries for service [linuxea@docker-node1 ~]$ [root@docker-node1 ~]# tail -1 /etc/shadowuser8:!!:16999:0:99999:7:::[root@docker-node1 ~]# shadow文件说明:user8:!!:16999:0:99999:7:::username:加密密码:最近一次的修改时间(从1970年1月1号到改密码经过的天数):最短时间期限,为0不限制:最长使用期限,为99999则为不限制:警告区间,离密码过期剩下天数开始警告:非活动区间,账号密码登录则需要修改密码:账号过期期限,失效时间:预留,尚未使用组密码设定:gpasswd 组名修改用户属性定义:chsh修改shell[root@docker-node1 ~]# tail -1 /etc/passwd user8:x:1024:1011::/home/user8:/sbin/nologin [root@docker-node1 ~]# chsh user8 Changing shell for user8. New shell [/sbin/nologin]: /bin/bash Shell changed. [root@docker-node1 ~]# tail -1 /etc/passwd user8:x:1024:1011::/home/user8:/bin/bash [root@docker-node1 ~]# 修改用户注释:chfn当然,你也可以只写一段[root@docker-node1 ~]# chfn user8 Changing finger information for user8. Name []: user8 backup Office []: manila Office Phone []: 150 8888 8888 Home Phone []: 119 Finger information changed. [root@docker-node1 ~]# tail -1 /etc/passwd user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash [root@docker-node1 ~]# 如果你想直接修改信息则可以使用usermodusermod:-u:修改uid -g:修改gid -G:修改附加组,如果默认有附加组,默认 -G会覆盖,如果是添加在附加组之上需添加参数-a选项 [root@docker-node1 ~]# id user8 uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea) [root@docker-node1 ~]# groupadd test [root@docker-node1 ~]# usermod -a -G test user8 [root@docker-node1 ~]# id user8 uid=1024(user8) gid=1011(linuxea) groups=1011(linuxea),1024(test) [root@docker-node1 ~]# -c:修改用户注释 -d:修改家目录 [root@docker-node1 ~]# tail -1 /etc/passwd user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/home/user8:/bin/bash [root@docker-node1 ~]# usermod -m -d /tmp/user8 user8 如果不加-m则会报su: warning: cannot change directory to /tmp/user8: No such file or directory -d是不会迁移家目录[root@docker-node1 ~]# tail -1 /etc/passwd user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/bin/bash [root@docker-node1 ~]# su - user8 Last login: Sun Jul 17 02:45:03 EDT 2016 on pts/0 [user8@docker-node1 ~]$ ls -s: shell [root@docker-node1 ~]# usermod -s /sbin/nologin user8 [root@docker-node1 ~]# tail -l /etc/passwd|grep user8 user8:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin [root@docker-node1 ~]# -l:修改登录名 [root@docker-node1 ~]# usermod -l linuxeacom1 user8 [root@docker-node1 ~]# tail -l /etc/passwd|grep user8 linuxeacom1:x:1024:1011:user8 backup,manila,150 8888 8888,119:/tmp/user8:/sbin/nologin [root@docker-node1 ~]# -L:锁定用户账号 [root@docker-node1 ~]# passwd -l linuxeacom1 Locking password for user linuxeacom1. passwd: Success -U:解锁 [root@docker-node1 ~]# passwd -u linuxeacom1 Unlocking password for user linuxeacom1. passwd: Warning: unlocked password would be empty. passwd: Unsafe operation (use -f to force) [root@docker-node1 ~]# 加锁和解锁区别去在配置文件中会多加两个!!,如下所示:[root@docker-node1 ~]# tail -1 /etc/shadow mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7::: 当使用-l时则会添加!![root@docker-node1 ~]# passwd -l mark1 Locking password for user mark1. passwd: Success [root@docker-node1 ~]# tail -1 /etc/shadow mark1:!!$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7::: -u取消[root@docker-node1 ~]# passwd -u mark1 Unlocking password for user mark1. passwd: Success [root@docker-node1 ~]# tail -1 /etc/shadow mark1:$6$XN4WjxlY$fSumbLmfUPTOnGdz0XdSLE5okMf39hnejX/KnrHqsdHzNx/3ADX1ldM..5mMmB5gZCUdMYdRSD.vMHeE4m9Pk.:16999:0:99999:7::: [root@docker-node1 ~]# 修改组属性定义:-n:修改新组名 [root@docker-node1 ~]# tail -1 /etc/group user9:x:1025: [root@docker-node1 ~]# groupmod -n linuxeacom1 user9 [root@docker-node1 ~]# tail -1 /etc/group linuxeacom1:x:1025: [root@docker-node1 ~]# -g: 修改gid [root@docker-node1 ~]# groupmod -g 10250 linuxeacom1 [root@docker-node1 ~]# tail -1 /etc/group linuxeacom1:x:10250: [root@docker-node1 ~]# 修改账号日期属性:chage-E:过期期限 -I:非活动期限 -m:最短使用期限 -M:最长使用期限 -W:警告区间这些时间passwd也可以定义示例:1,创建用户为123,其id为3000,基本组为centos(组id3003),附加组为linuxeagroupadd linuxea groupadd -g 3003 centos useradd u 3000 -g centos -G linuxea 123 2, 创建用户为redhat1,全名为redhat123,默认shell为nologinuseradd -c "redhat123" -s /sbin/nologin redhat1 3, 修改redhat1 ID号为4000,基本组为centos,附加组为linuxea和123usermod -u 4000 -g centos -G linuxea,123 redhat1 4, 添加redhat1密码,并设定密码最短试用期为30天,最长为35天passwd redhat1 chage -m 30 -M 35 redhat1 5, 将redhat1 Shell修改为bin/bashusermod -s /bin/bash redhat1 id使用显示uid[root@docker-node1 ~]# id -u linuxeacom1 1024显示gid[root@docker-node1 ~]# id -g linuxeacom1 1011显示所有gid[root@docker-node1 ~]# id -G linuxeacom1 1011 1024显示基本组组名[root@docker-node1 ~]# id -g -n linuxeacom1 linuxea显示附加组组名[root@docker-node1 ~]# id -G -n linuxeacom1 linuxea test [root@docker-node1 ~]# su切换后调用命令[root@docker-node1 ~]# su -l -c 'ls /tmp' mark -classpath.txt systemd-private-b6e5d402e0764baba1f123fba87fad8a-httpd.service-UCZo6x tomcat.txt daxiong systemd-private-b6e5d402e0764baba1f123fba87fad8a-mariadb.service-cMjOIQ user1 hsperfdata_root tcp-status.txt user2 httpNUB.txt tomcat2.txt user8 lib:lib.txt tomcat3.txt zabbix_java_gateway_logback.xml.txt [root@docker-node1 ~]#
2016年07月29日
3,838 阅读
0 评论
0 点赞
2016-07-21
linux基础之权限管理
权限管理read,write,executer,w,x 读写执行文件r:对于文件来将可以使用内容查看类的命令来显示其相关内容w: 可以使用编辑器修改其内容x: 可以将其发起一个进程目录r 对于目录而言读可以使用ls查看目录内部的文件信息,包括子目录w 可以创建删除文件x 可以使用ls -l命令查看目录内部内容的信息,并且可以使用cd命令切换到此目录如果用户的不拥有某位权限,则使用-占位符,表示不存在r-x 仅有则是可读可执行r-- 仅有只读权限rw- 仅有可读可写[root@docker-node1 ~]# ls -ltotal 8-rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh-rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh属主为读写执行,属组写和执行,其他用户则为执行权限这种变化可以用数字来表示,如果有则用1表示,如果没有则为0,没有用-占位:000:--- 0 没有权限001:--x 1 执行权限010: -w- 2 可写全系011: -wx 3 可写执行权限100: r-- 4 只读权限101: r-x 5 可读可执行110: rw- 6 可读可写权限111: rwx 7 可读可写可执行可读可写可执行则为:rwxrwxrwx 777可读可写权限则为:rw-rw-rw- 666只读则为:r--r--r-- 444读执行则为:r-xr-xr-x 555依次类推修改文件的属主属组只有管理员才有权限:chow,chgrp改文件权限:chmod操作三类用户的权限,使用八进制形式,操作指定类别用户的权限,使用u,g,o,a来授权也可以,并且可以基于=或+/-来进行,更可以参照其他文件权限为当前文件授权[root@docker-node1 ~]# ll -rwxr-xr-x. 1 root root 134 Dec 20 2040 in.sh [root@docker-node1 ~]# chmod 754 in.sh [root@docker-node1 ~]# ll in.sh -rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh 如果给的权限八进制不够三位,则只会给最右权限位的权限,这样的方式其实是不理想的。如下:[root@docker-node1 ~]# chmod 6 test/ [root@docker-node1 ~]# ll -ld test/ d------rw-. 2 shutdown root 6 Jul 17 08:05 test/ [root@docker-node1 ~]# 目录:当我们修改一个目录的权限是并不会修改其目录内的权限,如果修改其内部权限则-R,但是对符号链接文件无效操作指定类型用户权限:u: 属主g:属组o: 其他a:所有=:操作指定类别用户的权限+/-:操作指定类别用户的单个权限操作u属主[root@docker-node1 ~]# chmod u=rwx test/ [root@docker-node1 ~]# ll -ld test/ drwx---rw-. 2 shutdown root 6 Jul 17 08:05 test/ [root@docker-node1 ~]# 当然,也可以一起使用:[root@docker-node1 ~]# chmod ug=rwx test/ [root@docker-node1 ~]# ll -ld test/ drwxrwxrw-. 2 shutdown root 6 Jul 17 08:05 test/ [root@docker-node1 ~]# 如果属主属组权限不一致,也可分开写[root@docker-node1 ~]# chmod u=rwx,g=r,o= test/ o= 如果没有权限,则不写即可,也可以-R递归修改 [root@docker-node1 ~]# ll -ld test/ drwxr-----. 2 shutdown root 6 Jul 17 08:05 test/ [root@docker-node1 ~]# +/-号用法:u-x,g+r,o-x,+x修改单个权限。如下+rwu=,ug=,o=,g=[root@docker-node1 ~]# chmod -R g+rw,o= docker/ [root@docker-node1 ~]# ll -ld docker/ drwxrw----. 2 root root 21 Jul 17 08:12 docker/ -a所有[root@docker-node1 ~]# 如果要对属主属组添加x权限,则可如下(请注意,一旦-a则所有都会变成-a所指的权限,原本的将会被覆盖):[root@docker-node1 ~]# chmod -R a=x docker/ [root@docker-node1 ~]# ll -ld docker/ d--x--x--x. 2 root root 21 Jul 17 08:12 docker/ [root@docker-node1 ~]# +x,通常+x会变成可执行文件,颜色会绿色[root@docker-node1 ~]# chmod +x anaconda-ks.cfg [root@docker-node1 ~]# ll -ld anaconda-ks.cfg -rwx--x--x. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg [root@docker-node1 ~]# 参照权限,引用性修改[root@docker-node1 ~]# ll -l total 8 -rwx--x--x. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg d--x--x--x. 2 root root 21 Jul 17 08:12 docker -rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh -r-xr-xr-x. 1 root root 0 Jul 12 14:23 linuxea drwxr-----. 2 shutdown root 6 Jul 17 08:05 test [root@docker-node1 ~]# chmod --reference=/root/in.sh /root/anaconda-ks.cfg [root@docker-node1 ~]# ll -ld in.sh anaconda-ks.cfg -rwxr-xr--. 1 root root 932 Jun 30 13:19 anaconda-ks.cfg -rwxr-xr--. 1 root root 134 Dec 20 2040 in.sh [root@docker-node1 ~]#
2016年07月21日
2,935 阅读
0 评论
0 点赞
2016-07-14
linux基础之touch和stat
stat文本编辑器我们知道touch是创建文件,其实touch是用来修改文件的时间戳,同时 ,文件是有三个时间访问时间记录最近一次文件被访问时间,只要一个文件被打开,就意味着背后有一个相应的IO,打开是一个写IO(写访问时间到磁盘属性中)touch命令:[root@docker-node1 ~]# touch linuxea [root@docker-node1 ~]# file linuxea linuxea: empty [root@docker-node1 ~]# touch一个文件后,file其实是无法判断这个文件类型的,在touch一个不存在的文件时,默认是创建一个空文件,很多时候touch就被哪来用作创建空文件命令,这种默认是可以修改的,文件如果有则改时间戳,如果没有也不会创建文件[root@docker-node1 ~]# touch -c linuxea1 [root@docker-node1 ~]# ll linuxea1 ls: cannot access linuxea1: No such file or directory [root@docker-node1 ~]# 因此,如果仅仅只是修改时间戳,则可以使用-c选项stat命令:显示文件系统和文件的源或者说是属性信息[root@docker-node1 ~]# stat linuxea File: ‘linuxea’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 71359973 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2016-07-12 14:23:31.396999492 -0400 Modify: 2016-07-12 14:23:31.396999492 -0400 Change: 2016-07-12 14:23:31.396999492 -0400 Birth: - size:大小blocks:占据的磁盘块io block:一次io传递大小regular empty file:文件类型Device:存放的设备Inode: 71359973 inode号Links: 1 :链接次数Access: (0644/-rw-r--r--) :访问权限 Uid: ( 0/ root):UID 属主 Gid: ( 0/ root):GID 属组 三个时间戳Access: 2016-07-12 14:23:31.396999492 -0400 访问时间Modify: 2016-07-12 14:23:31.396999492 -0400 修改Change: 2016-07-12 14:23:31.396999492 -0400 状态改变时间stat查看修改时间戳:源时间[root@docker-node1 ~]# stat in.sh File: ‘in.sh’ Size: 134 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68352533 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2016-07-05 08:51:01.280561305 -0400 Modify: 2016-06-30 14:29:48.428395106 -0400 Change: 2016-06-30 14:29:52.828395524 -0400 Birth: - [root@docker-node1 ~]# touch一次后,修改为当下时间:[root@docker-node1 ~]# touch in.sh [root@docker-node1 ~]# stat in.sh File: ‘in.sh’ Size: 134 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68352533 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2016-07-12 14:39:33.524091028 -0400 Modify: 2016-07-12 14:39:33.524091028 -0400 Change: 2016-07-12 14:39:33.524091028 -0400 Birth: - [root@docker-node1 ~]# touch也可以指定时间:-t格式为:年月日小时分钟修改为2020年12月20号20时.20秒[root@docker-node1 ~]# touch -t 202012202020.20 in.sh [root@docker-node1 ~]# stat in.sh File: ‘in.sh’ Size: 134 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68352533 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2020-12-20 20:20:20.000000000 -0500 Modify: 2020-12-20 20:20:20.000000000 -0500 Change: 2016-07-12 14:45:23.777124351 -0400 Birth: - [root@docker-node1 ~]# 如上所示:由此可见,stat查看只能修改访问时间和修改时间,状态改变时间和系统当前时间一样[root@docker-node1 ~]# dateTue Jul 12 14:45:25 EDT 2016[root@docker-node1 ~]# 如果只想修改访问时间添加-a -t即可[root@docker-node1 ~]# touch -a -t 203012202020.20 in.sh [root@docker-node1 ~]# stat in.sh File: ‘in.sh’ Size: 134 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68352533 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2030-12-20 20:20:20.000000000 -0500 Modify: 2020-12-20 20:20:20.000000000 -0500 Change: 2016-07-12 14:47:46.772137955 -0400 Birth: - [root@docker-node1 ~]# 如果只想修改修改时间,-m -t即可[root@docker-node1 ~]# touch -m -t 204012202020.20 in.sh [root@docker-node1 ~]# stat in.sh File: ‘in.sh’ Size: 134 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68352533 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2030-12-20 20:20:20.000000000 -0500 Modify: 2040-12-20 20:20:20.000000000 -0500 Change: 2016-07-12 14:51:58.534161908 -0400 Birth: - [root@docker-node1 ~]# 只要你修改源数据,不管你修的是访问时间还是修改时间,状态改变时间都会变成当下修改那一刻的时间nano,vimlinux编辑器从界面来讲有两种,行编辑器,一次操作几行,sed流编辑器,第二种全屏编辑器,如nano,vim,vinano FILEnano常用操作ctrl+G 帮助ctrl+O 保存ctrl+R 读ctrl+Y 向上翻一页 ctrl+X 退出ctrl+W 查找ctrl+V 向下翻一页ctrl+K 剪切ctrl+U 取消
2016年07月14日
3,274 阅读
0 评论
0 点赞
1
2
3