我有 Ubuntu 12.04.5 LTS。
在终端我执行了:
/etc/profile
因此返回没有权限。
这让我很惊讶,因为我已经运行了sudo -s
命令,并且我的命令提示符以root@...
这是什么原因呢?
答案1
默认权限/etc/profile
是
-rw-r--r-- 1 root root 575 Okt 22 2015 /etc/profile
这意味着可以使用以下命令读取该文件
cat /etc/profile
但不能像
/etc/profile
正如您尝试执行的操作(执行它)。由于未设置可执行权限位,即使具有超级用户权限,此操作也会失败并创建“权限被拒绝”消息。正如评论中所述,出于/etc
安全考虑,更改权限通常不是一个好主意,因此如果您确实需要执行它,请使用source
以下命令:
source /etc/profile
答案2
这是因为默认情况下该文件没有设置任何可执行位。即使是 root 也无法执行任何用户都无法执行的文件。
ls -l /etc/profile
-rw-r--r-- 1 root root 1722 Jan 6 20:09 /etc/profile
/etc/profile
是否在登录时获取资源,并设置环境。执行此操作less /etc/profile
,您将看到它设置的内容。
默认情况下,中的大多数常规文件都/etc
具有权限644
,用符号表示为rw-r--r--
,表示文件所有者可以读取和写入文件,组成员只能读取文件,其他人(任何用户或程序)只能读取文件。