当我使用 命令创建文件时,文件现在全部被锁定。发生了什么变化?

当我使用  命令创建文件时,文件现在全部被锁定。发生了什么变化?

我是 Linux 的新用户,正在使用 Ubuntu 13.04 Raring Ringtail。

尽管根据网上经验丰富的用户的一般信息,普遍的看法是,与其他 Linux 发行版和 Ubuntu 版本相比,它提供的控制有限,但我非常喜欢这个操作系统的可塑性。

无论如何,我的问题与为什么为主目录创建文件突然导致只生成我无法解锁的锁定文件有关,尽管:

  1. 我以 root 用户身份创建了它们,
  2. 我是唯一的用户,
  3. 最初,我使用“ touch ”命令创建了几个文件,它们可以在主目录中访问。 现在,我甚至无法为这些锁定的文件设置权限。

我真的很想知道是什么原因导致了这种情况,因为我不记得更改过任何设置(至少不是故意的)。

期待您的回复。

答案1

Handuel 的回答是正确的。如果您使用 创建了文件sudo,则它们属于 root 用户,并且您没有像自己一样的权限来编辑它们。您可以通过使用 列出目录的内容来检查情况是否如此ls -l

如果您希望能够以您自己(您的用户)的身份修改它们,则应使用 更改它们的所有权sudo chown youruser:yourgroup <file>(例如sudo chown matt:matt test.txt)。更改它们的权限也可以(sudo chmod 777 test.txt使其具有普遍可编辑性,虽然不建议这样做,但了解一下很有用),但更改所有权更可取。如果您更喜欢 GUI,则可以使用 以图形方式更改所有权/权限sudo -H nautilus,然后右键单击相关文件以访问其属性。

sudo在不需要使用它时通常会遇到很多问题,例如无法登录或程序无法正确启动,所以请谨慎使用。

答案2

由于您以 root 用户身份创建它们,因此它们被锁定。这意味着它们是 root 文件,因此只能由 root 访问。

答案3

或者,这可能意味着 umask 设置错误。

做这个:sudo umask 022

设置默认 umask 的步骤

您可以在 /etc/bashrc 或 /etc/profile 文件中为所有用户设置 umask。默认情况下,大多数 Linux 发行版将其设置为 0022 (022) 或 0002 (002)。打开 /etc/profile 或 ~/.bashrc 文件,输入:

# vi /etc/profile

或者

$ vi ~/.bashrc

附加/修改以下行来设置新的 umask:

umask 022

保存并关闭文件。更改将在下次登录后生效。所有 UNIX 用户都可以在其 /etc/profile 文件、~/.profile(Korn / Bourne shell)~/.cshrc 文件(C shell)、~/.bash_profile(Bash shell)或 ~/.login 文件(定义用户登录时的环境)中覆盖系统 umask 默认值。

相关内容