有没有办法可以在我的 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' 身份打开一个屏幕会话来启动我的命令/进程,但这不是我想要的。
我的 Linux 内核在构建时必须使用user_namespaces进行配置,但它们的使用在启动后受到限制并且必须显式启用。我应该使用哪个 sysctl?
(如果它被打开,这将允许运行像 一样的隔离命令unshare --user --map-root-user --mount-proc --pid --fork,然后在chroot没有 root身份的情况下执行——这是 Linux 备受期待的特性。)
我想以非 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 帐户执行。
但是,我觉得可能有更好的方法甚至不需要安装,但我不确定..
每当我插入 USB 键盘时,所有键盘的布局都会重置为某些系统默认值(美国布局,没有我想要的修饰符和其他键)。我已经在许多 Debian 和 Ubuntu 系统上观察到了这一点,包括 Ubuntu 16.04 和 18.04。这种行为已经存在很长时间了。
我在没有桌面环境的情况下使用 X11(尽管一些 Gnome 恶魔往往会开始使用)。我… | xkbcomp - "$DISPLAY"在登录时使用 XKB(特别是)设置了我的键盘布局。
当我插入 USB 键盘时,我希望它具有我的布局,而不是系统布局。事实上,我希望系统能够继续使用我当前的布局来处理已经存在的键盘(如果有的话)和新插入的键盘。如果这是不可能的,我会满足于重新应用我选择的布局。
同样,两个键盘上的重复率都设置为登录时的默认值,而不是我用xset r.
如何防止键盘热插拔重置键盘布局和重复率?或者失败了,我怎样才能至少让它重置为我选择的布局?
有一种相当笨拙的方式,即udev 规则。它很笨拙,因为它假定只有一个 X 服务器,而且最有问题的是,它假定用户具有 root 权限。我没有 root 权限,所以任何涉及设置 udev 规则或编辑的Xorg.conf方法在这里都不适用。
我目前正在运行 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) 我看过很多博文说,做就够了
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) 我们的计算集群运行一个非常旧的 CentOS 版本,有一个旧的内核(2.6.18),当然还有旧的库和二进制文件。因为更新整个事情需要在所有节点上进行大量工作,所以这不是一个选项。
我正在尝试编译和使用一个需要C++11更新版本gcc(和/或clang)的程序。因为我根本不想弄乱系统,所以我想在某些本地目录树中以非 root 用户身份执行此操作。
问题是,这gcc需要一个glibc比机器上存在的新的。因此,我需要保持一个独立的,新版本glibc在我的本地lib/所描述的树,可能是在这里。
我迷失的地方是,如何将本地库的路径“硬编码”为所有必需的二进制文件,即gcc,g++等等?将 LD_LIBRARY_PATH 设置为我的本地lib/树会导致所有系统二进制文件不再工作(ELF file OS ABI invalid),因为他们想使用我的新libm.so/libc.so尚未编译它们。
所以,把它包起来:什么是保持一个较新的,局部的开发堆栈(含适当的方式glibc,gcc并行等)旧系统没有乱搞的根源?
作为一个附带问题:当涉及到单独的glibc. 对我来说,当我尝试执行任何系统二进制文件(如ls)时,它会导致上述错误。怎么来的?我做错了什么还是这是预期的行为?
鉴于场景:
如果用户从本地登录到远程,希望使用未安装在远程上的 shell与远程交互,用户如何单独完成此操作?
我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) 我想使用debootstrap(创建 chroot 环境)下载 Debian 系统,当我运行时debootstrap stable ./dir $debian_ftp,debootstrap说:
E: debootstrap can only run as root
Run Code Online (Sandbox Code Playgroud)
为什么debootstrap没有root权限就不能运行?