小编All*_*ial的帖子

sshfs 挂载,sudo 权限被拒绝

我正在使用sshfs通过 ssh 将带有一些 python 项目的文件夹挂载到我的~/目录中。

$ mkdir -p ~/mount/my-projects
$ sshfs user@example.com:/home/user/my-projects ~/mount/my-projects
Run Code Online (Sandbox Code Playgroud)

我可以按预期执行大多数命令:

$ ls ~/mount/my-projects
some-python-project
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试对 做任何事情sudo,它会因权限被拒绝而失败:

$ sudo ls ~/mount/my-projects
ls: cannot access /home/user/mount/my-projects: Permission denied
Run Code Online (Sandbox Code Playgroud)

我真正想要完成的是在我的本地机器上测试 python 包安装脚本:

$ cd ~/mount/my-projects/some-python-project
$ sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)

ssh sudo sshfs

68
推荐指数
3
解决办法
8万
查看次数

强制 apt-get 提示是/否

有没有办法强制apt-get显示是/否提示?--force-yes存在一个选项,但似乎没有--force-prompt或类似的选项。如果您尝试安装已经安装了所有依赖项的软件包,它将开始安装而不显示是/否提示。如果您想查看依赖项是否存在以及将安装哪些依赖项,这可能会很麻烦,因为您不知道是否提前安装了潜在的依赖项。

注意:“apt-get install”什么时候会要求我确认是否要继续?有点相关,因为它描述了在什么标准条件下显示提示。我有兴趣知道如何强制它。

apt

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

重建旧的 Perl 模块

我刚刚在 Arch Linux ( pacman -Syu)上进行了系统更新,并看到了一个关于存在旧 Perl 模块的警告:

WARNING: '/usr/lib/perl5/site_perl' contains data from at least 2 packages which will NOT be used by the installed perl interpreter.
 -> Run the following command to get a list of affected packages: pacman -Qqo '/usr/lib/perl5/site_perl'
WARNING: '/usr/lib/perl5/vendor_perl' contains data from at least 8 packages which will NOT be used by the installed perl interpreter.
 -> Run the following command to get a list of affected packages: pacman -Qqo '/usr/lib/perl5/vendor_perl'
Run Code Online (Sandbox Code Playgroud)

运行推荐的命令产生以下结果:

$ pacman …
Run Code Online (Sandbox Code Playgroud)

arch-linux perl

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

解压不解压:注意:不解压;-d 忽略

我有一个 ZIP 存档foo.zip,其中一些文件未包含在目录中。我想将它们解压缩到本地foo目录。我正在尝试使用以下命令提取它们:

unzip -v foo.zip -d ./foo
Run Code Online (Sandbox Code Playgroud)

但是,输出说它没有提取:

caution:  not extracting; -d ignored
Archive:  foo.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
    2345  Defl:N     1234  47% 2018-07-16 00:00 0123456f  bar
    ...   ...         ...  ... ...        ...   ...       ...
--------          -------  ---                            -------
   34567            23456  32%                            n files
Run Code Online (Sandbox Code Playgroud)

为什么它忽略-d参数而不提取?

zip

6
推荐指数
1
解决办法
2650
查看次数

更改自己目录的所有者

我完全知道,非 root 用户不能将文件夹的所有者更改为另一个用户,即使该用户拥有它,除非他们使用sudo或拥有该权限CAP_CHOWN

有没有办法授予特定的非 root 用户权限以通过sudo或其他一些命令更改其拥有的目录的所有者,但不允许用户任意更改其不拥有的目录的所有者?

我有一台服务器(以非 root “myserver”用户身份运行)并希望它能够为本地用户创建特定目录,并且当它完成一个目录时,将它的所有者更改为所需的用户。

linux not-root-user chown

5
推荐指数
1
解决办法
887
查看次数

有效的屏幕会话名称

使用 GNU screen(第 4 版),为什么以下内容运行得很好:

$ screen -S some-name
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试/在会话名称中使用斜杠 ( ),则会出现有关多用户支持的错误。

$ screen -S some/name
Must run suid root for multiuser support.
Run Code Online (Sandbox Code Playgroud)

如果我尝试从屏幕内设置会话名称:

$ screen
C-a :sessionname some/name
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

: bad session name 'some/name'
Run Code Online (Sandbox Code Playgroud)

所以显然 a/是会话名称的无效字符。查看 screen手册页,我看不到任何关于以下内容的无效或保留字符sessionname

'-S 会话名称'

将新会话的名称设置为 sessionname。此选项可用于为会话指定一个有意义的名称来代替默认的 tty.host 后缀。此名称标识 screen -list 和 screen -r 命令的会话。此选项等效于 sessionname 命令(请参阅会话名称)。

8.5 会话名称——命令:sessionname [name]

(无)重命名当前会话。请注意,对于 screen -list,名称显示时带有进程 ID。如果省略参数名称,则显示此会话的名称。注意: $STY 环境变量仍然反映旧名称。这可能会导致混淆。默认值由 tty 和主机名构成。

此外,unmatched'"在会话名称中抱怨不匹配的引号,这似乎与语法有关。例如,:sessionname 'test"' …

gnu-screen

4
推荐指数
1
解决办法
2604
查看次数

仅当存在时才写入 FIFO

我看到的大多数关于写入 FIFO 的示例都说使用echoorcat命令并将标准输出重定向到文件。例如,

echo 'a' > /tmp/my_fifo
Run Code Online (Sandbox Code Playgroud)

但是,如果 FIFO 尚不存在,这将创建一个常规文件。是否有一些类似的东西,mkfifo但是如果它不存在就会失败?也就是说,类似于:

echo 'a' | write-to-existing-file /tmp/my_fifo
Run Code Online (Sandbox Code Playgroud)

shell bash io-redirection fifo

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

标签 统计

apt ×1

arch-linux ×1

bash ×1

chown ×1

fifo ×1

gnu-screen ×1

io-redirection ×1

linux ×1

not-root-user ×1

perl ×1

shell ×1

ssh ×1

sshfs ×1

sudo ×1

zip ×1