标签: not-root-user

如何以非 root 用户身份启动“屏幕”会话

有没有办法可以在我的 RHEL 机器上以非 root 用户身份打开一个新的“屏幕”会话?当我尝试以非 root 用户身份使用“screen”命令打开一个新屏幕时,它失败了,我收到以下消息:

Cannot open your terminal '/dev/pts/2' - please check.
Run Code Online (Sandbox Code Playgroud)

我进行了一些研究,发现有人建议更改 /dev/pts 上的权限,以授予非 root 用户(试图打开屏幕的用户)读/写访问权限。尽管它可能有效,但它看起来并不是一个巧妙的解决方案。是否有允许非 root 用户打开屏幕会话的“合法”方式?

编辑:我的 RHEL 5.5、6.2 和 6.5 机器上有这个问题。所有这些盒子上的屏幕版本都是“屏幕版本 4.00.03 (FAU) 23-Oct-06”。

PS:- 我知道我可以以 root 和 'su' 身份打开一个屏幕会话来启动我的命令/进程,但这不是我想要的。

users gnu-screen not-root-user

12
推荐指数
1
解决办法
2万
查看次数

如何在内核中启用 user_namespaces?(对于无特权的`unshare`。)

我的 Linux 内核在构建时必须使用user_namespaces进行配置,但它们的使用在启动后受到限制并且必须显式启用。我应该使用哪个 sysctl?

(如果它被打开,这将允许运行像 一样的隔离命令unshare --user --map-root-user --mount-proc --pid --fork,然后在chroot没有 root身份的情况下执行——这是 Linux 备受期待的特性。)

security not-root-user sysctl userns altlinux

11
推荐指数
1
解决办法
2万
查看次数

如何以非 root 用户身份创建文件系统?

我想以非 root 用户的身份创建一个文件系统映像,我面临的问题是我目前的做法是,它需要挂载,而非 root 用户无法挂载。

这就是我现在正在做的:

#!/bin/sh

IMG="app.ext4"
LBL="PIHU_APP"
MNT="/mnt/PIHU_APP"
APP="/home/buildroot/board/arctura/PIHU_APP/application"

#64MB:
dd if=/dev/zero of=$IMG bs=4096 count=16384

mkfs.ext4 $IMG
e2label $IMG $LBL

mkdir -p $MNT
mount -o loop $IMG $MNT
cp -r $APP $MNT
sync
umount $MNT
Run Code Online (Sandbox Code Playgroud)

我有完全的 root 访问权限,所以我可以设置/准备任何东西,但脚本将从非 root 帐户执行。

但是,我觉得可能有更好的方法甚至不需要安装,但我不确定..

filesystems mount dd not-root-user

11
推荐指数
3
解决办法
4317
查看次数

插入 USB 键盘时防止键盘布局重置

每当我插入 USB 键盘时,所有键盘的布局都会重置为某些系统默认值(美国布局,没有我想要的修饰符和其他键)。我已经在许多 Debian 和 Ubuntu 系统上观察到了这一点,包括 Ubuntu 16.04 和 18.04。这种行为已经存在很长时间了

我在没有桌面环境的情况下使用 X11(尽管一些 Gnome 恶魔往往会开始使用)。我… | xkbcomp - "$DISPLAY"在登录时使用 XKB(特别是)设置了我的键盘布局。

当我插入 USB 键盘时,我希望它具有我的布局,而不是系统布局。事实上,我希望系统能够继续使用我当前的布局来处理已经存在的键盘(如果有的话)和新插入的键盘。如果这是不可能的,我会满足于重新应用选择的布局。

同样,两个键盘上的重复率都设置为登录时的默认值,而不是我用xset r.

如何防止键盘热插拔重置键盘布局和重复率?或者失败了,我怎样才能至少让它重置为我选择的布局?

有一种相当笨拙的方式,即udev 规则。它很笨拙,因为它假定只有一个 X 服务器,而且最有问题的是,它假定用户具有 root 权限。我没有 root 权限,所以任何涉及设置 udev 规则或编辑的Xorg.conf方法在这里都不适用。

keyboard x11 hot-plug not-root-user keyboard-layout

11
推荐指数
1
解决办法
2508
查看次数

apt-get 自动补全

我目前正在运行 64 位 Debian Wheezy。

我在自动完成 apt-get 时遇到了一些麻烦。我已经安装了 bash-completion。

如果我在 shell 中以 root 身份登录,我可以对 apt-get 使用自动完成(例如:apt-get install wicd[tab][tab ]),它会显示所有匹配的包。但是,如果我尝试在另一个非 root 用户(即使使用 sudo)中为 apt-get 使用自动完成功能,它根本无法工作。我可以自动完成其他事情,比如文件名。

