우리는 root 권한으로 무었인가를 하고자 할 때, sudo를 사용합니다. 그런데, gedit 등 GUI program을 사용할 때에는 gksudo를 사용하라는 권고를 받습니다.
그런데, 실제로 gedit를 사용해 보면, "sudo gedit"할 경우와 "gksudo gedit"를 할 경우에 모두 목적을 달성할 수 있습니다. 그 차이는 "sudo gedit"으로 사용하면 password를 terminal에서 물어보고 "gksudo gedit"을 사용하면 password를 묻는 창이 나타난다는 점, 그리고 "sudo gedit"을 사용하면 다음의 WARNING이 뜨고, "gksudo gedit"을 사용하면 WARNING이 없습니다. 따라서 "gksudo gedit"으로 사용하는 것이 맞기는 맞는 것 같습니다.
(gedit:5509): IBUS-WARNING **: The owner of /home/username/.config/ibus/bus is not root!
[url:1iiwfqn7]https://help.ubuntu.com/community/RootSudo[/url:1iiwfqn7]
gksudo가 뭐가 다르고, 왜 sudo 대신 gksudo를 사용해야 하는지 알아보려고 글을 검색해 보았더니 위의 글이 나왔고, 다음과 같이 설명하고 있습니다.
You should never use normal sudo to start graphical applications as Root. You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets HOME=~root, and copies .Xauthority to a tmp directory. This prevents files in your home directory becoming owned by Root. (AFAICT, this is all that’s special about the environment of the started process with gksudo vs. sudo).
위 문장을 직역하는 것이야 가능하지만, 그것이 실질적으로 무슨 의미를 가지는 것인지 모르겠습니다. 위 문장이 가진 의미에 대한 배경 설명을 해 주시면 감사하겠습니다. 혹은 sudo는 왜 GUI program에 적절하지 않고, gksudo를 사용하는 것이 적절한지 풀어서 설명해 주시면 감사하겠습니다.