作为非 root 用户,我正在运行一个进程。进程二进制文件被赋予了 cap_sys_resource 能力。即使该进程由同一用户拥有,该用户也无法读取其 /proc//fd 目录。/proc/pid 中的权限如下所示:
dr-xr-xr-x. 9 ec2-user ec2-user 0 May 12 01:03 .
dr-xr-xr-x. 249 root root 0 Apr 3 13:34 ..
dr-xr-xr-x. 2 ec2-user ec2-user 0 May 12 01:03 attr
-rw-r--r--. 1 root root 0 May 12 01:04 autogroup
-r--------. 1 root root 0 May 12 01:03 auxv
-r--r--r--. 1 root root 0 May 12 01:04 cgroup
--w-------. 1 root root 0 May 12 01:04 clear_refs
-r--r--r--. 1 root root 0 May 12 01:03 cmdline …
Run Code Online (Sandbox Code Playgroud) 使用该工具的目的和好处是什么 --system
添加用户甚至组时选项什么?
我想知道为什么我看到这被添加到许多 Docker 容器中并被推荐为最佳实践?
例如,我将一个非 root 用户添加到 Alpine Docker 容器中,以便在开发和运行时再次使用。
我使用的当前版本是:
手册页上写着“创建系统用户”,好的,但是作为系统用户,您会得到什么?或者在使用addgroup -S
.
我没有系统管理员背景,所以我不确定这意味着什么,并且想知道什么时候应该使用它?
搜索 Google 提供了一些见解,但无法验证我所阅读的内容。它不会要求您为用户设置密码,但是我可以使用
--disabled-password
它。
然后我在这里找到了这篇文章,我知道它是出于组织目的,但对我也没有多大帮助。我只是更清楚一点,但没有足够的信心来解释何时使用它们。
我有一个应用程序可以侦听端口上的连接,但我偶尔会将其关闭以进行更新等。我想要一种配置系统的方法,如果该程序正在运行,则对该端口的请求将发送到该应用程序,但如果它没有运行,则请求将被定向到某个其他应用程序(可以返回“暂时不可用”)信息)。实现这一目标的最简单方法是什么?
我在目标机器上没有 root 访问权限,所以我宁愿避免像iptables
. 我考虑过一个辅助应用程序,它只将连接路由到其他两个应用程序,但我希望有一种更简单的方法
我试图安装一个名为“devtools”的 R 包,但没有成功。
ERROR: dependencies ‘curl’, ‘openssl’ are not available for package ‘httr’
* removing ‘/misc/u32/huang/.R325/lib64/R/library/httr’
ERROR: dependencies ‘httr’, ‘git2r’ are not available for package ‘devtools’
* removing ‘/misc/u32/huang/.R325/lib64/R/library/devtools’
Run Code Online (Sandbox Code Playgroud)
原来我需要安装“Curl”,它需要以root身份执行安装命令
有没有办法解决这个问题?也许只是安装 curl 正在进行本地目录?啧!
我知道我可以通过解析以下输出来找到当前正在使用的网络接口:
# ifconfig
Run Code Online (Sandbox Code Playgroud)
或者
# route
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能以非 root 用户的身份获取这些信息呢?有没有办法可以建立这样的
$ magic-command
Run Code Online (Sandbox Code Playgroud)
其输出中会none
lo
或者wlan0
或者eth0
根据设备的使用..甚至enp3s0f1
或wlp2s0
在异国情调的系统,没有管理员权限?
在我的 Linux Red Hat 机器上,我从 root 执行以下操作
# su - starus
$ <-- now I am in starus user
$ su - moon <-- now I want to access moon user from starus user
Password:
Run Code Online (Sandbox Code Playgroud)
但是我被提示输入密码!
如果已经在visudo
下面添加了密码,请告知为什么我会得到密码
moon ALL=(starus) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
怎么了?
我还尝试以用户 moon 运行以下脚本,但需要密码
starus@host sudo -u moon /home/USER261/test.bash
[sudo] password for starus:
Run Code Online (Sandbox Code Playgroud) 对于一个特定的用户,我希望能够重新启动 Apache。该用户确实具有 sudo 权限,我可以运行sudo /etc/init.d/apache2 reload
,但我想将此重启脚本包含在 git post-receive 挂钩中。所以这会提示输入密码并失败。所以问题是:在不需要 sudo 的情况下,允许该用户重新启动 apache 的正确方法是什么?我想将选项限制为仅重新启动 Apache,并且仅此特定用户。
于是我进入了我的classrom,安装了Debian,和gcc 4.1。我想为我自己的 GCC 4.7 安装(从源代码编译是一个选项 - 我有时间..)并在 bash 中将它作为 gcc 在任何地方寻址。这样的事情可能吗?怎么做?
以 root 身份调用 dhclient 在我的 debian 机器上运行良好。但是,我也希望允许某些用户执行 dhclient。到目前为止,我已经尝试了这两个例子:
示例 1:当普通用户调用
user@box:~$ dhclient
Run Code Online (Sandbox Code Playgroud)
……,结果是:
bash: dhclient: command not found
Run Code Online (Sandbox Code Playgroud)
例2:我也试过
user@box:~$ /sbin/dhclient
Run Code Online (Sandbox Code Playgroud)
...,并得到
[...]
can't create /var/lib/dhcp3/dhclient.leases: Permission denied
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFFLAGS: Permission denied
Open a socket for LPF: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
现在...我觉得将整个 /sbin 目录 chmod 以供用户访问既不是一个好主意(或者行不通),而且在上面的第二个示例中 chmod dhclient 抱怨的所有内容似乎也不优雅。解决此问题的最佳和最安全的方法是什么?
not-root-user ×10
permissions ×3
linux ×2
networking ×2
root ×2
apache-httpd ×1
capabilities ×1
compiling ×1
curl ×1
debian ×1
dhcp ×1
docker ×1
ethernet ×1
gcc ×1
git ×1
ip ×1
proc ×1
tcp ×1
users ×1
wifi ×1