Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
使用.bashrc保持X11转发_Bash_X11_Sudo - Fatal编程技术网

使用.bashrc保持X11转发

使用.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) 不幸的是,在锁定权限

当我切换到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)

不幸的是,在锁定权限文件~/.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_用户变量。它不是生产系统。这纯粹是在开发环境中使用的。