为什么 Linux 要求用户是根用户/使用 sudo/每个挂载特别授权才能挂载某些东西?关于是否允许用户挂载某些东西的决定似乎应该基于他们对源卷/网络共享和挂载点的访问权限。非根挂载的几个用途是将文件系统映像挂载到用户拥有的方向,并将网络共享挂载到用户拥有的目录。似乎如果用户可以控制安装方程的两边,一切都应该很酷。
访问限制说明:
我觉得我应该能够挂载用户可以访问的任何内容,否则用户将拥有该用户拥有的挂载点。
例如,在我的计算机上, /dev/sda1 由用户 root 和具有权限的组磁盘拥有brw-rw----。因此,非 root 用户不能弄乱 /dev/sda1 并且显然 mount 不应该允许他们挂载它。但是,如果用户拥有 /home/my_user/my_imagefile.img 和挂载点 /home/my_user/my_image/ 为什么他们不能在该挂载点上挂载该图像文件:
mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop
Run Code Online (Sandbox Code Playgroud)
正如科尔马克指出的那样,存在一个 suid 问题。因此,必须添加一些限制以防止 suid 成为问题以及潜在的其他一些问题。也许一种方法是让操作系统将所有文件视为属于进行安装的用户。但是对于简单的读/写/执行,我不明白为什么这会是一个问题。
用例:
我在实验室有一个帐户,我的家庭空间限制为 8GB。这是很小的,非常非常烦人。我想从我的个人服务器安装一个 nfs 卷,以从本质上增加我拥有的空间量。然而,因为 Linux 不允许这样的事情,我被困在 scp 文件来回保持在 8GB 限制之下。
我正在学习设备驱动程序和内核编程。根据 Jonathan Corbet 的书,main()设备驱动程序中没有功能。
所以我有两个问题:
main()设备驱动程序中的函数?main()功能吗?谁可以给我解释一下这个?
我在系统中看到了一个 crontab 记录。
0-55/5 * * * * root <command>
Run Code Online (Sandbox Code Playgroud)
我阅读了crontab -e示例文件,我知道第一个位置代表分钟。但我无法弄清楚/(斜线)那里的含义。谁能给我解释一下意思?
今天我通过这篇文章学习了一些关于 fifo 的东西:命名管道简介,其中提到了cat <(ls -l).
我使用 做了一些实验sort < (ls -l),它弹出一个错误:
-bash: syntax error near unexpected token `('`
Run Code Online (Sandbox Code Playgroud)
然后我发现我在命令中错误添加了一个额外的空格。
但是,为什么这个额外的命令会导致这个失败呢?为什么重定向符号必须靠近(?
我想知道将交换分区放入逻辑卷组是否有任何缺点(例如性能),还是与将其作为单独的主/逻辑分区“完全相同”?
我喜欢这样一个事实,即它可以在必要时轻松调整大小,但不确定可能的缺点。
应用案例:CentOS 7 Webserver。
我正在尝试使用 mount 命令进行olddir访问newdir:
mount olddir newdir
Run Code Online (Sandbox Code Playgroud)
为什么会出现以下错误?
mount: olddir 不是块设备
我是脚本新手……我可以做非常基本的事情,但现在我需要帮助。
我有一个本地文件系统,只有在需要备份时才会挂载。
我从这个开始。
#!/bin/bash
export MOUNT=/myfilesystem
if grep -qs $MOUNT /proc/mounts; then
echo "It's mounted."
else
echo "It's not mounted."; then
mount $MOUNT;
fi
Run Code Online (Sandbox Code Playgroud)
正如我所说,我在脚本方面非常基础。我听说你可以mount通过查看返回码来检查命令的状态。
RETURN CODES
mount has the following return codes (the bits can be ORed):
0 success
1 incorrect invocation or permissions
2 system error (out of memory, cannot fork, no more loop devices)
4 internal mount bug
8 user interrupt
16 problems writing or locking /etc/mtab
32 mount failure
64 some mount succeeded
Run Code Online (Sandbox Code Playgroud)
我不知道如何检查。任何指导?