二进制/可执行文件的写权限:它们是必要的吗?

二进制/可执行文件的写权限:它们是必要的吗?

我想:

echo hello world > /usr/bin/firefox

会在浏览器中显示该消息。什么也没发生。然后我尝试:

echo hello world > /usr/bin/kwrite

看看 kwrite 是否打开时会先输入“hello world”。同样,什么也没发生。然后尝试执行这两个命令后:

computer:~$ kwrite
/usr/bin/kwrite: line 1: hello: command not found
computer:~$ firefox
/usr/bin/firefox: line 1: hello: command not found

正在做ls -l /usr/bin/

-rwxr-xr-x 1 root   root     182576 2012-08-21 06:42 apt-ftparchive
-rwxr-xr-x 1 root   root     116996 2012-08-21 06:41 apt-get
-rwxr-xr-x 1 root   root    2151596 2011-10-20 21:45 aptitude
-rwxr-xr-x 1 root   root       1939 2011-10-20 21:45 aptitude-create-state-bundle
-rwxr-xr-x 1 root   root       3007 2011-10-20 21:45 aptitude-run-state-bundle
-rwxr-xr-x 1 root   root       7336 2012-08-21 06:41 apt-key
lrwxrwxrwx 1 root root   20 2012-12-29 10:41 /usr/bin/firefox -> /opt/firefox/firefox
-rwxr-xr-x 1 root root 5476 2010-11-17 04:58 /usr/bin/kwrite
-rwxr-xr-x 1 root   root     181104 2010-02-16 01:40 zip
-rwxr-xr-x 1 root   root       1184 2011-01-21 23:49 zxpdf

我系统上的二进制文件/usr/bin(和其他 bin 文件夹)至少具有用户写入权限(?)。所以我实际上做的是对于可执行文件‘hello world’,虽然它/usr/bin/kwrite是一个二进制执行文件,但却/opt/firefox/firefox是一个shell脚本

所以很明显,可执行文件容易发生此类事故。所以我想问一下是否需要写入权限。我想关闭它,但我想确保我没有遗漏任何东西。

答案1

首先,您必须尝试echo hello world > /usr/bin/kwrite以 root 身份进行操作,因为所有w或写入位都是

对于用户和组,请关闭-rwxr-xr-x。对于你的第二个问题,只有 root 才有权写入

大多数二进制文件,除非它是由普通用户编译和安装的。

你也应该复习一下文件权限符号。这是一个很棒的关联

答案2

二进制文件具有用户写入权限,因为用户是 root. 仅 root 可以写入/usr/bin

您确实应该认真学习不要以 root 身份执行简单操作(例如使用浏览器和文字处理器)。请参阅此处的限制损害: http://www.howtogeek.com/124950/htg-explains-why-you-shouldnt-log-into-your-linux-system-as-root/

.sh另外,您可能会注意到中有许多文件/usr/bin。如果需要,这些文件可以由 root 编辑。

相关内容