问题

问题

问题

我安装了IntelliJ IDEA在我的系统上(/opt/jetbrains),并希望它能够修改其文件(进行自我更新)而不允许任何其他进程修改它们。


配置

我想到我需要一个系统用户,该/opt/jetbrains目录属于该用户,我将以该用户的身份运行 IDEA:

# Set up things
sudo mkdir /opt/jetbrains
sudo adduser --system --home /opt/jetbrains jetbrains
sudo chown jetbrains /opt/jetbrains

# Install IDEA
wget https://download.jetbrains.com/idea/ideaIU-2017.1.2.tar.gz -O idea.tar.gz
sudo -u jetbrains tar -xzf idea.tar.gz -C /opt/jetbrains/
rm idea.tar.gz

# Configure idea.desktop
# set the 'Exec' line, to run as user jetbrains

我尝试过

我读过了以没有密码的另一个用户身份运行 shell 脚本

我尝试了以下操作,但出现了错误,并且提示输入密码。

  • sudo su -c "/opt/jetbrains/idea-ultimate/bin/idea.sh" -s /bin/sh jetbrains
  • sudo -u jetbrains /opt/jetbrains/idea-ultimate/bin/idea.sh

两者输出:

No protocol specified

Start Failed: Failed to initialize graphics environment

java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
  at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
  at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
  at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
  at ...

我也尝试过gksu -w -u jetbrains gksu /opt/jetbrains/idea-ultimate/bin/idea.sh,但是它提示我输入用户的密码 - jetbrains,而他显然没有密码。

答案1

已经很晚了,但希望它能帮助到别人。我正在这样做:

xhost +SI:localuser:foxx1337 && sudo -u foxx1337 /opt/jetbrains/idea-ultimate/bin/idea.sh

这是基于 sim 在这里给出的精彩答复 -https://unix.stackexchange.com/questions/108784/running-gui-application-as-another-non-root-user

相关内容