在 Ubuntu 12.04 上,当我sudo -s
的 $HOME 变量没有改变时,如果我的普通用户是regularuser
,情况是这样的:
$ cd
$ pwd
/home/regularuser
$ sudo -s
# cd
# pwd
/home/regularuser
Run Code Online (Sandbox Code Playgroud)
我很久以前就放弃了 Ubuntu,所以我不能确定,但我认为这是默认行为。所以,我的问题是:
一季度。这是怎么做的?配置在哪里?
Q2。如何禁用它?
编辑: 感谢您的回答,这使事情澄清了一点,但我想我必须添加几个问题,以获得我正在寻找的答案。
Q3。在 Debian 中sudo -s
,将 $HOME 变量更改为/root
. 从我从答案中得到的信息和man sudo
shell 运行的sudo -s
是 中给出的那个/etc/passwd
,对吗?
第 4 季度。但是,在 Ubuntu 和 Debian 上,/etc/passwd
为 root提供的 shell都是/bin/bash
. 在任一系统中,就 $HOME 而言,我找不到.profile
或.bashrc
文件的差异在哪里,因此行为sudo -s
不同。这有什么帮助吗?
在 Debian 测试 (Jessie) 上,当我尝试在virtualenv
via 中安装 PIL 或 Pillow(python 成像库)时,出现pip
以下错误:
running egg_info
writing Pillow.egg-info/PKG-INFO
writing top-level names to Pillow.egg-info/top_level.txt
writing dependency_links to Pillow.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found
reading manifest file 'Pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pillow.egg-info/SOURCES.txt'
running build_ext
building 'PIL._imaging' extension
creating build/temp.linux-x86_64-2.7/libImaging
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imaging.c -o build/temp.linux-x86_64-2.7/_imaging.o
_imaging.c:76:20: fatal error: Python.h: No such file or …
Run Code Online (Sandbox Code Playgroud) 我有兴趣了解终端的命令输出是否记录在某处。
既然这可能有点太笼统了,那么cat
(和ccat
) 具体呢?如果我cat
在文件上使用,我在终端上获得的输出会记录在某个地方吗?
据我了解,/etc/apt/apt.conf
Squeeze 的文件/etc/apt/apt.conf.d/
在 Wheezy的目录下被拆分成单独的文件。
在Debian的维基尚未更新,它似乎包含的信息仅约/etc/apt/apt.conf.d/70debconf
。
无论如何,我对配置apt并不完全熟悉,除了只是编辑/etc/apt/sources.list
,我有点迷失在这里。我机器上的目录结构是:
/etc/apt/apt.conf.d/
00aptitude
00CDMountPoint
00trustcdrom
01autoremove
20listchanges
20packagekit
70debconf
Run Code Online (Sandbox Code Playgroud)
我的问题是:
即使在我重新启动或注销然后登录后,我也希望无密码 ssh 仍然存在。不知何故,我必须运行 ssh-agent 并在登录时使用命令 ssh-add。在教程中,我读到我应该将以下行添加到.bashrc
:
ssh_agent="$HOME/.ssh-agent.sh"
if [ -f $ssh_agent ]
then
source $ssh_agent > /dev/null
fi
Run Code Online (Sandbox Code Playgroud)
同时,教程中提到
虽然 ssh-agent 正在运行您的所有进程(包括您的 cron 作业),但不需要密码。但是,如果 ssh-agent 死亡或被杀死,由于旧设置被遗留下来,事情可能会出错。
我想要一种安全的方法,即使在我重新启动/重新登录后,它也允许我在没有密码的情况下使用 ssh。有什么建议?
我有三个系统,我想让它们定期在它们之间进行备份。他们两个安装了 Debian Wheezy,另一个安装了 Ubuntu 12.04。只有 Ubuntu 有 GUI 环境,而其他两个只有 CLI。
对于备份,我想用rsync
通过ssh
,与Debian的系统作为备份的目的地。我整理了命令并在系统之间正确生成和复制了 ssh 密钥,但是由于 Debian 系统没有安装图形环境,因此ssh-agent
不会自动运行。因此,每当我尝试ssh
使用 Debian 系统时,都会提示输入密码。
有没有办法跳过提示?据我所知ssh-agent
,当我只有 CLI 时,我不能使用。我正在寻找一种解决方案,即使在重新启动后我也不需要在重新启动后做任何事情,它也能工作。
提前致谢。