有什么帮助吗?

我的 .bashrc 和 /etc/profile 中有以下代码

 if [ -f /etc/bash_completion ]; then
      . /etc/bash_completion
 fi
Run Code Online (Sandbox Code Playgroud)

bash apt autocomplete not-root-user

10
推荐指数
2
解决办法
1万
查看次数

如何在 debian wheezy 上正确配置 sudoers 文件?

我看过很多博文说,做就够了

aptitude install sudo
su root
adduser USERNAME sudo
Run Code Online (Sandbox Code Playgroud)

但这只能保护aptitude,换句话说:

  • aptitude install sendmail会要求输入密码,你需要 sudo运行aptitude

  • apt-get install sendmail不会要求密码,不需要sudo权限

  • 如果您编辑受保护的文件,例如其中的文件etc不会要求输入密码,也不sudo需要任何权限

  • 您可以运行和停止服务apache,它不会要求输入密码,不需要sudo权限

如何解决这个问题?这是我的 sudoers 文件:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file. …
Run Code Online (Sandbox Code Playgroud)

root debian sudo not-root-user

10
推荐指数
2
解决办法
10万
查看次数

如何在 Linux 上以非 root 用户身份维护一个单独的(较新的)glibc / gcc / ... 堆栈

我们的计算集群运行一个非常旧的 CentOS 版本,有一个旧的内核(2.6.18),当然还有旧的库和二进制文件。因为更新整个事情需要在所有节点上进行大量工作,所以这不是一个选项。

我正在尝试编译和使用一个需要C++11更新版本gcc(和/或clang)的程序。因为我根本不想弄乱系统,所以我想在某些本地目录树中以非 root 用户身份执行此操作。

问题是,这gcc需要一个glibc比机器上存在的新的。因此,我需要保持一个独立的,新版本glibc在我的本地lib/所描述的树,可能是在这里

我迷失的地方是,如何将本地库的路径“硬编码”为所有必需的二进制文件,即gccg++等等?将 LD_LIBRARY_PATH 设置为我的本地lib/树会导致所有系统二进制文件不再工作(ELF file OS ABI invalid),因为他们想使用我的新libm.so/libc.so尚未编译它们。

所以,把它包起来:什么是保持一个较新的,局部的开发堆栈(含适当的方式glibcgcc并行等)旧系统没有乱搞的根源?

作为一个附带问题:当涉及到单独的glibc. 对我来说,当我尝试执行任何系统二进制文件(如ls)时,它会导致上述错误。怎么来的?我做错了什么还是这是预期的行为?

libraries centos software-installation not-root-user

10
推荐指数
1
解决办法
8529
查看次数

使用未安装在远程机器上的 shell

鉴于场景:

  • 远程机器:SSH服务器;用户没有管理员权限;
  • 机:SSH客户端;用户具有管理员权限。

如果用户本地登录到远程,希望使用未安装在远程上的 shell与远程交互,用户如何单独完成此操作?

示例:用户local上使用fish,并希望在remote上也使用它,但remote只安装了bashzsh

shell ssh not-root-user

9
推荐指数
1
解决办法
3571
查看次数

如何在运行时使用 nix 安装的库?

nix在我不是 root 的系统中以“单用户模式”使用(有关我的 nix 设置的描述,请参见下文)。

我想快速运行我的一个二进制文件,它与系统中不存在的库动态链接。

所以,我已经安装了库nix

$ nix-env -qa 'gmp'
gmp-4.3.2
gmp-5.1.3
$ nix-env -i gmp-5.1.3
Run Code Online (Sandbox Code Playgroud)

但是链接器仍然找不到该库:

$ ldd -r ../valencies 
../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies)
../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies)
    linux-vdso.so.1 =>  (0x00007fffbbf28000)
    /usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000)
    libgmp.so.10 => not found
    libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f4dcf748000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f4dcf540000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f4dcf33c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4dcf11f000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f4dced8b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4dcfde7000)
undefined …
Run Code Online (Sandbox Code Playgroud)

path dynamic-linking not-root-user nix altlinux

9
推荐指数
1
解决办法
9272
查看次数

为什么 debootstrap 只能以 root 身份运行?

我想使用debootstrap(创建 chroot 环境)下载 Debian 系统,当我运行时debootstrap stable ./dir $debian_ftpdebootstrap说:

E: debootstrap can only run as root
Run Code Online (Sandbox Code Playgroud)

为什么debootstrap没有root权限就不能运行?

debian not-root-user debian-installer debootstrap

9
推荐指数
1
解决办法
856
查看次数