Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 通过shell脚本替换/etc/fstab文件中的noexec to exec选项_Linux_Shell_Exec_Tmp_Fstab - Fatal编程技术网

Linux 通过shell脚本替换/etc/fstab文件中的noexec to exec选项

Linux 通过shell脚本替换/etc/fstab文件中的noexec to exec选项,linux,shell,exec,tmp,fstab,Linux,Shell,Exec,Tmp,Fstab,只有noexec to exec的/tmp选项应该更改。noexec to exec的/var/tmp选项不应更改 /etc/fstab的内容 UUID=f229a689-a31e-4f1a-a823-9a69ee6ec558 / xfs defaults 0 0 UUID=eeb1df48-c9b0-408f-a693-38e2f7f80895 /boot xfs defaults 1 2 UU

只有noexec to exec的/tmp选项应该更改。noexec to exec的/var/tmp选项不应更改

/etc/fstab的内容

UUID=f229a689-a31e-4f1a-a823-9a69ee6ec558       /         xfs     defaults        0 0
UUID=eeb1df48-c9b0-408f-a693-38e2f7f80895       /boot         xfs     defaults        1 2
UUID=b41e6ef9-c638-4084-8a7e-26ecd2964893       swap      swap    defaults        0 0
UUID=79aa80a1-fa97-4fe1-a92d-eadf79721204       /var         xfs     defaults        1 2
UUID=644be3d0-433c-4ed5-bf12-7f61d5b99860       /tmp         xfs     defaults,nodev,nosuid,noexec        1 2
UUID=decda446-34ac-45b6-826c-ae3f090ed717       /var/log         xfs     defaults        1 2
UUID=a74170bc-0309-4b3b-862e-722fb7a6882d       /var/tmp         xfs     defaults,nodev,nosuid,noexec        1 2

使用
awk

$ cat 1.awk
$2=="/tmp"  { n=split($4,a,",");
              str=""
              for (i=1; i <= n; i++ ) {
                  if (a[i] != "noexec") {
                      if (length(str))
                          str=str","
                      str=str""a[i]
                   }
              }
              $4=str; print }
$2 != "/tmp" { print }

$ awk -f 1.awk fstab
UUID=f229a689-a31e-4f1a-a823-9a69ee6ec558       /         xfs     defaults        0 0
UUID=eeb1df48-c9b0-408f-a693-38e2f7f80895       /boot         xfs     defaults        1 2
UUID=b41e6ef9-c638-4084-8a7e-26ecd2964893       swap      swap    defaults        0 0
UUID=79aa80a1-fa97-4fe1-a92d-eadf79721204       /var         xfs     defaults        1 2
UUID=644be3d0-433c-4ed5-bf12-7f61d5b99860 /tmp xfs defaults,nodev,nosuid 1 2
UUID=decda446-34ac-45b6-826c-ae3f090ed717       /var/log         xfs     defaults        1 2
UUID=a74170bc-0309-4b3b-862e-722fb7a6882d       /var/tmp         xfs     defaults,nodev,nosuid,noexec        1 2
$cat 1.awk
$2==“/tmp”{n=split($4,a,,”);
str=“”
对于(i=1;i),您的/var/log行中没有noexec。是否有理由
sed
不做您想做的事情?