gksu -- -S 마운트... gksu의 -S는 무엇을 의미합니까?

gksu -- -S 마운트... gksu의 -S는 무엇을 의미합니까?

-S mount nfs -o proto=tcp,port=2049 … etc.그래서 다른 Linux 시스템의 위치를 ​​마운트하기 위한 스크립트가 있습니다 . 무슨 뜻이에요 -S? 이 기능이 있든 없든 잘 작동하는 것 같습니다( gksu -- -S mount … etc.터미널 에뮬레이터 없이 실행하면 작동하지 않습니다). 어떤 이유에서인지 실제로 필요한지, 아니면 아무런 결과 없이 업무 -S를 위해 버릴 수 있는지 궁금합니다 .gksu --

편집증을 보호하기 위해 IP 주소와 경로를 변경하여 참조용으로 작성한 스크립트는 다음과 같습니다.

#!/bin/bash

if mountpoint -q /home/myLaptop/myDesktop
then
  notify-send -t 3000 "Warning" "It is already mounted."
else
  gksu -- -S mount -t nfs -o proto=tcp,port=2049 192.168.0.x:/home/myLaptop /home/myLaptop/myDesktop
  if mountpoint -q /home/myLaptop/myDesktop
  then
    notify-send -t 3000 "Alert" "Mounted."
  else
    notify-send -t 3000 "Alert" "Mount failed."
  fi
fi

답변1

--"옵션 끝"을 나타냅니다. 후속 인수는 대시로 시작하더라도 옵션으로 간주되지 않습니다. 이것은 준 보편적인 관례입니다. 따라서 gktu -- -S mount …명령을 실행하는 것을 의미합니다 -S.

$ gksu -- -S whoami
sh: 0: Illegal option -S

대신 사용하도록 -S옵션을 전달 하려는 것 같습니다 . 그것이 먼저 와야 합니다 .gksusudosu--

$ gksu -S -- whoami
root

실제로 그렇게 해야 합니다. 그렇지 않으면 옵션 이 에 대한 것이 아니라 그 자체에 대해 고려되기 --때문 입니다 .gksu-omount

답변2

제가 수락한 다른 답변과 약간의 혼동이 있기 때문에 제 질문에 정확히 답변하는 답변을 직접 작성하겠습니다. 원래의.

-S처음에 가정했던 것처럼 별도의 명령이 아닙니다. 그것은 어느 쪽과도 관련이 없습니다 mount. 이는 sudoand/or에 대한 인수 입니다 gksu(사용하는 명령에 따라 다른 작업을 수행합니다). (그래서 gksu -S --대신 사용해야 합니다 gksu -- -S.) 그래서 그것이 -S제가 알고 싶은 것입니다. 그러나 그 이상의 의미를 설명하기 위해 도움말을 인용하겠습니다.

  • gksu -S"GKSu가 "gksudo"로 실행된 것처럼 su 대신 sudo를 사용하도록 하세요."라는 뜻입니다.
  • sudo -S"표준 입력에서 비밀번호를 읽습니다"를 의미합니다.

gksu -S더 쉽고 가독성 있게 사용할 수 있다면 굳이 사용할 필요도 없을 것 같습니다 gksudo. sudo -S반면에 비밀번호에는 어느 정도 중요성이 있을 수 있습니다.

루트(실제로는 루트가 아님)로 명령을 실행하면 됩니다. 이것이 바로 Without 대신 gksudoor 를 사용하는 이유입니다 .gksu -Sgksu-S

---S의 일부라도 여전히 거기에 있어야 합니다 . gksu그렇지 않으면 -o매개변수로 해석됩니다 gksu.

따라서 수정된 코드는 다음과 같습니다.

#!/bin/bash

if mountpoint -q /home/myLaptop/myDesktop
then
  notify-send -t 3000 "Warning" "It is already mounted."
else
  gksudo -- mount -t nfs -o proto=tcp,port=2049 192.168.0.x:/home/myLaptop /home/myLaptop/myDesktop
  if mountpoint -q /home/myLaptop/myDesktop
  then
    notify-send -t 3000 "Alert" "Mounted."
  else
    notify-send -t 3000 "Alert" "Mount failed."
  fi
fi

관련 정보