linux上面命令执行过程 linux命令的执行过程是怎样的?新手必读( 四 )


umask计算
如root用户的默认umask为0022(第一个0 代表特殊权限位,这里先不考虑),创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022) 。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111) , 022权限二进制码为(000)(010)(010) 。
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了 。我们使用如下的简单的方法快速计算 。
上面的这个方法计算是非常方便的,为何得到奇数要+1呢?
文件的最大权限是666,都是偶数 , 你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的 。
就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3  , 6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的 , 相当于我们多减去了一个执行权限 。所以结果加1 。
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令 。
例:递归改变文件所有者和所有组 chown-Rhxr:hxr/mnt
例:
LINUX命令怎么执行NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本 。因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据 。同时 , 它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接 。
先来看下它的基本用法:
root@10.1.1.43:~# nc -h
[v1.10-38]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-c shell commands as `-e'; use /bin/sh to exec [dangerous!!]
-e filenameprogram to exec after connect [dangerous!!]
-ballow broadcasts
-g gatewaysource-routing hop point[s], up to 8设置路由器跃程通信网关,最高可设置8个 。
-G numsource-routing pointer: 4, 8, 12, ...设置来源路由指向器,其数值为4的倍数 。
-hthis cruft
-i secsdelay interval for lines sent, ports sca延时的间隔
-kset keepalive option on socket
-llisten mode, for inbound connects监听模式,入站连接
-nnumeric-only IP addresses, no DNS直接使用ip地址,而不用域名服务器
-o filehex dump of traffic指定文件名称 , 把往来传输的数据以16进制字码倾倒成该文件保存 。
-p portlocal port number本地端口
-rrandomize local and remote ports随机本地和远程端口
-q secsquit after EOF on stdin and delay of secs
-s addrlocal source address
-T tosset Type Of Service
-tanswer TELNET negotiation
-uUDP modeudp模式
-vverbose [use twice to be more verbose]显示过程,vv 更多
-w secstimeout for connects and final net reads等待连接超时
-zzero-I/O mode [used for scanning]使用输入/输出模式,只在扫描通信端口时使用 。
1.监听本地端口
root@10.1.1.43:~# nc -l -p 1234
root@10.1.1.43:~# netstat -tunlp | grep 1234
tcp00 0.0.0.0:12340.0.0.0:*LISTEN15543/nc
2.端口扫描
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 80
(UNKNOWN) [10.1.1.180] 80 (www) open
root@10.1.1.43:~# nc -v -w 10 10.1.1.180 -z 80-30000
(UNKNOWN) [10.1.1.180] 22000 (?) open
(UNKNOWN) [10.1.1.180] 80 (www) open
3.文件传出
源10.1.1.43 text.txt
目的 10.1.1.180
root@10:~# nc -l -p 1234test.txt#开10.1.1.180:1234端口监听 , 并将socket传输过来的数据重定向到test.txt文件 test 43 nc
root@10.1.1.43:~#cat test.txt
root@10.1.1.43:~# nc10.1.1.180 1234test.txt#连接远程的10.1.1.180,从test.txt的路径从定向到socket,从而将文件传输到远方 。

推荐阅读