当我要在终端中安装程序时,它需要密码:
[sudo] password for xxx:
Run Code Online (Sandbox Code Playgroud)
但是当我开始输入密码时,什么也没有发生。我该怎么办?
我有一个很小的脚本,我希望它在启动时运行,但它需要 sudo 权限,所以我使用 gksudo 来完成这项工作。但它失败了。(使用 sudo 可以正常工作。)除了接口之外,sudo 和 gksudo 之间有什么区别吗?
顺便说一句:这是我提到的小脚本:
#!/bin/bash
cat /sys/devices/platform/sony-laptop/kbd_backlight|if read state; then \
echo $((1-$state)) | sudo tee /sys/devices/platform/sony-laptop/kbd_backlight; fi;
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我为什么我在尝试添加存储库时会收到此错误,以及我可以做些什么?
当我尝试使用以下方法添加存储库时:
sudo add-apt-repository ppa:upubuntu-com/tor
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Command 'sudo' is available in '/usr/bin/sudo'
The command could not be located because '/usr/bin' is not included in the PATH
environment variable.
sudo: command not found
Run Code Online (Sandbox Code Playgroud) 我正在使用 Ubuntu 18.04。
我将/etc
文件夹重命名为apache2
. 那是我最大的错误
现在我无法将其重命名,因为我需要使用sudo
,但是当我尝试时出现错误
sudo: unknown uid 1000
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我没有可从中启动的实时系统,在恢复模式下,根终端打开但随后关闭说cannot open password database
.
我已经使用 GUI 安装了 Ubuntu,给自己一个密码和所有东西。我不记得复杂的过程。但是,让我担心的是我不知道以下密码:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Run Code Online (Sandbox Code Playgroud)
我只是不知道该怎么办。我没有遇到麻烦,但我只是想知道这里发生了什么。我还可以将自己锁定在目录之外:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Run Code Online (Sandbox Code Playgroud)
我只是有点困惑。我怎么能像这样把自己锁在外面?我认为sudo
是这里的关键命令。但是我正在通过 将foobs
文件尽可能打开chmod
,那么为什么它会将我锁定?
我已经阅读了很多关于 gksu 从许多 Linux 版本中删除的主题,包括 Ubuntu 18.04。许多人表示 gksu 是一种令人憎恶的东西,任何用户都不需要使用类似的东西。我有 2 个例子,据我所知,我必须有一些东西可以让我以 root 身份运行(不仅仅是为了编辑文件)。
首先,只有在(GUI)命令上打开加密文件夹后,我才需要启动 mysql。这意味着让启动 mysql 服务的加密系统运行一个脚本。这必须以 root 身份完成,所以我在那个要求我输入密码的启动脚本中使用 gksu。我还能如何从 GUI 系统启动服务?
我也以root身份运行Ubuntu系统备份,否则很多系统文件无法备份。所以桌面文件使用 gksu 开始备份。
pkexec 看起来很复杂,需要策略文件。这是唯一的选择吗,如果是,为什么它更安全?
类似问题的其他答案似乎并没有解决人们现在 gksu 不再存在(或更难找到......)的个人问题。我认为来自非专家用户的此类问题将从更详细的答案中受益。我现在有一些,所以想回答我自己的问题。
我有一个关于使用sudo
with output redirect的小问题>
。要启用 IP 转发,有人可以使用以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
执行此命令将拒绝权限,因为它需要 root 权限。但是,执行相同的命令sudo
也会导致权限被拒绝错误!输出重定向>
似乎没有继承前面命令的权限echo
。这是正确的吗?
作为一种解决方法,我这样做:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
这是最好的方法吗?我错过了什么吗?
请注意,这是一个示例,它适用于所有使用输出重定向的命令。
当我使用sudo
命令运行某些软件时,它显示如下错误
cannot connect to X server
Run Code Online (Sandbox Code Playgroud)
例如,如果我运行以下命令:
$ sudo gedit /etc/profile
Run Code Online (Sandbox Code Playgroud)
我收到以下命令
(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --binary-syntax --close-stderr'
exited with non-zero exit status 1:
Autolaunch error: X11 initialization failed.
Cannot open display:
Run 'gedit --help' to see a full list of available command line options.
Run Code Online (Sandbox Code Playgroud)
或者,如果我正在运行,则会super-boot-manager
出现以下错误
buc: cannot connect to X server
Run Code Online (Sandbox Code Playgroud)
请帮忙。
阅读这些问题和答案:
给我带来了另一个会给该命令的新用户带来问题的问题:
pkexec
方便使用?例如,在执行以下操作时:
(在终端中打开文件)
pkexec nano /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
(在 GUI 中打开文件)
pkexec gedit /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
最后一个得到以下错误:
pkexec must be setuid root
Run Code Online (Sandbox Code Playgroud)
现在这给我带来了以下问题:
如何配置pkexec
以避免得到这个?类似于如何sudo
/gksu
做同样的事情时的行为(他们只要求输入密码)。
如果适用,如何告诉它在第一次将其应用于命令(或如果可配置的情况下包括第一个命令)后不要求输入密码?
如果配置文件不存在,在哪里保存?
是否有用于配置pkexec
使用情况的 GUI 应用程序(策略工具包)?