使用.bashrc保持X11转发
当我切换到root(sudosu)时,我首先必须以自己的身份运行使用.bashrc保持X11转发,bash,x11,sudo,Bash,X11,Sudo,当我切换到root(sudosu)时,我首先必须以自己的身份运行xauth list,然后在成为root之后运行xauth add。通过运行xauth add$(xauth-f~/.xaauthority list | tail-1),我发现了一个很好的小贴士,可以让这变得更容易。这很好,但我想让它自动化 因此,我进入/root/.bashrc并添加了以下内容: xauth add$(xauth-f~$SUDO\u USER/.Xauthority list|tail-1) 不幸的是,在锁定权限
xauth list
,然后在成为root之后运行xauth add
。通过运行xauth add$(xauth-f~/.xaauthority list | tail-1)
,我发现了一个很好的小贴士,可以让这变得更容易。这很好,但我想让它自动化
因此,我进入/root/.bashrc并添加了以下内容:
xauth add$(xauth-f~$SUDO\u USER/.Xauthority list|tail-1)
不幸的是,在锁定权限文件~/.Xauthority
如果我用我的用户名替换$SUDO_USER,它就可以工作了。显然$SUDO_USER设置正确,因为它知道如何查找正确的权限文件。那么,这里发生了什么?您可以在两个单独的连续语句中执行此操作,以避免这种锁定,例如:
xauthval=$(xauth -f ~YOUR_USER_NAME/.Xauthority list|tail -1)
(( $? == 0 )) && xauth add ${xauthval}
出于安全原因,您可能不希望在生产系统上执行此操作。您可以在两个单独的连续语句中执行此操作以避免此锁定,例如:
xauthval=$(xauth -f ~YOUR_USER_NAME/.Xauthority list|tail -1)
(( $? == 0 )) && xauth add ${xauthval}
出于安全原因,您可能不希望在生产系统上执行此操作。~
在变量插值之前完成。如果您进行扫描,您将看到实际错误是没有这样的文件或目录
openat(AT_FDCWD, "~<myuser>/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 ENOENT (No such file or directory)
write(2, "xauth: error in locking authori"..., 62xauth: error in locking authority file ~<myuser>/.Xauthority
openat(AT_FDCWD,“~/.Xauthority-c”,O_WRONLY | O|u CREAT | O|u EXCL,0600)=-1 enoint(无此类文件或目录)
写入(2,“xauth:error in locking authority”…,62xauth:error in locking authority file~/.Xauthority
在变量插值之前,使用/home/$SUDO\u USER/.Xauthority
代替~
。如果执行一次扫描,您将看到实际错误是没有这样的文件或目录
openat(AT_FDCWD, "~<myuser>/.Xauthority-c", O_WRONLY|O_CREAT|O_EXCL, 0600) = -1 ENOENT (No such file or directory)
write(2, "xauth: error in locking authori"..., 62xauth: error in locking authority file ~<myuser>/.Xauthority
openat(AT_FDCWD,“~/.Xauthority-c”,O_WRONLY | O|u CREAT | O|u EXCL,0600)=-1 enoint(无此类文件或目录)
写入(2,“xauth:error in locking authority”…,62xauth:error in locking authority file~/.Xauthority
改为使用
/home/$SUDO\u USER/.Xauthority我尝试了一些类似的方法,但没有效果。我不想把我的用户名放在那里,我想使用SUDO\u用户变量。它不是一个生产系统。这纯粹是为了在开发环境中使用。我尝试了一些类似的方法,但没有效果。我不想要将我的用户名放在那里,我想使用SUDO_用户变量。它不是生产系统。这纯粹是在开发环境中使用的。